:root{--ink:#202020;--muted:#77736e;--paper:#f0efec;--panel:#fffefa;--line:#dedbd4;--green:#bdf5c9;font-family:Space Grotesk,Arial,sans-serif;color:var(--ink);background-color:#f7f1e8;background-image:url(/doodle-background.png);background-size:850px auto;background-position:50%;background-repeat:repeat;background-attachment:fixed}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-width:none}html::-webkit-scrollbar{display:none}body{margin:0;min-width:320px;background:transparent}a{color:inherit;text-decoration:none}button,input{font:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-shell{display:grid;grid-template-columns:minmax(290px,32%) 1fr;min-height:100vh;gap:8px;padding:8px;background:transparent}.chat-panel{overflow:hidden}.chat-panel,.portfolio-panel{min-height:calc(100vh - 16px);border-radius:25px}.chat-panel{position:sticky;top:8px;flex-direction:column;height:calc(100vh - 16px);border:0}.chat-header,.chat-panel{display:flex;background:transparent}.chat-header{align-items:center;justify-content:flex-end;margin:12px;padding:14px;border-radius:18px}.icon-button{width:26px;height:26px;border:1px solid var(--line);border-radius:50%;color:var(--muted);background:transparent;cursor:pointer}.chat-date{align-self:center;margin:10px 0 14px;padding:6px 10px;border-radius:8px;color:#817b73;background:rgba(255,254,250,.75);font-family:DM Mono,monospace;font-size:10px}.messages{display:flex;flex:1;flex-direction:column;justify-content:flex-end;gap:9px;padding:0 15px 14px;overflow-y:auto;overflow-anchor:none;scrollbar-width:none}.messages::-webkit-scrollbar{display:none}.message{max-width:88%;padding:10px 12px 7px;border-radius:14px;background:var(--panel);box-shadow:0 2px 5px rgba(69,61,47,.05);font-size:13px;line-height:1.45}.message p{margin:0}.message time{display:block;margin-top:5px;color:#979086;font-family:DM Mono,monospace;font-size:9px;text-align:right}.message.sam{align-self:flex-end;border-bottom-right-radius:4px;background:var(--green)}.message.visitor{align-self:flex-start;border-bottom-left-radius:4px}.typing-bubble{display:flex;align-items:center;align-self:flex-end;gap:4px;padding:10px 12px;border-radius:14px 14px 4px 14px;background:var(--green)}.typing-bubble.visitor{align-self:flex-start;border-radius:14px 14px 14px 4px;background:var(--panel)}.typing-bubble span{width:5px;height:5px;border-radius:50%;background:#529c62;animation:typing-pulse 1.1s ease-in-out infinite}.typing-bubble span:nth-child(2){animation-delay:.15s}.typing-bubble span:nth-child(3){animation-delay:.3s}@keyframes typing-pulse{0%,60%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}.checks{color:#28a6c9;letter-spacing:-3px}.message.compact{font-size:12px}.attachment{display:flex;flex-direction:column;gap:4px;border-radius:14px}.attachment strong{font-size:12px}.attachment small{color:#89837a;font-size:10px}.file-preview{display:block;height:112px;padding:0;margin:1px -6px 0;border-radius:9px 9px 0 0;overflow:hidden;background:#eee9e1}.file-preview img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center}.file-details{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 8px 7px;margin:0 -6px 2px;background:transparent}.file-details>div{display:flex;min-width:0;flex-direction:column;gap:3px}.file-details strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.file-details small{color:#89837a;font-size:10px}.download-link{display:grid;flex:0 0 auto;place-items:center;width:24px;height:24px;color:#44413d;font-size:22px;line-height:1}.download-link:hover{color:#111}.final a{color:#2b7dbc;text-decoration:underline;text-underline-offset:2px}.chat-composer{display:flex;gap:8px;margin:0 12px 12px;padding:7px 7px 7px 14px;border:1px solid #d9d3c8;border-radius:30px;background:rgba(255,254,250,.96)}.chat-composer input{min-width:0;flex:1;border:0;outline:0;color:var(--ink);background:transparent;font-size:12px}.chat-composer input::placeholder{color:#9a958d}.send-button{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:50%;color:#267a45;background:#a9e7bb;cursor:pointer;font-size:19px;transition:transform .2s ease,background .2s ease}.send-button:hover{transform:translateY(-2px);background:#8fdbab}.portfolio-panel{padding:12px 26px 20px;background:rgba(240,239,236,.96)}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:10px 0 34px}.topbar.is-sticky{background:rgba(240,239,236,.96);backdrop-filter:blur(8px)}.wordmark{font-size:25px;font-weight:800;letter-spacing:-.08em}.wordmark span{color:#e26f40}nav{display:flex;align-items:center;gap:5px;padding:5px;border:1px solid var(--line);border-radius:15px;background:rgba(255,254,250,.7)}nav a{padding:8px 13px;border-radius:10px;color:var(--muted);font-size:12px;transition:color .2s ease,background .2s ease}nav a.active,nav a:hover{color:var(--ink);background:#fffefa;box-shadow:0 2px 8px rgba(30,30,30,.06)}.local-time{color:var(--muted);font-family:DM Mono,monospace;font-size:13px;letter-spacing:.02em}.time-dot{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:#e26f40}.hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:36px;min-height:410px;padding:36px 34px;border-radius:22px;overflow:hidden;background:var(--panel)}.football-layer{z-index:1;inset:0;overflow:hidden}.football-grass,.football-layer{position:absolute;pointer-events:none}.football-grass{z-index:0;left:0;right:0;bottom:-2px;width:100%;height:88px;background:url(/grass.svg) bottom/260px 87px repeat-x;opacity:.72;mix-blend-mode:multiply;user-select:none}.football-shadow{position:absolute;z-index:0;bottom:5px;left:0;width:92px;height:12px;border-radius:50%;background:rgba(54,49,44,.22);filter:blur(7px);pointer-events:none;transform-origin:center}.football{position:absolute;z-index:1;top:0;left:0;display:grid;place-items:center;width:92px;height:92px;padding:0;border:0;border-radius:50%;overflow:hidden;background:transparent;cursor:grab;line-height:1;pointer-events:auto;transition:filter .2s ease;touch-action:none;user-select:none}.football img{position:absolute;inset:-15%;display:block;width:130%;height:130%;max-width:none;mix-blend-mode:multiply;pointer-events:none;user-select:none}.football[data-held=true]{cursor:grabbing}.football:hover{filter:brightness(1.04) saturate(1.08)}.hero-copy{position:relative;z-index:2}.availability{margin-bottom:30px;color:var(--muted);font-family:DM Mono,monospace;font-size:11px}.spark{margin-right:8px;color:#e26f40;font-size:16px}h1,h2,h3,p{margin-top:0}h1{max-width:720px;margin-bottom:22px;font-size:clamp(38px,4.5vw,70px);font-weight:600;line-height:1.01;letter-spacing:-.055em}.hero-title-word{display:inline-block;opacity:0;transform:translateY(24px);animation:title-rise .7s cubic-bezier(.2,.75,.25,1) forwards;animation-delay:calc(var(--word-index) * 55ms + .16s)}@keyframes title-rise{to{opacity:1;transform:translateY(0)}}.hero-actions,.hero-description,.hero-note{animation:soft-fade .8s ease both;animation-delay:.55s}@keyframes soft-fade{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.hero-description{max-width:520px;margin-bottom:30px;color:#68645f;font-size:16px;line-height:1.55}.profile-name-trigger{position:relative;color:var(--ink);text-decoration:underline;text-decoration-style:dotted;text-decoration-color:#b5aea4;text-underline-offset:4px;cursor:pointer}.profile-name{font-weight:700}.profile-name-trigger:focus-visible{outline:2px solid #e26f40;outline-offset:3px;border-radius:2px}.profile-hover-preview{position:fixed;z-index:20;width:320px;pointer-events:none}.profile-hover-preview img{display:block;width:320px;aspect-ratio:16/9;height:auto;border-radius:11px;object-fit:cover}.experimenting-highlight{position:relative;display:inline-block;z-index:0;padding:0 7px 2px;color:var(--ink);font-family:Caveat,cursive;font-size:1.18em;font-weight:700;line-height:.9;transform:rotate(-2deg)}.experimenting-highlight:before{position:absolute;z-index:-1;inset:-5px -5px -3px;content:"";border:2px solid #e3a097;border-radius:48% 55% 46% 57%/58% 45% 55% 42%;transform:rotate(3deg)}.experimenting-highlight:after{position:absolute;z-index:-1;inset:-3px -7px -5px;content:"";border:1px solid rgba(227,160,151,.55);border-radius:55% 43% 58% 47%/45% 57% 43% 55%;transform:rotate(-2deg)}.build-animated{display:inline-block;min-width:42px;font-size:1.12em;font-weight:700;line-height:.9;vertical-align:baseline}.hero-actions{display:flex;align-items:center;gap:22px}.primary-button{display:inline-flex;align-items:center;gap:16px;padding:12px 16px 12px 20px;border-radius:11px;color:#fff;background:#30302e;font-size:12px;box-shadow:0 5px 0 #b9b7b1;transition:transform .2s ease,box-shadow .2s ease}.primary-button span{font-size:18px}.primary-button:hover{transform:translateY(2px);box-shadow:0 3px 0 #b9b7b1}.text-link{color:var(--muted);font-size:12px}.text-link span{margin-left:5px;color:var(--ink);font-size:16px}.hero-note{align-self:end;padding-top:18px;border-top:1px dashed #d2cec5;color:var(--muted)}.hero-note span,.section-count{font-family:DM Mono,monospace;font-size:10px}.hero-note p{margin-top:12px;font-size:12px;line-height:1.6}.work-section{padding:70px 0 20px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:20px}.section-heading .eyebrow{margin-bottom:9px;color:#9a958d}h2{margin-bottom:0;font-size:clamp(27px,3vw,42px);letter-spacing:-.06em}.section-count{color:var(--muted)}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.project-card{position:relative;border-radius:17px;overflow:hidden;cursor:none}.project-cursor{position:absolute;z-index:3;padding:9px 13px;border-radius:999px;color:#6f7882;background:#dceaf5;font-size:12px;font-weight:600;white-space:nowrap;pointer-events:none;transition:opacity .18s ease,transform .18s ease}.project-cursor-text{display:block;width:0;overflow:hidden;animation:none}.project-card:hover .project-cursor-text{animation:project-cursor-type .3s steps(12) forwards}@keyframes project-cursor-type{0%{width:0}to{width:78px}}.placeholder-art{display:flex;min-height:0;flex-direction:column;justify-content:space-between;padding:16px;overflow:hidden}.placeholder-art,.project-image{aspect-ratio:1.6;border-radius:17px}.project-image{display:block;width:100%;height:100%;object-fit:cover}.project-video{object-fit:cover;background:#eef0e8}.project-lilac .placeholder-art{background:linear-gradient(135deg,#d9d6e9,#bbb8d2)}.project-blue .placeholder-art{background:linear-gradient(135deg,#b7d6e5,#688ca3)}.project-peach .placeholder-art{background:linear-gradient(135deg,#f4c6a9,#db8064)}.project-mint .placeholder-art{background:linear-gradient(135deg,#b7d8cb,#6b988b)}.art-label{font-family:DM Mono,monospace;font-size:10px;opacity:.65}.art-symbol{align-self:center;font-size:70px;font-weight:400;opacity:.55}.project-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 5px 4px}.project-meta h3{margin:0;font-size:14px;letter-spacing:-.03em}.project-meta span{color:var(--muted)}.home-footer,.project-meta span{font-family:DM Mono,monospace;font-size:9px;text-transform:uppercase}.home-footer{display:flex;justify-content:space-between;gap:15px;padding:60px 2px 8px;color:#9a958d}.portfolio-panel.story-page{padding-bottom:40px}.story-page .topbar{padding-bottom:20px}.story-title{max-width:none;margin-bottom:20px;font-size:clamp(27px,3vw,42px);line-height:1.1;letter-spacing:-.06em}.story-layout{display:grid;grid-template-columns:minmax(200px,24%) minmax(0,1fr);gap:20px;height:calc(100vh - 194px);min-height:520px}.story-wheel{position:relative;min-height:0;overflow:hidden;outline:0;cursor:grab;perspective:900px;touch-action:none;user-select:none;-webkit-user-select:none}.story-wheel:active{cursor:grabbing}.story-wheel-guide{position:absolute;inset:0;overflow:visible;pointer-events:none}.story-wheel-guide path{fill:none;stroke:#bdb7ad;stroke-width:2;stroke-dasharray:1 8;stroke-linecap:round}.story-wheel-guide circle{fill:#e26f40}.story-wheel-year{position:absolute;top:50%;left:var(--wheel-apex);height:1em;margin-top:-.5em;padding:0;border:0;color:var(--muted);background:transparent;cursor:inherit;font-family:inherit;font-size:clamp(40px,4.2vw,64px);font-weight:700;letter-spacing:-.06em;line-height:1;transform-origin:left center;white-space:nowrap;transition:color .2s ease}.story-wheel-year.is-active{color:var(--ink)}.story-wheel-year:focus-visible{border-radius:8px;outline:2px solid #e26f40;outline-offset:6px}.story-year-strip{display:none}.story-content{display:flex;flex-direction:column;justify-content:center;gap:22px;width:100%;max-width:780px;min-width:0;min-height:0}.story-photos{display:grid;flex:0 1 auto;grid-template-columns:1.65fr 1fr;grid-template-rows:minmax(0,1fr) minmax(0,1.15fr);gap:12px;height:clamp(240px,50vh,440px);min-height:0}.story-photo-slot{position:relative;overflow:hidden;border:1.5px dashed #d2cec5;border-radius:20px;background:rgba(255,254,250,.72)}.story-photo-slot-3{grid-column:1/-1}.story-photos.is-tall-left{grid-template-columns:1fr 1.3fr;grid-template-rows:minmax(0,1fr) minmax(0,1fr)}.story-photos.is-tall-left .story-photo-slot-3{grid-column:1;grid-row:1/-1}.story-photos.is-tall-left .story-photo-slot-1{grid-column:2;grid-row:1}.story-photos.is-tall-left .story-photo-slot-2{grid-column:2;grid-row:2}.story-photos.is-tall-right{grid-template-columns:1.3fr 1fr;grid-template-rows:minmax(0,1fr) minmax(0,1fr)}.story-photos.is-tall-right .story-photo-slot-1{grid-column:1;grid-row:1}.story-photos.is-tall-right .story-photo-slot-2{grid-column:1;grid-row:2}.story-photos.is-tall-right .story-photo-slot-3{grid-column:2;grid-row:1/-1}.story-photos.is-five{grid-template-columns:1fr .95fr 1fr;grid-template-rows:minmax(0,1.3fr) minmax(0,1fr)}.story-photos.is-five .story-photo-slot-1{grid-column:1;grid-row:1}.story-photos.is-five .story-photo-slot-2{grid-column:1;grid-row:2}.story-photos.is-five .story-photo-slot-3{grid-column:2;grid-row:1/-1}.story-photos.is-five .story-photo-slot-4{grid-column:3;grid-row:1}.story-photos.is-five .story-photo-slot-5{grid-column:3;grid-row:2}.story-photo-placeholder{position:absolute;inset:0;display:flex;align-items:flex-end;padding:14px}.story-photo-slot.has-photo{border:0;background:#ebe6dc}.story-photo-image{object-fit:cover;user-select:none}.story-photo-image,.story-pixel-reveal{position:absolute;inset:0;display:block;width:100%;height:100%}.story-pixel-reveal{z-index:2;background:#ebe6dc;pointer-events:none}.story-pixel-reveal.is-covering{background:transparent}.story-photo-label{padding:5px 9px;white-space:nowrap;border-radius:999px;color:#8f8980;background:#f3f0ea;font-family:DM Mono,monospace;font-size:10px;text-transform:uppercase}.story-text{display:grid;padding-top:16px;border-top:1px dashed #d2cec5}.story-text-item{display:grid;grid-area:1/1}.story-text p{max-width:760px;margin:0;color:var(--ink);font-size:clamp(20px,2vw,30px);font-weight:500;letter-spacing:-.03em;line-height:1.25}.stack-section{padding-top:110px;scroll-margin-top:90px}.stack-section h2{margin-bottom:44px}.stack-logos{display:grid;grid-template-columns:repeat(9,auto);justify-content:space-between;gap:44px 16px;margin:0;padding:0;list-style:none}.stack-logo{position:relative;display:flex;align-items:center;height:32px;border-radius:6px;color:#a39d94;font-size:30px;outline:0;transition:color .3s ease,transform .3s ease}.stack-logo:focus-visible{outline:2px solid #e26f40;outline-offset:5px}.stack-logo-name{position:absolute;z-index:2;top:50%;left:calc(100% + 9px);padding:3px 7px;border:1px solid var(--line);border-radius:999px;color:var(--ink);background:var(--panel);font-family:DM Mono,monospace;font-size:10px;letter-spacing:.02em;line-height:1.3;white-space:nowrap;opacity:0;pointer-events:none;transform:translate(var(--name-shift,-4px),-50%);transition:opacity .2s ease,transform .2s ease}.stack-logos>.stack-logo:nth-child(9n) .stack-logo-name{--name-shift:4px;right:calc(100% + 9px);left:auto}.stack-logo:focus-visible .stack-logo-name,.stack-logo:hover .stack-logo-name{opacity:1;transform:translateY(-50%)}.stack-logo svg{display:block;width:30px;height:30px}.stack-logo:focus-visible,.stack-logo:hover,.stack-logo[data-lit]{color:var(--brand)}.stack-constellation{position:relative;margin:48px 0 0}.stack-constellation-canvas{display:block;width:100%;height:720px;border-radius:22px;outline:0;cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none}.stack-constellation-canvas.is-dragging{cursor:grabbing}.stack-constellation-canvas:focus-visible{outline:2px solid #e26f40;outline-offset:4px}@media (max-width:900px){.stack-constellation-canvas{height:600px}}@media (max-width:680px){.story-title{margin-bottom:16px}.stack-section{padding-top:64px}.stack-section h2{margin-bottom:30px}.stack-logos{grid-template-columns:repeat(6,auto);gap:32px 12px}.stack-logos>.stack-logo:nth-child(9n) .stack-logo-name{--name-shift:-4px;right:auto;left:calc(100% + 9px)}.stack-logos>.stack-logo:nth-child(6n) .stack-logo-name{--name-shift:4px;right:calc(100% + 9px);left:auto}.stack-constellation{margin-top:32px}.stack-constellation-canvas{height:480px}}@media (prefers-reduced-motion:reduce){.stack-logo,.stack-logo-name{transition:none}}@media (max-width:900px){.story-layout{grid-template-columns:140px minmax(0,1fr);gap:12px}.story-wheel-year{font-size:38px}}@media (max-width:680px){.story-layout{display:flex;height:auto;min-height:0;flex-direction:column;gap:18px}.story-wheel{display:none}.story-year-strip{display:flex;gap:6px;overflow-x:auto;padding:2px;scrollbar-width:none}.story-year-strip::-webkit-scrollbar{display:none}.story-strip-year{flex:1 0 auto;padding:10px 16px;border:1px solid var(--line);border-radius:12px;color:var(--muted);background:rgba(255,254,250,.7);cursor:pointer;font-family:DM Mono,monospace;font-size:13px}.story-strip-year.is-active{color:var(--ink);border-color:#e26f40;background:#fffefa}.story-strip-year:focus-visible{outline:2px solid #e26f40;outline-offset:3px}.story-photos{flex:none;height:auto;grid-template-rows:150px 190px}.story-photos.is-tall-left,.story-photos.is-tall-right{grid-template-rows:170px 170px}.story-photos.is-five{gap:8px;grid-template-rows:180px 140px}.story-photos.is-five .story-photo-placeholder{padding:8px}.story-photos.is-five .story-photo-label{white-space:normal}.story-text p{font-size:20px}}.contact-section{margin-top:72px;padding:34px;border-radius:22px;background:var(--panel)}.calendar-section{margin-top:56px}.calendar-heading{margin-bottom:18px}.cal-embed{position:relative;margin-top:18px;overflow:hidden;border:1px solid rgba(222,219,212,.8);border-radius:22px;background:var(--panel);box-shadow:0 3px 14px rgba(69,61,47,.05)}.cal-embed:before{position:absolute;inset:0;z-index:1;display:grid;place-items:center;content:"Loading calendar";color:#9a958d;font-family:DM Mono,monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(135deg,rgba(255,254,250,.94),rgba(247,244,237,.9));transition:opacity .35s ease,visibility .35s ease}.cal-embed iframe{display:block;width:100%;height:650px;border:0;background:#fff;opacity:0;transform:translateY(8px);transition:opacity .55s ease,transform .55s cubic-bezier(.22,1,.36,1)}.cal-embed.is-loaded:before{opacity:0;visibility:hidden}.cal-embed.is-loaded iframe{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.cal-embed iframe,.cal-embed:before{transition:none}.cal-embed iframe{transform:none}}.contact-status{margin-bottom:30px;color:var(--muted);font-family:DM Mono,monospace;font-size:11px}.contact-layout{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:36px}.contact-copy h1{max-width:620px;margin-bottom:22px;font-size:clamp(36px,4vw,64px);font-weight:600;line-height:1.02;letter-spacing:-.06em}.contact-copy p{max-width:550px;margin-bottom:30px;color:#68645f;font-size:16px;line-height:1.55}.contact-actions{display:flex;align-items:center;gap:22px}.contact-details{align-self:end;padding-top:18px;border-top:1px dashed #d2cec5}.contact-detail-block{display:flex;flex-direction:column;gap:8px;padding:14px 0;border-bottom:1px solid rgba(210,206,197,.6);color:var(--muted);font-size:13px;line-height:1.45}.contact-detail-block a{color:var(--ink);text-decoration:underline;text-decoration-color:#b5aea4;text-underline-offset:3px}.contact-label{color:#9a958d;font-family:DM Mono,monospace;font-size:10px;text-transform:uppercase}.contact-links{display:flex;flex-wrap:wrap;gap:12px}.contact-detail-last{border-bottom:0}.contact-footer{position:relative;isolation:isolate;overflow:hidden;margin-top:72px;padding:30px 34px 18px;border:1px solid var(--line);border-radius:22px;color:var(--muted);background:rgba(255,254,250,.72)}.contact-footer-grass{position:absolute;z-index:0;right:0;bottom:-1px;left:0;width:100%;height:60px;opacity:.56;background-color:rgba(106,121,79,.16);background-image:url(/grass.svg),url(/grass.svg);background-position:0 bottom,100px bottom;background-repeat:repeat-x;background-size:200px 60px;filter:contrast(1.12) brightness(.72);mix-blend-mode:multiply;mask-image:linear-gradient(180deg,transparent 0,rgba(0,0,0,.94) 32%,#000);pointer-events:none;user-select:none}.contact-footer-main{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(220px,.8fr);gap:40px;padding-bottom:38px}.contact-footer-brand .wordmark{display:inline-block;margin-bottom:18px}.contact-footer-brand p{margin:0;color:#8a857d;font-size:14px;line-height:1.5}.contact-footer-column{display:flex;flex-direction:column;gap:14px;padding-top:6px}.contact-footer-socials{display:flex;align-items:center;gap:12px}.footer-social-link{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;color:var(--ink);background:#fffefa;font-size:18px;transition:transform .2s ease,background .2s ease,border-color .2s ease}.footer-social-link:hover{transform:translateY(-2px);border-color:#cfc8bd;background:#f5f0e8}.gmail-mark{color:#ea4335;font-family:Arial,sans-serif;font-size:21px;font-weight:700;line-height:1}.contact-footer-bottom{position:relative;z-index:1;display:flex;justify-content:space-between;gap:15px;padding-top:16px;border-top:1px solid rgba(222,219,212,.8);color:#9a958d;font-family:DM Mono,monospace;font-size:9px;text-transform:uppercase}@media (max-width:900px){.site-shell{grid-template-columns:280px 1fr}.portfolio-panel{padding-right:18px;padding-left:18px}.contact-layout,.hero{grid-template-columns:1fr;min-height:auto}.contact-details,.hero-note{max-width:300px}}@media (max-width:680px){.site-shell{display:flex;flex-direction:column;padding:0;gap:0}.chat-panel{position:relative;top:0;height:500px;min-height:500px;border-radius:0 0 22px 22px;order:2}.portfolio-panel{min-height:auto;border-radius:0;padding:12px 16px 20px;order:1}.topbar{flex-wrap:wrap;gap:14px;padding-bottom:22px}nav{order:3;width:100%;justify-content:space-between}nav a{flex:1;padding-right:5px;padding-left:5px;text-align:center}.local-time{margin-left:auto}.hero{gap:28px;padding:28px 22px}h1{font-size:clamp(39px,12vw,62px)}.project-grid{grid-template-columns:1fr}.placeholder-art{min-height:170px}.calendar-section{margin-top:42px}.cal-embed{margin-top:10px;border-radius:18px}.cal-embed iframe{height:720px}.contact-section{margin-top:48px;padding:28px 22px}.contact-copy h1{font-size:clamp(38px,12vw,58px)}.contact-actions{align-items:flex-start;flex-direction:column;gap:18px}.contact-footer{margin-top:48px;padding:28px 22px 16px}.contact-footer-main{grid-template-columns:1fr;gap:28px;padding-bottom:28px}.contact-footer-bottom{align-items:flex-start;flex-direction:column;gap:8px}}.portfolio-panel.about-page{padding-bottom:0}.about-page main{padding-bottom:0;container-type:inline-size}.about-intro{--about-scroll:0;padding:0 0 46px;border-radius:22px;background:var(--panel)}.about-intro-copy{max-width:760px;margin:calc(38px - (var(--about-scroll) * 10px)) auto 0;padding:0 34px}.about-reveal-word{display:inline;will-change:filter,opacity}.about-keyword{position:relative;display:inline-block;z-index:0;padding:0 1px 3px;color:var(--ink);cursor:default;will-change:transform}.about-keyword:after,.about-keyword:before{position:absolute;right:-2px;bottom:0;left:-2px;height:5px;border-bottom:1.5px solid rgba(210,112,91,.82);border-radius:50%;content:"";pointer-events:none}.about-keyword:before{bottom:2px;transform:rotate(-1.5deg) scaleX(.98)}.about-keyword:after{bottom:-1px;transform:rotate(1.2deg) scaleX(1.02);opacity:.72}.about-status{margin-bottom:32px;color:var(--muted);font-family:DM Mono,monospace;font-size:11px}.about-intro h1{max-width:680px;margin-bottom:28px;font-size:clamp(45px,5.3vw,78px)}.about-prose{max-width:580px;color:#68645f;font-size:16px;line-height:1.6}.about-prose p{margin-bottom:18px}.about-portrait{width:calc(100% - (var(--about-scroll) * 68px));max-width:none;margin:0 auto}.about-portrait img{display:block;width:100%;height:calc(720px - (var(--about-scroll) * 360px));min-height:280px;border-radius:calc(22px - (var(--about-scroll) * 6px));object-fit:cover;object-position:center 48%;filter:saturate(.82);will-change:height,border-radius}.about-portrait figcaption{display:flex;justify-content:space-between;gap:12px;padding:11px 0 0;color:#9a958d;font-family:DM Mono,monospace;font-size:9px;text-transform:uppercase}.about-portrait figcaption span{color:var(--ink)}.about-belief,.about-journey{display:grid;grid-template-columns:150px minmax(0,1fr) 180px;gap:28px;margin-top:72px;padding:32px 2px 0;border-top:1px dashed #d2cec5}.about-section-label{color:#9a958d;font-family:DM Mono,monospace;font-size:10px;line-height:1.4;text-transform:uppercase}.about-belief-content{max-width:660px}.about-belief h2,.about-journey h2{max-width:680px;margin-bottom:18px;font-size:clamp(30px,3.2vw,48px);line-height:1.03}.about-belief p{max-width:600px;margin:0;color:#68645f;font-size:15px;line-height:1.6}.about-traits{display:flex;align-items:flex-start;flex-direction:column;gap:8px;color:var(--muted);font-family:DM Mono,monospace;font-size:10px;text-transform:uppercase}.about-traits span:before{margin-right:7px;color:#e26f40;content:"✳"}.about-memories{padding:76px 0 0}.about-memories .section-heading{margin-bottom:18px}.about-memory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(140px,auto));grid-template-areas:"wide wide football" "wide wide event" "extra extra event";gap:14px}.about-memory{min-width:0}.about-memory-wide{grid-area:wide}.about-memory-image{position:relative;min-height:180px;overflow:hidden;border-radius:17px;background:#ebe6dc}.about-memory-wide .about-memory-image{height:auto;min-height:0;aspect-ratio:16/10}.about-memory-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.75,.25,1)}.about-memory-wide .about-memory-image img{object-position:center 43%}.about-memory-football{grid-area:football}.about-memory-football .about-memory-image{display:grid;place-items:center;min-height:0;background:#dce5d2;aspect-ratio:4/3}.about-memory-football .about-memory-image img{width:130px;height:130px;object-fit:contain}.about-memory-event{grid-area:event}.about-memory-event .about-memory-image{min-height:0;height:100%}.about-memory-event .about-memory-image img{object-position:center 25%}.about-memory-extra{grid-area:extra}.about-memory-extra .about-memory-image{aspect-ratio:16/9}.about-memory-copy{padding:11px 4px 2px}.about-memory-copy span{color:#9a958d;font-family:DM Mono,monospace;font-size:9px;text-transform:uppercase}.about-memory-copy h3{margin:6px 0 0;font-size:15px;letter-spacing:-.03em}.about-travel{margin-top:14px;padding:0}.about-travel .section-heading{margin-bottom:20px}.travel-carousel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(3,clamp(150px,17vw,230px));grid-template-areas:"feature feature tall small" "feature feature tall vertical" "wide wide extra vertical";gap:14px}.travel-card{min-width:0}.travel-card-feature{grid-area:feature}.travel-card-tall{grid-area:tall}.travel-card-small{grid-area:small}.travel-card-vertical{grid-area:vertical}.travel-card-extra{grid-area:extra}.travel-card-wide-bottom{grid-area:wide}.travel-card-image{height:100%;min-height:0;overflow:hidden;border-radius:17px;background:#ebe6dc}.travel-card-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.75,.25,1)}.travel-card-feature .travel-card-image img{object-position:center 52%}.travel-card-tall .travel-card-image img{object-position:center 46%}.travel-card-small .travel-card-image img{object-position:center 52%}.travel-card-vertical .travel-card-image img{object-position:center 42%}.travel-card-extra .travel-card-image img{object-position:center 52%}.travel-card-wide-bottom .travel-card-image img{object-position:center 54%}.travel-card-copy{padding:9px 4px 0}.travel-card-copy span{color:#9a958d;font-family:DM Mono,monospace;font-size:9px;text-transform:uppercase}.travel-card-copy h3{margin:6px 0 0;font-size:15px;letter-spacing:-.03em}.about-gym{margin-top:14px}.gym-collage{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,clamp(180px,22vw,300px));grid-template-areas:"feature portrait" "feature room";gap:14px}.gym-card{min-width:0}.gym-card-feature{grid-area:feature}.gym-card-portrait{grid-area:portrait}.gym-card-room{grid-area:room}.gym-card-image{height:100%;min-height:0;overflow:hidden;border-radius:17px;background:#ebe6dc}.gym-card-image img{display:block;width:100%;height:100%;object-fit:cover}.gym-card-feature .gym-card-image img{object-position:center 53%}.gym-card-portrait .gym-card-image img{object-position:center 84%}.gym-card-room .gym-card-image img{object-position:center 48%}.about-journey{padding-bottom:48px}.about-journey-body{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(0,1fr);gap:40px}.about-journey-body h2{align-self:start;justify-self:center;order:2;width:100%;text-align:center}.about-journey-list{display:flex;flex-direction:column;order:1}.about-journey-list>div{display:grid;grid-template-columns:34px 1fr;gap:18px;padding:13px 0;border-bottom:1px solid rgba(210,206,197,.7);cursor:pointer}.about-journey-list>div:first-child{padding-top:0}.about-journey-list span{color:#9a958d;font-family:DM Mono,monospace;font-size:10px}.about-journey-list p{margin:0;color:#68645f;font-size:14px;line-height:1.45}.about-footer-reveal{--footer-name-size:min(18cqi,300px);position:relative;height:calc(var(--footer-name-size) * .41 + 36px);margin-top:0;overflow:hidden}.about-footer{bottom:0;isolation:isolate;overflow:hidden;height:100%;margin:0;padding:0;background:transparent;will-change:transform}.about-footer,.about-footer-name{position:absolute;right:0;left:0;color:var(--ink)}.about-footer-name{z-index:1;bottom:calc(var(--footer-name-size) * -.41);max-width:100%;cursor:pointer;font-size:var(--footer-name-size);font-weight:700;letter-spacing:-.14em;line-height:.82;text-align:center;transform:scaleX(1.08);transform-origin:center bottom;white-space:nowrap}.about-footer-letter{display:inline-block;transform-origin:center bottom;will-change:transform}@media (max-width:900px){.about-belief,.about-journey{grid-template-columns:120px minmax(0,1fr)}.about-traits{grid-column:2;flex-direction:row;flex-wrap:wrap}.about-journey-body{grid-template-columns:1fr;gap:24px}.about-memory-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;grid-template-areas:"wide wide" "football event" "extra extra"}.about-memory-event .about-memory-image{height:auto;min-height:240px}}@media (prefers-reduced-motion:reduce){.about-portrait img,.about-reveal-word{filter:none!important;opacity:1!important}.about-footer-letter,.about-keyword{transform:none!important;transition:none!important}}@media (max-width:680px){.about-intro{padding-bottom:32px}.about-intro h1{font-size:clamp(43px,13vw,62px)}.about-intro-copy{padding:0 22px}.about-prose{font-size:15px}.about-portrait{width:calc(100% - (var(--about-scroll) * 36px))}.about-portrait img{height:calc(460px - (var(--about-scroll) * 190px));min-height:220px}.about-belief,.about-journey{display:block;margin-top:52px;padding-top:24px}.about-belief-content,.about-journey-body{margin-top:22px}.about-traits{margin-top:24px}.about-memories,.about-travel{padding-top:56px}.about-gym{padding-top:0}.about-memory-grid{grid-template-columns:1fr;grid-template-rows:auto;grid-template-areas:"wide" "football" "event" "extra"}.about-memory-wide{grid-row:auto}.about-memory-wide .about-memory-image{min-height:0}.about-memory-football .about-memory-image{min-height:170px}.about-memory-event .about-memory-image{min-height:220px}.travel-carousel{display:flex;gap:14px;overflow-x:auto;padding-bottom:10px;scroll-snap-type:x mandatory;scrollbar-width:none}.travel-carousel::-webkit-scrollbar{display:none}.travel-card{flex:0 0 78%;min-width:0;scroll-snap-align:start}.travel-card-feature .travel-card-image{aspect-ratio:4/3}.travel-card-tall .travel-card-image,.travel-card-vertical .travel-card-image{aspect-ratio:3/4}.travel-card-extra .travel-card-image,.travel-card-small .travel-card-image,.travel-card-wide-bottom .travel-card-image{aspect-ratio:4/3}.gym-collage{display:flex;gap:14px;overflow-x:auto;padding-bottom:10px;scroll-snap-type:x mandatory;scrollbar-width:none}.gym-collage::-webkit-scrollbar{display:none}.gym-card{flex:0 0 78%;scroll-snap-align:start}.gym-card-image{aspect-ratio:4/3}.about-footer-reveal{--footer-name-size:19cqi}.about-footer-name{transform:scaleX(1)}}