:root{--paper:#f6f5ef;--ink:#242923;--muted:#6c7167;--line:#dcded3;--accent:#50653e;--rust:#a4593c;--serif:var(--sans);--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{color:var(--rust)}a:focus-visible{outline:2px solid var(--rust);outline-offset:6px;border-radius:2px}button,input{font:inherit}.shell{max-width:1080px;padding:0 40px;margin:auto}.site-header{min-height:110px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:30px}.wordmark{font-weight:600;display:flex;align-items:center;gap:12px;font-size:16px;white-space:nowrap}.monogram{font-family:var(--serif);font-style:italic;font-size:30px;background:var(--ink);color:var(--paper);width:44px;height:44px;display:grid;place-items:center;border-radius:50%;padding-bottom:5px}nav{display:flex;gap:29px;font-size:14px;color:var(--muted)}nav a{padding:8px 0;position:relative}nav a[aria-current]{color:var(--ink)}nav a[aria-current]:after{content:'';position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--accent)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:400}h1{font:400 clamp(46px,6vw,72px)/1.1 var(--serif);letter-spacing:-2.5px;margin-bottom:28px}h2{font:400 31px/1.25 var(--serif);letter-spacing:-.6px}h3{font:400 25px/1.3 var(--serif);letter-spacing:-.4px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:600;color:var(--muted);line-height:1.6}.hero{padding:80px 0 72px;display:grid;grid-template-columns:1fr 220px;gap:68px}.hero .eyebrow{margin-bottom:29px;display:flex;align-items:center;gap:10px}.live-dot{width:7px;height:7px;background:var(--accent);border-radius:50%;display:inline-block}.hero h1 span{font-style:italic;color:var(--accent)}.hero-intro{font-size:20px;margin-bottom:10px;letter-spacing:-.3px}.hero-desc{color:var(--muted);max-width:460px;font-size:16px;line-height:1.8;margin-bottom:28px}.socials{display:flex;flex-wrap:wrap;gap:12px 24px;font-size:13px;align-items:center}.socials a{border-bottom:1px solid var(--line);padding-bottom:3px}.socials a span{margin-left:5px;color:var(--accent)}.pending{color:var(--muted)}.pending small{font-size:9px;display:block;letter-spacing:.4px;color:var(--muted)}.profile-note{position:relative;border-left:1px solid var(--line);padding:18px 0 0 28px;margin-top:36px;align-self:start}.profile-note img{border-radius:50%;object-fit:cover;filter:saturate(.65);margin-bottom:22px}.profile-note p{font:italic 25px/1.35 var(--serif);margin-bottom:14px}.profile-note>span:not(.note-mark){font-size:12px;line-height:1.9;color:var(--muted)}.note-mark{display:block;font:40px var(--serif);color:var(--rust);margin-top:12px}.home-section{border-top:1px solid var(--line);padding:35px 0 44px}.section-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.section-top h2{display:flex;align-items:center;gap:18px;margin:0;font-size:28px}.section-number{font:10px var(--sans);color:var(--muted);letter-spacing:1px}.text-link{font-size:12px;white-space:nowrap;border-bottom:1px solid var(--line);padding-bottom:3px}.text-link span{margin-left:7px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.project-card{background:#eeeee5;border:1px solid #e0e2d6;padding:25px 28px 24px;display:block;transition:background .18s,border-color .18s}.project-card:nth-child(2){background:#f1eae1;border-color:#e8dcd0}.project-card:hover{background:#e7eadd;border-color:#a8b39d;color:var(--ink)}.project-card:nth-child(2):hover{background:#ece1d5;border-color:#c5a58e}.project-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.project-top>span:last-child{font-size:20px;color:var(--accent)}.project-symbol{font:35px/1.4 monospace;letter-spacing:-4px;color:var(--accent);padding:22px 0 26px}.project-card:nth-child(2) .project-symbol{color:var(--rust)}.project-card h3{margin-bottom:8px}.project-card p{color:var(--muted);font-size:13px;margin-bottom:22px;max-width:320px;line-height:1.8}.status{display:inline-flex;gap:7px;align-items:center;font-size:10px;color:var(--muted)}.status i{width:5px;height:5px;background:#90947f;border-radius:50%}.empty-state{padding:27px 30px;background:rgba(255,255,255,.25);border:1px dashed var(--line);position:relative}.empty-state h3{font-size:22px;margin-bottom:5px}.empty-state p{color:var(--muted);font-size:13px;max-width:520px;margin:0}.empty-symbol{float:right;color:var(--accent);font-size:30px;margin-left:20px}.entry{padding:25px 0;display:grid;grid-template-columns:105px 1fr 20px;gap:20px;border-bottom:1px solid var(--line)}.entry time{font-size:12px;color:var(--muted);padding-top:5px}.entry h3{font-size:24px;margin-bottom:8px}.entry p{color:var(--muted);font-size:14px;margin:0}.life-teaser{border-top:1px solid var(--line);padding:40px 180px 48px 0;position:relative}.life-teaser .eyebrow{margin-bottom:20px}.life-teaser h2{font-size:34px;margin-bottom:14px}.life-teaser p:not(.eyebrow){color:var(--muted);font-size:14px}.life-doodle{position:absolute;right:45px;top:60px;font-size:110px;line-height:1;color:var(--accent);font-weight:200;transform:rotate(12deg)}footer{display:flex;align-items:end;justify-content:space-between;border-top:1px solid var(--line);padding:30px 0 36px;font-size:11px;color:var(--muted);gap:20px;margin-top:16px}footer>div{display:flex;flex-direction:column;gap:4px}.footer-name{font:20px var(--serif);color:var(--ink)}footer p{margin:0}.footer-dot{margin:0 8px}.page-heading{padding:70px 0 45px;max-width:730px}.page-heading .eyebrow{margin-bottom:24px}.page-heading h1{font-size:59px;margin-bottom:22px}.lead{font-size:18px;line-height:1.8;color:var(--muted);max-width:650px}main{min-height:calc(100vh - 250px)}.page-heading~.project-grid{margin-bottom:70px}.page-heading~.empty-state{margin-bottom:90px}.life-section{border-top:1px solid var(--line);padding:32px 0 45px}.life-section h2{font-size:28px;margin-bottom:25px}.interest-list{display:flex;flex-wrap:wrap;gap:12px}.interest-list span{border:1px solid var(--line);border-radius:30px;padding:8px 17px;font-size:13px;color:var(--accent)}.photo-empty{display:flex;align-items:center;gap:25px;padding:35px;background:#eeeee5}.photo-empty>span{font-size:55px;color:var(--accent)}.photo-empty h3{font-size:24px;margin-bottom:8px}.photo-empty p{color:var(--muted);font-size:14px;margin:0}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.photo-grid figure{margin:0}.photo-grid img{width:100%;height:auto}.photo-grid figcaption{color:var(--muted);font-size:13px}.article{max-width:720px;margin:60px auto 80px}.back{display:inline-block;margin-bottom:45px}.article h1{font-size:58px;overflow-wrap:anywhere}.article .lead{border-bottom:1px solid var(--line);padding-bottom:30px;margin-bottom:35px}.prose{font-size:17px;line-height:1.9;overflow-wrap:anywhere}.prose p{margin-bottom:24px}.prose h2,.prose h3{margin-top:36px}.prose a,.related a{color:var(--accent);text-decoration:underline;text-underline-offset:4px}.prose pre{padding:22px;background:#eaece2;overflow-x:auto;font-size:13px;line-height:1.7}.prose code{background:#eaece2;padding:2px 4px;font-size:.86em}.related{border-top:1px solid var(--line);padding-top:30px;margin-top:40px}.skip{position:absolute;left:20px;top:-80px;background:var(--ink);color:white;padding:10px 15px;z-index:10}.skip:focus{top:10px}@media(min-width:1600px){.shell{max-width:1160px}.hero{padding-top:95px;padding-bottom:90px}}@media(max-width:740px){.shell{padding:0 24px}.site-header{min-height:105px;gap:15px;align-items:flex-start;padding:22px 0;flex-direction:column}nav{gap:25px;width:100%;font-size:13px}.monogram{width:32px;height:32px;font-size:23px}.wordmark{font-size:14px}.hero{padding:48px 0;grid-template-columns:1fr;gap:28px}.hero h1{font-size:55px}.hero .eyebrow{font-size:9px;letter-spacing:1.3px}.profile-note{margin-top:0;padding:0;border:0;display:grid;grid-template-columns:55px 1fr;gap:0 18px}.profile-note img{width:55px;height:55px;grid-row:1/3;margin:0}.profile-note p{font-size:18px;margin:0}.profile-note p br{display:none}.profile-note>span:not(.note-mark){font-size:11px}.profile-note>span br{display:none}.profile-note .note-mark{display:none}.hero-intro{font-size:18px}.project-grid{gap:15px}.project-card{padding:20px}.project-card h3{font-size:23px}.project-top .eyebrow{font-size:8px;letter-spacing:1px}.section-top h2{font-size:24px;gap:10px}.text-link{font-size:11px}.life-doodle{font-size:75px;right:10px;top:70px}.life-teaser{padding-right:85px}.life-teaser h2{font-size:29px}footer{align-items:start;flex-direction:column;gap:16px}.page-heading{padding-top:45px}.page-heading h1,.article h1{font-size:45px;letter-spacing:-1.5px}.lead{font-size:16px}.entry{grid-template-columns:1fr 20px;gap:5px}.entry time{grid-column:1/-1}.entry h3{font-size:23px}.photo-empty{padding:25px;gap:17px}.photo-empty>span{font-size:35px}.article{margin-top:35px}.prose{font-size:16px}}@media(max-width:440px){nav{justify-content:space-between;gap:10px}.project-grid{grid-template-columns:1fr}.section-top h2{font-size:23px}.section-top{gap:10px}.section-number{display:none}.hero h1{font-size:49px}.socials{gap:14px}.life-teaser{padding-right:50px}.life-doodle{font-size:48px;right:0}.photo-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Browser-local companion */
.site-pet{position:fixed;z-index:50;width:128px;height:180px;user-select:none;-webkit-user-select:none}.site-pet[hidden]{display:none}.pet-cat{display:block;width:128px;height:180px;padding:0;border:0;background:transparent;cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent}.pet-cat:focus-visible,.pet-hide:focus-visible,.pet-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:12px}.pet-cat svg{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 4px 5px #2429230d)}.pet-hide{position:absolute;right:0;top:3px;z-index:2;width:28px;height:28px;display:grid;place-items:center;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--muted);font-size:19px;cursor:pointer;opacity:0;transition:opacity .15s}.site-pet:hover .pet-hide,.site-pet:focus-within .pet-hide{opacity:1}.pet-toggle{background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--muted);padding:0 0 2px;font:11px var(--sans);cursor:pointer;white-space:nowrap}.pet-toggle:hover{color:var(--rust)}.cat-body{transform-origin:70px 124px;animation:cat-breathe 4s ease-in-out infinite}.cat-tail{transform-origin:102px 108px;animation:cat-tail 3.5s ease-in-out infinite}.cat-eyes{transform-origin:71px 67px;animation:cat-blink 6s infinite}.is-dragging .pet-cat{cursor:grabbing}.is-dragging .cat-body{animation:none;transform:rotate(-5deg) translateY(-3px)}.pet-bubble{position:absolute;bottom:179px;left:0;width:190px;border:1px solid var(--line);background:var(--paper);border-radius:12px 12px 12px 3px;padding:10px 14px;color:var(--ink);font:12px/1.5 var(--sans);box-shadow:0 5px 20px #2429230a;pointer-events:none;opacity:0;transition:opacity .15s}.is-happy .pet-bubble{opacity:1}.bubble-left .pet-bubble{left:auto;right:0;border-radius:12px 12px 3px 12px}.bubble-below .pet-bubble{bottom:auto;top:180px}.is-happy .cat-body{animation:cat-bounce .5s ease-in-out 2}.is-happy .cat-eyes{transform:scaleY(.35);animation:none}@keyframes cat-breathe{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.98)}}@keyframes cat-tail{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(9deg)}}@keyframes cat-blink{0%,43%,47%,100%{transform:scaleY(1)}45%{transform:scaleY(.1)}}@keyframes cat-bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}@media(hover:none){.pet-hide{opacity:1}}@media(prefers-reduced-motion:reduce){.site-pet *{animation:none!important;transition:none!important}}

.pet-photo{display:block;width:128px;height:180px;object-fit:contain;object-position:center bottom;transform-origin:50% 100%;pointer-events:none;filter:drop-shadow(0 4px 3px #2429231a)}

/* A quieter, unified reading style. */
h1,h2,h3{font-family:var(--sans);font-weight:500;letter-spacing:-.035em}
.monogram{font-family:var(--sans);font-style:normal;font-size:25px;letter-spacing:-2px;font-weight:500}
.hero-simple{grid-template-columns:minmax(0,1fr) 80px;gap:48px;padding:65px 0 58px;align-items:start}
.hero-simple h1{font-family:var(--sans);font-style:normal;font-size:42px;line-height:1.2;letter-spacing:-1.4px;margin-bottom:12px;font-weight:550}
.hero-simple .hero-intro{font-size:17px;letter-spacing:0;margin-bottom:22px;color:var(--ink)}
.hero-bio{max-width:620px;font-size:16px;line-height:1.8;color:var(--muted);margin-bottom:26px}
.hero-bio p{margin-bottom:12px}.hero-bio p:last-child{margin-bottom:0}
.profile-avatar{border-radius:50%;object-fit:cover;margin-top:6px;filter:saturate(.65)}
.section-top h2{font-size:24px}.project-card h3{font-size:23px}.life-teaser h2{font-size:28px}
.empty-state h3{font-size:20px}.footer-name{font-family:var(--sans);font-size:16px;font-weight:500}
.quiet-signoff{font-size:10px;letter-spacing:.03em;color:var(--muted)}
@media(max-width:740px){.hero-simple{padding:42px 0;gap:24px;grid-template-columns:minmax(0,1fr) 56px}.hero-simple h1{font-size:32px;letter-spacing:-1px}.profile-avatar{width:56px;height:56px}.hero-simple .hero-intro{font-size:15px}.hero-bio{font-size:15px}.section-top h2{font-size:21px}.life-teaser{padding-right:0}.life-teaser h2{font-size:25px}}
@media(max-width:440px){.hero-simple{position:relative;display:block}.hero-simple h1{padding-right:66px}.profile-avatar{position:absolute;right:0;top:40px;width:46px;height:46px}}

/* Keep the personal introduction central, with projects immediately below. */
.hero-simple{display:flex;flex-direction:column;align-items:center;text-align:center;gap:24px;padding:52px 0 48px}
.hero-simple>div{width:100%;max-width:650px}
.hero-simple .profile-avatar{position:static;width:104px;height:104px;margin:0;flex:none}
.hero-simple h1{padding:0;margin-bottom:10px}
.hero-simple .hero-bio{max-width:620px;margin:0 auto 24px}
.hero-simple .socials{justify-content:center}
@media(max-width:740px){.hero-simple{padding:36px 0 38px;gap:20px}.hero-simple .profile-avatar{width:88px;height:88px}.hero-simple>div{max-width:540px}.hero-simple .hero-intro{margin-bottom:18px}.hero-simple .hero-bio{margin-bottom:22px}}

@media(max-width:740px){.site-header .wordmark{font-size:14px}}

.repo-links{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 18px}.repo-link{display:inline-flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:5px;padding:9px 14px;font-size:13px;background:#ffffff45}.repo-link:hover{border-color:var(--accent);color:var(--accent)}.project-technologies{list-style:none;padding:0;margin:0 0 34px;display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12px;color:var(--muted)}

nav{flex-wrap:wrap}.socials .book-entry{color:var(--accent);border-color:var(--accent)}
.booking-timezone{font-size:15px;color:var(--ink);margin:0 0 5px}.booking-timezone-detail{font-size:13px;color:var(--muted);margin-bottom:30px}.booking-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px}.booking-card{border:1px solid var(--line);padding:28px;background:#ffffff45;display:flex;flex-direction:column;align-items:flex-start}.booking-duration{font-size:42px;font-weight:500;letter-spacing:-1.5px;line-height:1.2;margin-bottom:22px}.booking-duration span{font-size:14px;letter-spacing:0;color:var(--muted);font-weight:400}.booking-card h2{font-size:23px;letter-spacing:-.5px;margin-bottom:12px}.booking-card>p:not(.booking-duration){font-size:14px;color:var(--muted);margin-bottom:20px}.booking-format{font-size:12px;color:var(--muted);margin-top:auto;margin-bottom:20px}.booking-action{display:inline-flex;align-items:center;gap:25px;padding:10px 16px;border-radius:5px;background:var(--accent);color:white;font-size:13px}.booking-action:hover{background:var(--ink);color:white}.booking-pending{font-size:12px;color:var(--muted);padding:9px 14px;border:1px dashed var(--line);border-radius:5px}.booking-note{font-size:14px;color:var(--muted);max-width:650px;margin:0 0 65px}.booking-note a{text-decoration:underline;text-underline-offset:3px}@media(max-width:540px){.booking-grid{grid-template-columns:1fr}.booking-card{padding:24px}}

.booking-single{grid-template-columns:minmax(0,1fr);max-width:560px}

.booking-calendar{margin:32px 0 50px}.booking-calendar h2{font-size:23px;margin-bottom:10px}.booking-calendar>p{color:var(--muted);font-size:14px}.booking-frame{display:block;width:100%;height:780px;border:0;border-radius:6px;background:white}@media(max-width:540px){.booking-frame{height:850px}}

.booking-fallback{font-size:12px;color:var(--muted);margin-top:12px}.booking-fallback a{text-decoration:underline;text-underline-offset:3px}
