:root{--font-sans:"Avenir Next","IBM Plex Sans","Segoe UI",sans-serif;--font-serif:"Iowan Old Style","Palatino Linotype","Book Antiqua",serif;--bg:#e4e0d8;--surface:rgba(255,255,255,0.68);--chat-panel-bg:rgba(255,254,251,0.82);--text:#242420;--muted:#82807a;--line:rgba(0,0,0,0.08);--line-strong:rgba(0,0,0,0.13);--navy-soft:rgba(0,0,0,0.05);--shadow:0 26px 80px rgba(0,0,0,0.1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;color:var(--text);font-family:var(--font-sans),sans-serif;background:var(--bg)}body.chat-mobile-open{overflow:hidden}a{color:inherit;text-decoration:none}button,textarea{font:inherit}button{color:inherit}h1,h2,h3,p{margin:0}.portfolio-page{min-height:100vh;padding:16px 0}.layout-shell{width:min(1320px,calc(100% - 32px));margin:0 auto;display:grid;grid-template-columns:minmax(0,1.18fr) minmax(360px,.82fr);grid-gap:40px;gap:40px;align-items:start}.layout-shell.is-chat-condensed{grid-template-columns:minmax(0,760px) 0;gap:0;justify-content:center}.profile-column-shell{min-width:0;will-change:transform;transition:filter .32s ease}body.portrait-open .profile-column-shell{filter:blur(18px)}.surface{border:1px solid rgba(255,255,255,.08);border-radius:32px;background:var(--surface);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.profile-column{display:grid;grid-gap:38px;gap:38px}.chat-panel,.profile-hero{overflow:hidden}.profile-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr);grid-gap:24px;gap:24px;padding:36px}.chat-panel:before,.profile-hero:before{content:"";position:absolute;inset:auto auto 0 -10%;width:260px;height:260px;border-radius:50%;background:none;pointer-events:none}.profile-copy,.section-header{position:relative;z-index:1}.profile-copy{max-width:none}.link-label,.project-role,.section-kicker{font-size:.76rem;letter-spacing:.08em;text-transform:uppercase}.project-role,.section-kicker{color:var(--muted)}h1,h2,h3{font-family:var(--font-serif),serif;font-weight:500;line-height:.98}h1{margin-top:8px;font-size:clamp(3.3rem,8vw,6.2rem)}h2{font-size:clamp(1.7rem,3.2vw,2.5rem)}h3{font-size:1.45rem}.name-row{display:flex;align-items:center;gap:20px}.profile-portrait-button{display:inline-flex;padding:0;border:0;background:none;border-radius:16px;cursor:pointer;flex-shrink:0;transition:transform .16s ease}.profile-portrait-button:hover{transform:translateY(-1px)}.profile-portrait-button:focus-visible{outline:2px solid rgba(180,123,82,.26);outline-offset:4px}.profile-portrait{width:200px;height:200px;object-fit:cover;object-position:center;border-radius:16px;flex-shrink:0}.portrait-lightbox{position:fixed;top:16px;bottom:16px;left:16px;width:760px;z-index:60;overflow:visible;display:grid;justify-items:center;align-items:center;padding:24px;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:0;opacity:0;transition:opacity .28s ease}.portrait-lightbox.is-visible{opacity:1}.portrait-lightbox-frame{position:relative;z-index:1;width:min(100%,620px);max-height:100%;opacity:0;transform:translateY(12px) scale(.97);transition:opacity .26s ease,transform .34s cubic-bezier(.22,1,.36,1)}.portrait-lightbox.is-visible .portrait-lightbox-frame{opacity:1;transform:translateY(0) scale(1)}.portrait-lightbox-close{position:absolute;top:14px;right:14px;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;padding:0;border:0;border-radius:999px;background:rgba(18,24,34,.5);color:#f5f7fb;cursor:pointer;transition:background .16s ease,transform .16s ease}.portrait-lightbox-close:hover{background:rgba(18,24,34,.7);transform:translateY(-1px)}.portrait-lightbox-close:focus-visible{outline:2px solid rgba(255,255,255,.42);outline-offset:3px}.portrait-lightbox-image{display:block;width:100%;max-height:calc(100dvh - 104px);object-fit:cover;border-radius:28px;box-shadow:0 28px 80px rgba(10,16,24,.34)}.name-h1-wrap{flex:1 1;min-width:0}.profile-headline{margin-top:16px;font-size:clamp(1.3rem,2vw,1.7rem);line-height:1.3}.profile-summary-group{display:grid;grid-gap:14px;gap:14px;margin-top:18px}.focus-card p,.link-detail,.message-body,.profile-summary,.project-summary{color:var(--muted);line-height:1.68}.highlight-row{display:flex;flex-wrap:wrap;row-gap:10px;column-gap:0;width:100%;justify-content:space-evenly;align-items:center;margin-top:22px}.highlight-chip,.starter-chip{border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--text)}.highlight-chip{padding:10px 14px}.avatar-surface{background-image:linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.22)),url(/images/simon-portrait.jpg);background-size:cover;background-position:50%;background-color:#c4bfb6}.focus-section,.links-section,.projects-section{padding-top:30px;border-top:1px solid rgba(0,0,0,.1)}.motion-reveal.is-pending{opacity:0;transform:translateY(18px);transition:opacity .36s ease,transform .42s cubic-bezier(.22,1,.36,1);transition-delay:var(--motion-reveal-delay,0s);will-change:opacity,transform}.motion-reveal.is-pending.is-visible{opacity:1;transform:translateY(0)}.section-header{display:grid;grid-gap:10px;gap:10px}.section-header.compact{max-width:48rem}.focus-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:20px;gap:20px;margin-top:22px}.focus-card{padding-top:16px;border-top:1px solid var(--line)}.focus-card h3{font-size:1.25rem}.focus-card p{margin-top:10px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px;margin-top:22px;align-items:start}.project-card{position:relative;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:10px;width:100%;height:clamp(132px,12.2vw,150px);padding:16px 18px;border:1px solid var(--line);border-radius:26px;background:rgba(255,255,255,.48);text-align:left;cursor:pointer;overflow:hidden;transition:height .36s ease,background .22s ease,border-color .22s ease,transform .22s ease,padding .36s ease,box-shadow .22s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}.project-number{font-size:.72rem;font-family:var(--font-sans);letter-spacing:.1em;color:var(--muted);opacity:.6}.project-card-body{display:grid;grid-gap:6px;gap:6px;width:100%;transform:translateY(0);transition:transform .32s cubic-bezier(.22,1,.36,1)}.project-card h3{font-size:clamp(1.2rem,1.5vw,1.45rem);line-height:1.02}.project-card-details{position:absolute;right:22px;bottom:22px;left:22px;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .22s ease,transform .32s cubic-bezier(.22,1,.36,1)}.project-card .project-summary{opacity:1;transform:none;transition:none}.project-card.is-expanded{height:clamp(268px,24vw,300px);padding:22px 22px 118px}.project-card.is-expanded .project-card-body{transform:translateY(-4px)}.project-card.is-active{background:rgba(255,255,255,.74);border-color:rgba(0,0,0,.18);box-shadow:0 18px 36px rgba(15,28,39,.08)}.project-card.is-expanded .project-card-details{opacity:1;transform:translateY(0);transition-delay:.18s}.project-card:hover{transform:translateY(-1px)}.project-card:focus-visible{outline:2px solid rgba(180,123,82,.26);outline-offset:2px}@media (hover:hover){.project-card:hover{background:rgba(255,255,255,.7);border-color:rgba(0,0,0,.16)}}.links-section .section-header{margin-bottom:18px}.link-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px}.link-card{display:flex;flex-direction:column;gap:10px;padding:18px 16px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.48);transition:background .14s ease,transform .14s ease,border-color .14s ease}.link-card:hover{background:rgba(255,255,255,.72);border-color:rgba(0,0,0,.18);transform:translateY(-2px)}.link-icon-wrap{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:var(--navy-soft);color:var(--text)}.link-label{color:var(--text);font-weight:500}.link-detail{font-size:.78rem;word-break:break-all}.chat-column{position:-webkit-sticky;position:sticky;top:16px;height:calc(100dvh - 32px);min-width:0;overflow:hidden}.chat-panel{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;grid-gap:16px;gap:16px;height:100%;padding:20px}.chat-panel,.chat-pill{background:var(--chat-panel-bg)}.chat-pill{position:fixed;top:16px;right:16px;z-index:80;display:inline-flex;align-items:center;gap:12px;min-height:72px;max-width:calc(100vw - 32px);padding:10px 18px 10px 10px;border-radius:999px;border-color:var(--line-strong);color:var(--text);cursor:pointer;transition:opacity .24s ease,transform .34s cubic-bezier(.22,1,.36,1),background .18s ease,border-color .18s ease,box-shadow .18s ease,visibility 0s linear .24s;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);opacity:0;visibility:hidden;pointer-events:none;transform:scale(1);transition:opacity 0s,visibility 0s}.chat-pill.is-visible{opacity:1;visibility:visible;pointer-events:auto}.chat-morph-overlay{display:none;position:fixed;z-index:90;pointer-events:none;background:var(--chat-panel-bg);border:1px solid rgba(255,255,255,.08);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.chat-pill:hover{transform:translateY(-1px);background:var(--chat-panel-bg);border-color:rgba(0,0,0,.14)}.chat-pill:focus-visible{outline:2px solid rgba(180,123,82,.26);outline-offset:4px}.chat-pill-avatar{width:52px;height:52px;flex-shrink:0}.chat-pill-label{font-size:.98rem;font-weight:500;letter-spacing:.01em;white-space:nowrap}.chat-panel-pill-preview{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 18px 10px 10px;pointer-events:none;opacity:0}.chat-panel-header{padding-bottom:14px;border-bottom:1px solid var(--line)}.chat-panel-header-top{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:start}.chat-heading{display:grid;grid-template-columns:auto 1fr;grid-gap:14px;gap:14px;width:100%;min-width:0;border:0;background:none;text-align:left}.chat-heading,.chat-modal-close{align-items:center;padding:0;cursor:pointer}.chat-modal-close{display:inline-flex;justify-content:center;width:42px;height:42px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.52);color:var(--text);transition:transform .14s ease,background .14s ease,border-color .14s ease}.chat-modal-close:hover{transform:translateY(-1px);background:rgba(255,255,255,.72);border-color:var(--line-strong)}.chat-modal-close:focus-visible{outline:2px solid rgba(180,123,82,.26);outline-offset:3px}.chat-avatar-button{position:relative;display:inline-flex;padding:0;border:0;background:none;border-radius:999px;cursor:pointer;transition:transform .16s ease}.avatar-collapse-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface);color:var(--text);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.avatar-collapse-icon,.chat-heading:hover .avatar-surface{opacity:0;transition:opacity .18s ease}.chat-heading:hover .avatar-collapse-icon{opacity:1}.chat-avatar-button:hover{transform:translateY(-1px)}.chat-avatar-button:focus-visible{outline:2px solid rgba(180,123,82,.26);outline-offset:4px}.chat-heading h2{max-width:none;font-size:clamp(1.4rem,2.4vw,1.95rem);line-height:1.08}.avatar-surface{width:58px;height:58px;border-radius:50%;border:1px solid rgba(255,255,255,.3);box-shadow:0 12px 34px rgba(0,0,0,.18)}.chat-avatar-button .avatar-surface,.chat-pill .avatar-surface{border-color:transparent}.chat-messages{min-height:0;display:flex;flex-direction:column;gap:16px;overflow:auto;padding:4px 4px 4px 0;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.14) transparent}.chat-input::-webkit-scrollbar,.chat-messages::-webkit-scrollbar{width:4px}.chat-input::-webkit-scrollbar-track,.chat-messages::-webkit-scrollbar-track{background:transparent}.chat-input::-webkit-scrollbar-thumb,.chat-messages::-webkit-scrollbar-thumb{background:rgba(0,0,0,.14);border-radius:999px}.chat-input::-webkit-scrollbar-thumb:hover,.chat-messages::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.26)}.chat-empty-state{display:grid;align-content:start;grid-gap:18px;gap:18px;min-height:100%}.chat-empty-copy{display:grid;grid-gap:8px;gap:8px}.chat-empty-kicker{font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.chat-empty-copy h3{font-family:var(--font-serif),serif;font-size:clamp(1.25rem,2vw,1.65rem);font-weight:500;line-height:1.2;color:var(--text)}.starter-stack{display:grid;grid-gap:10px;gap:10px}.starter-chip{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;grid-gap:12px;gap:12px;width:100%;padding:14px 16px;overflow:hidden;font-size:.96rem;text-align:left;cursor:pointer;transition:transform .22s cubic-bezier(.22,1,.36,1),border-color .14s ease,background .14s ease}.starter-chip-label{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.starter-chip-arrow{display:inline-flex;align-items:center;justify-content:center;width:30px;height:18px;flex-shrink:0;justify-self:end;overflow:visible}.starter-chip-arrow svg{opacity:0;transform:translateX(0);will-change:opacity,transform}.starter-chip:focus-visible,.starter-chip:hover{transform:translateX(5px);border-color:var(--line-strong);background:var(--surface);filter:brightness(1.04)}.starter-chip:focus-visible .starter-chip-arrow svg,.starter-chip:hover .starter-chip-arrow svg{animation:starter-chip-arrow-motion 2.2s linear infinite}@keyframes starter-chip-arrow-motion{0%{opacity:0;transform:translateX(-14px)}34%{opacity:1;transform:translateX(0)}58%{opacity:1;transform:translateX(0)}90%{opacity:0;transform:translateX(14px)}to{opacity:0;transform:translateX(14px)}}.chat-message{display:grid}.chat-message.assistant{justify-items:start}.chat-message.user{justify-items:end}.message-card{max-width:min(88%,38rem);animation:message-card-in .32s cubic-bezier(.22,1,.36,1) both;transform-origin:bottom left}.chat-message.assistant .message-card{padding-right:12px}.chat-message.user .message-card{padding:12px 16px;border-radius:24px;background:rgba(0,0,0,.06);transform-origin:bottom right}.message-body{color:var(--text)}.chat-message.user .message-body{white-space:pre-wrap}.assistant-markdown-shell{display:grid;grid-gap:8px;gap:8px;justify-items:start}.assistant-markdown{display:grid;grid-gap:12px;gap:12px}.assistant-markdown>*{margin:0}.assistant-markdown blockquote,.assistant-markdown li,.assistant-markdown p{line-height:1.65}.assistant-markdown h1,.assistant-markdown h2,.assistant-markdown h3,.assistant-markdown h4{font-family:var(--font-serif),serif;font-weight:500;line-height:1.08}.assistant-markdown h1{font-size:1.45rem}.assistant-markdown h2{font-size:1.22rem}.assistant-markdown h3,.assistant-markdown h4{font-size:1.05rem}.assistant-markdown ol,.assistant-markdown ul{display:flex;flex-direction:column;gap:8px;margin:0;padding-left:1.2rem}.assistant-markdown li{display:list-item}.assistant-markdown blockquote{padding-left:14px;border-left:2px solid rgba(0,0,0,.16);color:var(--muted)}.assistant-markdown pre{overflow-x:auto;padding:12px 14px;border-radius:18px;background:rgba(0,0,0,.05)}.assistant-markdown code,.markdown-inline-code{font-family:SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace;font-size:.92em}.assistant-markdown :not(pre)>code,.markdown-inline-code{padding:.14em .38em;border-radius:999px;background:rgba(0,0,0,.05)}.assistant-markdown a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.14em}.assistant-markdown strong{font-weight:600}.assistant-markdown em{font-style:italic}.assistant-typing-caret{display:inline-block;width:.62ch;height:1.05em;margin-left:2px;border-radius:999px;background:currentColor;vertical-align:-.14em;opacity:.55;animation:assistant-caret-blink 1.05s step-end infinite}.assistant-typing-text{display:inline;white-space:pre-wrap;line-height:1.65}.assistant-typing-char{display:inline-block;animation:assistant-char-in .16s ease-out both}.thinking-indicator{display:inline-flex;align-items:baseline;gap:.08em}.thinking-label-stack{position:relative;display:inline-block;white-space:nowrap}.thinking-label{display:inline-block}.thinking-label-current{position:relative;animation:thinking-label-in .36s cubic-bezier(.22,1,.36,1) both}.thinking-label-outgoing{position:absolute;inset:0 auto auto 0;pointer-events:none;animation:thinking-label-out .36s ease-in-out both}.thinking-dots{display:inline-flex;min-width:.95em}.thinking-dots span{animation:thinking-dot 1.15s ease-in-out infinite;opacity:.18}.thinking-dots span:nth-child(2){animation-delay:.18s}.thinking-dots span:nth-child(3){animation-delay:.36s}@keyframes thinking-dot{0%,80%,to{opacity:.18}40%{opacity:1}}@keyframes thinking-label-in{0%{opacity:0}to{opacity:1}}@keyframes thinking-label-out{0%{opacity:1}to{opacity:0}}@keyframes message-card-in{0%{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes assistant-char-in{0%{opacity:0;transform:translateY(.18em)}to{opacity:1;transform:translateY(0)}}@keyframes assistant-caret-blink{0%,48%{opacity:.55}50%,to{opacity:0}}.chat-footer{display:grid;grid-gap:12px;gap:12px}.chat-composer{padding-top:16px;border-top:1px solid var(--line)}.chat-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:stretch}.chat-input-wrap{position:relative}.chat-input-overlay{position:absolute;inset:0;padding:15px 18px;color:rgba(100,100,100,.7);line-height:1.45;white-space:pre-wrap;pointer-events:none;z-index:2}.chat-input-overlay-char{display:inline-block;opacity:0;transition:opacity .16s ease-out}.chat-input-overlay-char.is-visible{opacity:1}.chat-input{position:relative;z-index:1;width:100%;min-height:56px;max-height:160px;resize:none;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.14) transparent;border:1px solid var(--line-strong);border-radius:20px;padding:15px 18px;line-height:1.45;color:var(--text);background:rgba(255,255,255,.64)}.chat-input:focus{outline:2px solid rgba(0,0,0,.1);border-color:rgba(0,0,0,.3)}.chat-submit{display:flex;align-items:center;justify-content:center;align-self:center;width:56px;height:56px;flex-shrink:0;border:0;border-radius:14px;background:#2a2a2a;color:#f0f0f0;cursor:pointer;transition:background .14s ease,transform .1s ease}.chat-submit:hover:not(:disabled){background:#444444;transform:translateY(-1px)}.chat-submit-stop{background:rgba(0,0,0,.07);color:#444444}.chat-submit-stop:hover{background:rgba(0,0,0,.12)}.chat-submit:disabled{opacity:.45;cursor:not-allowed}.error-banner{padding:12px 14px;border-radius:18px;background:rgba(0,0,0,.05);color:#444444}.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}@media (prefers-color-scheme:dark){:root{--bg:#161a20;--surface:rgba(22,27,36,0.92);--chat-panel-bg:rgba(18,22,30,0.96);--text:#dce2ec;--muted:#7d8898;--line:rgba(255,255,255,0.08);--line-strong:rgba(255,255,255,0.12);--navy-soft:rgba(255,255,255,0.06);--shadow:0 26px 80px rgba(0,0,0,0.45)}.highlight-chip,.starter-chip{background:rgba(255,255,255,.06)}.starter-chip:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.16)}.project-card{background:rgba(255,255,255,.04)}.project-card.is-active{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);box-shadow:0 18px 36px rgba(0,0,0,.3)}.project-card:focus-visible{outline-color:rgba(255,255,255,.2)}@media (hover:hover){.project-card:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.12)}}.link-card{background:rgba(255,255,255,.04)}.link-card:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14)}.chat-input{background:rgba(255,255,255,.05)}.chat-message.user .message-card{background:rgba(255,255,255,.07)}.assistant-markdown :not(pre)>code,.assistant-markdown pre,.markdown-inline-code{background:rgba(255,255,255,.06)}.chat-submit{background:rgba(255,255,255,.88);color:#1e1c19}.chat-submit:hover:not(:disabled){background:#ffffff}.chat-submit-stop{background:rgba(255,255,255,.07);color:var(--muted)}.chat-submit-stop:hover{background:rgba(255,255,255,.12)}.chat-modal-close{background:rgba(255,255,255,.08)}.chat-modal-close:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.16)}.error-banner{background:rgba(255,255,255,.05);color:var(--muted)}.chat-input,.chat-messages{scrollbar-color:rgba(255,255,255,.22) transparent}.chat-input::-webkit-scrollbar-thumb,.chat-messages::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22)}.chat-input::-webkit-scrollbar-thumb:hover,.chat-messages::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.38)}}@media (max-width:1180px){.layout-shell,.layout-shell.is-chat-condensed{grid-template-columns:minmax(0,1fr)}.layout-shell.is-chat-condensed{gap:24px;justify-content:stretch}.chat-column{position:static;height:auto}.chat-panel{height:auto}.chat-messages{max-height:36rem}}@media (max-width:920px){.profile-hero{grid-template-columns:1fr;padding:30px}.name-row{align-items:center;gap:18px}.name-h1-wrap{flex:1 1}.profile-portrait{width:clamp(112px,22vw,168px);height:clamp(112px,22vw,168px)}.profile-headline{font-size:clamp(1.15rem,3.6vw,1.45rem)}.highlight-row{justify-content:flex-start;gap:10px;margin-top:20px}.portrait-lightbox{inset:0;width:auto;display:grid;justify-items:center;align-items:center;padding:20px}.portrait-lightbox.is-visible{background:rgba(18,24,34,.66);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.portrait-lightbox-frame{width:min(100%,760px);max-height:none}.portrait-shell{min-height:340px}.focus-grid,.link-grid,.project-grid{grid-template-columns:1fr}.layout-shell,.profile-column{gap:24px}}@media (max-width:640px){.portfolio-page{padding-top:18px;padding-bottom:102px}.layout-shell{width:min(100% - 18px,1320px);gap:18px}.surface{border-radius:24px}.chat-pill{top:auto;bottom:18px;right:18px;min-height:64px;max-width:min(calc(100vw - 36px),248px);padding:8px 18px 8px 8px;border-radius:999px}.chat-column.is-mobile-modal{position:fixed;top:calc(env(safe-area-inset-top) + 12px);right:12px;bottom:calc(env(safe-area-inset-bottom) + 12px);left:12px;z-index:96;height:auto;opacity:0;pointer-events:none;transform:translateY(18px) scale(.985);transition:opacity .22s ease,transform .3s cubic-bezier(.22,1,.36,1)}.chat-column.is-mobile-modal.is-mobile-modal-active{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}.chat-column.is-mobile-modal .chat-panel{height:100%;border-radius:28px}.chat-column.is-mobile-modal .chat-panel-header-top{gap:10px}.chat-column.is-mobile-modal .chat-modal-close{width:40px;height:40px;flex-shrink:0}.chat-modal-backdrop{position:fixed;inset:0;z-index:94;padding:0;border:0;background:rgba(18,24,34,.28);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;pointer-events:none;transition:opacity .22s ease}.chat-modal-backdrop.is-visible{opacity:1;pointer-events:auto}.chat-panel,.profile-hero{padding:20px}.profile-hero h1{font-size:clamp(2.45rem,13vw,3.15rem);line-height:1.02}.name-row{gap:14px}.profile-portrait{width:clamp(88px,28vw,132px);height:clamp(88px,28vw,132px)}.profile-headline{margin-top:14px;font-size:1.08rem;line-height:1.35}.profile-summary-group{gap:12px;margin-top:16px}.profile-summary{font-size:.96rem;line-height:1.62}.highlight-row{row-gap:8px;column-gap:8px;margin-top:16px}.highlight-chip{max-width:100%;padding:9px 12px;font-size:.9rem}.focus-section,.links-section,.projects-section{padding-top:22px}.links-section .section-header{gap:8px;margin-bottom:14px}.links-section .section-header h2{font-size:clamp(1.35rem,6.8vw,1.8rem);line-height:1.08}.link-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.link-card{flex-direction:row;align-items:center;gap:12px;min-height:58px;padding:14px;border-radius:18px}.link-icon-wrap{width:34px;height:34px;border-radius:9px;flex-shrink:0}.link-label{font-size:.94rem}h1{font-size:3rem}.chat-heading,.chat-input-row{display:grid;grid-template-columns:1fr}.chat-submit{width:100%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.motion-reveal.is-pending,.motion-reveal.is-pending.is-visible{opacity:1;transform:none;transition:none}.assistant-typing-caret,.assistant-typing-char,.chat-column.is-mobile-modal,.chat-modal-backdrop,.message-card,.project-card,.project-card-body,.project-card-details{animation:none!important;transition-duration:0s!important}}