:root{--plum: #1E0B36;--violet: #5B21E6;--coral: #FF4D6D;--sun: #FFB81C;--lagoon: #0B4F4A;--bg: #FBFAFD;--surface: #F3F0F8;--raised: #FFFFFF;--ink: #1E0B36;--muted: #5E546E;--line: #E4DEEE;--accent: #5B21E6;--accent-ink: #FFFFFF;--c-sc: #00897B;--c-ai: #5B21E6;--c-lead: #B85C00;--c-sys: #E0234E;--t-sc: #D3F3EE;--t-ai: #E6DCFF;--t-lead: #FFE9BF;--t-sys: #FFD9E0;--ok: #0A7F52;--warn: #9A5B00;--page: var(--violet);--page2: var(--coral);--display: "Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;--body: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;--wrap: 1180px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #150826;--surface: #1F0F36;--raised: #2A1647;--ink: #F6EEFF;--muted: #B9A8D6;--line: #3D2763;--accent: #B79CFF;--accent-ink: #150826;--c-sc: #3EE0CC;--c-ai: #B79CFF;--c-lead: #FFC247;--c-sys: #FF7A93;--t-sc: #0E3B38;--t-ai: #2E1B5C;--t-lead: #47300A;--t-sys: #4A1526;--ok: #5BE0A0;--warn: #FFC247;color-scheme:dark}}:root[data-theme=dark]{--bg: #150826;--surface: #1F0F36;--raised: #2A1647;--ink: #F6EEFF;--muted: #B9A8D6;--line: #3D2763;--accent: #B79CFF;--accent-ink: #150826;--c-sc: #3EE0CC;--c-ai: #B79CFF;--c-lead: #FFC247;--c-sys: #FF7A93;--t-sc: #0E3B38;--t-ai: #2E1B5C;--t-lead: #47300A;--t-sys: #4A1526;--ok: #5BE0A0;--warn: #FFC247;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:15.5px/1.6 var(--body)}img{max-width:100%;display:block}a{color:inherit}a:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}[hidden]{display:none!important}h1,h2,h3{font-family:var(--display);letter-spacing:-.02em;line-height:1.1;text-wrap:balance;margin:0}p{margin:0}.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:20px}.prose{max-width:66ch}.prose p+p{margin-top:12px}.eyebrow{font:500 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.muted{color:var(--muted)}.mono{font-family:var(--mono)}.skip{position:absolute;left:-9999px;top:8px;background:var(--ink);color:var(--bg);padding:8px 12px;border-radius:6px;z-index:50}.skip:focus{left:12px}.bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.bar .wrap{display:flex;align-items:center;gap:16px;padding-block:12px;flex-wrap:wrap}.mark{display:flex;align-items:baseline;gap:10px;text-decoration:none}.mark b{font:800 19px var(--display);letter-spacing:-.01em}.mark span{font:12px var(--mono);color:var(--muted)}.nav{margin-left:auto;display:flex;gap:4px;flex-wrap:wrap;align-items:center}.nav a{text-decoration:none;color:var(--muted);padding:6px 10px;border-radius:6px;font-size:14.5px}.nav a:hover,.nav a[aria-current=page]{color:var(--ink);background:var(--surface)}.btn{display:inline-flex;align-items:center;gap:8px;font:600 14px var(--body);padding:10px 16px;border-radius:8px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);text-decoration:none;cursor:pointer}.btn:hover{color:var(--bg);opacity:.9}.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}.btn.ghost:hover{border-color:var(--ink);color:var(--ink)}.btns{display:flex;gap:8px;flex-wrap:wrap}section{padding-block:44px}.sec-head{display:flex;justify-content:space-between;align-items:end;gap:16px;border-top:1px solid var(--ink);padding-top:14px;margin-bottom:22px;flex-wrap:wrap}.sec-head h2{font-size:28px;font-weight:700}.sec-head p{color:var(--muted);max-width:54ch}.page-head{padding-block:48px 8px}.page-head h1{font-size:clamp(34px,5vw,54px);font-weight:800;margin:10px 0 14px}.page-head p{color:var(--muted);max-width:62ch;font-size:17px}.ledger{display:grid;border-top:1px solid var(--ink)}.ledger div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-block:12px;border-bottom:1px solid var(--line)}.ledger strong{font:700 32px var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.ledger span{color:var(--muted);font-size:14px;text-align:right}.status{font:500 11px var(--mono);text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:4px;display:inline-block}.status.live,.status.ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent)}.status.pov{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.status.prep,.status.warn{color:var(--warn);background:color-mix(in srgb,var(--warn) 16%,transparent)}.tag{font:500 11px var(--mono);padding:3px 7px;border-radius:4px;background:var(--surface);color:var(--muted);border:1px solid var(--line)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.card{display:flex;flex-direction:column;background:var(--raised);border:1px solid var(--line);border-radius:10px;overflow:hidden;text-decoration:none;transition:transform .15s ease,border-color .15s ease}.card:hover{transform:translateY(-2px);border-color:var(--cc);color:inherit}.plate{background:var(--tc);height:92px;position:relative;display:flex;align-items:flex-end;padding:10px 12px;color:var(--cc)}.plate svg{position:absolute;inset:10px 12px 26px;width:calc(100% - 24px);height:calc(100% - 36px)}.plate .no{font:11px var(--mono);letter-spacing:.06em;position:relative}.card .bodyc{padding:14px 14px 12px;display:flex;flex-direction:column;gap:6px;flex:1}.card h3{font-size:19px;font-weight:700}.card p{color:var(--muted);font-size:14px}.card .sig{font:12px var(--mono);margin-top:auto;padding-top:10px;border-top:1px dashed var(--line)}.card .meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.case{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px;background:var(--raised);border:1px solid var(--line);border-radius:10px;padding:24px}.case h3{font-size:24px;font-weight:700;margin:8px 0}.case p{color:var(--muted)}.facts{display:flex;gap:24px;flex-wrap:wrap;margin-block:16px}.facts strong{display:block;font:700 26px var(--display);font-variant-numeric:tabular-nums;line-height:1.1}.facts span{font-size:12px;color:var(--muted)}.calls h4{font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 10px}.calls ol{margin:0;padding:0;list-style:none;display:grid;gap:12px;counter-reset:c}.calls li{counter-increment:c;display:grid;grid-template-columns:28px 1fr;gap:6px;font-size:14.5px}.calls li:before{content:counter(c,decimal-leading-zero);font:12px var(--mono);color:var(--c-sys);padding-top:3px}.foot{border-top:1px solid var(--line);padding-block:28px 96px;color:var(--muted);font-size:14px;margin-top:40px}.foot .wrap{display:flex;gap:18px;flex-wrap:wrap;justify-content:space-between}.foot nav{display:flex;gap:18px;flex-wrap:wrap}.ask-fab{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:30;display:inline-flex;align-items:center;gap:8px;font:600 14px var(--body);padding:12px 16px;border-radius:999px;border:0;background:var(--ink);color:var(--bg);cursor:pointer;box-shadow:0 6px 20px #0000002e}.drawer{position:fixed;right:18px;bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:31;width:min(420px,calc(100vw - 36px));height:min(600px,calc(100vh - 120px));background:var(--raised);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;box-shadow:0 16px 48px #00000038}.chat-head{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:start;gap:12px}.chat-head b{font:700 16px var(--display);display:block}.chat-head small{color:var(--muted);font-size:12.5px}.chat-head button{background:none;border:0;color:var(--muted);font-size:20px;cursor:pointer;line-height:1}.chat-log{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.msg{max-width:88%;padding:9px 12px;border-radius:10px;font-size:14.5px;white-space:pre-wrap}.msg.user{align-self:flex-end;background:var(--ink);color:var(--bg)}.msg.bot{align-self:flex-start;background:var(--surface);border:1px solid var(--line)}.msg .acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.msg .acts a{font:600 12.5px var(--body);padding:5px 10px;border:1px solid var(--line);border-radius:999px;text-decoration:none;background:var(--raised)}.chips{display:flex;gap:6px;flex-wrap:wrap}.chips button{font:13px var(--body);padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:var(--raised);color:var(--ink);cursor:pointer;text-align:left}.chat-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line)}.chat-form input{flex:1;min-width:0;font:14.5px var(--body);padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}.chat-note{font-size:11.5px;color:var(--muted);padding:0 16px 10px}@media(max-width:860px){.case{grid-template-columns:1fr;padding:18px}section{padding-block:32px}}@media(prefers-reduced-motion:reduce){.card{transition:none}.card:hover{transform:none}}@media print{.bar,.foot,.ask-fab,.drawer,.no-print{display:none!important}body{background:#fff;color:#000}}@view-transition{navigation:auto}::view-transition-old(root){animation:vt-out .22s ease both}::view-transition-new(root){animation:vt-in .32s ease both}@keyframes vt-out{to{opacity:0;transform:translateY(-6px)}}@keyframes vt-in{0%{opacity:0;transform:translateY(8px)}}.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.2,.7,.2,1) var(--d, 0ms),transform .7s cubic-bezier(.2,.7,.2,1) var(--d, 0ms)}.js .reveal.in{opacity:1;transform:none}#progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:40;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--c-sc),var(--c-ai),var(--c-lead),var(--c-sys))}.card,.case,.lens-row a,.way,.spot{position:relative;isolation:isolate}.card:after,.case:after,.lens-row a:after,.way:after,.spot:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;opacity:0;transition:opacity .25s;background:radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%),color-mix(in srgb,var(--accent) 12%,transparent),transparent 60%)}.card:hover:after,.case:hover:after,.lens-row a:hover:after,.way:hover:after,.spot:hover:after{opacity:1}.card{will-change:transform}.card:hover{transform:translateY(-4px);box-shadow:0 22px 40px -24px #14182073}.plate.has-shot{padding:0;height:168px;background:var(--tc);align-items:stretch}.plate.has-shot img{width:100%;height:100%;object-fit:cover;object-position:top left;transition:transform .6s cubic-bezier(.2,.7,.2,1)}.card:hover .plate.has-shot img{transform:scale(1.045)}.plate.has-shot .no{position:absolute;left:10px;bottom:8px;background:color-mix(in srgb,var(--raised) 88%,transparent);color:var(--cc);padding:3px 7px;border-radius:4px;backdrop-filter:blur(4px)}.btn{transition:transform .15s ease,opacity .15s,background .2s,border-color .2s}.btn:active{transform:scale(.97)}.btn.sm{padding:8px 12px;font-size:13px}.nav a{position:relative}.nav a:after{content:"";position:absolute;left:10px;right:10px;bottom:3px;height:2px;border-radius:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}.nav a:hover:after,.nav a[aria-current=page]:after{transform:scaleX(1)}.theme-btn{width:36px;height:36px;border-radius:999px;border:1px solid var(--line);background:var(--raised);color:var(--ink);cursor:pointer;display:grid;place-items:center;margin-left:4px}.theme-btn svg{width:17px;height:17px}.theme-btn .moon{display:none}:root[data-theme=dark] .theme-btn .sun{display:none}:root[data-theme=dark] .theme-btn .moon{display:block}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-btn .sun{display:none}:root:not([data-theme=light]) .theme-btn .moon{display:block}}.marquee{overflow:hidden;border-block:1px solid var(--line);padding-block:14px;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.marquee-track{display:flex;gap:40px;width:max-content;animation:marquee 38s linear infinite}.marquee:hover .marquee-track{animation-play-state:paused}.marquee span{font:600 17px var(--display);color:var(--muted);white-space:nowrap;display:inline-flex;align-items:center;gap:40px}.marquee span:after{content:"✦";font-size:11px;color:var(--c-lead)}@keyframes marquee{to{transform:translate(-50%)}}.rise>span{display:inline-block;animation:rise .8s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i) * 70ms + 80ms)}@keyframes rise{0%{opacity:0;transform:translateY(.45em) rotate(1.5deg)}}.raindrop{position:fixed;top:-40px;z-index:60;pointer-events:none;font:600 13px var(--body);background:var(--raised);color:var(--ink);border:1px solid var(--line);padding:5px 10px;border-radius:999px;box-shadow:0 6px 16px #00000026;animation:drop 3.4s cubic-bezier(.4,.1,.7,1) forwards}@keyframes drop{to{transform:translateY(110vh) rotate(var(--r, 10deg))}}.dotgrid{background-image:radial-gradient(color-mix(in srgb,var(--ink) 9%,transparent) 1px,transparent 1px);background-size:22px 22px}@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}.js .reveal{opacity:1;transform:none;transition:none}.rise>span,.marquee-track{animation:none}.card:hover,.card:hover .plate.has-shot img{transform:none}}.fab-short{display:none}@media(max-width:600px){.fab-long{display:none}.fab-short{display:inline}.ask-fab{padding:10px 16px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px))}}@media print{.js .reveal{opacity:1!important;transform:none!important}}.band{background:var(--bg);color:var(--ink);position:relative}.band.plum{--bg: #1E0B36;--surface: rgba(255,255,255,.07);--raised: rgba(255,255,255,.09);--ink: #FFFFFF;--muted: #D2C4EC;--line: rgba(255,255,255,.2);--accent: #FFB81C;--accent-ink: #1E0B36;--c-sc: #3EE0CC;--c-lead: #FFB81C;--c-sys: #FF6B88;--c-ai: #C9B6FF}.band.sun{--bg: #FFB81C;--surface: #FFC94D;--raised: #FFD470;--ink: #1E0B36;--muted: #5B3A05;--line: rgba(30,11,54,.28);--accent: #1E0B36;--accent-ink: #FFB81C}.band.coral{--bg: #FF4D6D;--surface: #FF6C86;--raised: #FF7F96;--ink: #1E0B36;--muted: #4A0B1D;--line: rgba(30,11,54,.3);--accent: #1E0B36;--accent-ink: #FFFFFF}.band.lagoon{--bg: #0B4F4A;--surface: #0D5852;--raised: #10655E;--ink: #F2FFFD;--muted: #A9DDD6;--line: rgba(255,255,255,.2);--accent: #FFD166;--accent-ink: #0B4F4A}.band.violet{--bg: #5B21E6;--surface: rgba(255,255,255,.1);--raised: rgba(255,255,255,.12);--ink: #FFFFFF;--muted: #DCD0FF;--line: rgba(255,255,255,.26);--accent: #FFD166;--accent-ink: #1E0B36}.band .sec-head{border-top-color:var(--ink)}section.band{padding-block:72px}body{position:relative}body[data-page=work]{--page: var(--coral);--page2: var(--sun)}body[data-page=lab]{--page: #12C2B0;--page2: var(--violet)}body[data-page=cv]{--page: var(--violet);--page2: #12C2B0}body[data-page=writing]{--page: var(--sun);--page2: var(--coral)}body[data-page=about]{--page: var(--coral);--page2: var(--violet)}body[data-page=contact],body[data-page=ask]{--page: #12C2B0;--page2: var(--sun)}body:not([data-page=home]):before{content:"";position:absolute;inset:0 0 auto;height:560px;z-index:-1;pointer-events:none;background:radial-gradient(55% 100% at 12% 0%,color-mix(in srgb,var(--page) 18%,transparent),transparent 72%),radial-gradient(50% 90% at 92% 0%,color-mix(in srgb,var(--page2) 14%,transparent),transparent 70%)}.eyebrow{font:600 13.5px var(--body);letter-spacing:0;text-transform:none;color:var(--accent)}.sec-head{border-top:3px solid var(--ink);padding-top:18px;margin-bottom:30px}.sec-head h2{font-size:clamp(30px,4.2vw,50px);font-weight:800;letter-spacing:-.03em}.sec-head p{font-size:16.5px}.page-head{padding-block:72px 16px}.page-head h1{font-size:clamp(40px,6.4vw,78px);letter-spacing:-.035em;line-height:1;max-width:16ch}section{padding-block:56px}.btn{border-radius:999px;padding:12px 20px;font-size:14.5px}.btn.sm{border-radius:999px}.btn.accent{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.ghost{border-color:var(--ink)}.btn.ghost:hover{background:var(--ink);color:var(--bg)}.bar{border-bottom:0;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(14px) saturate(1.4)}.nav a:hover,.nav a[aria-current=page]{background:transparent}.nav a:after{height:3px;background:linear-gradient(90deg,var(--coral),var(--sun))}.mark span{font-family:var(--body)}.ask-fab{background:linear-gradient(120deg,var(--violet),var(--coral));color:#fff;box-shadow:0 10px 30px -8px color-mix(in srgb,var(--violet) 70%,transparent)}.card,.case{border-radius:18px}.case{padding:30px;border:1px solid var(--line)}.case h3{font-size:clamp(24px,2.6vw,32px);font-weight:800}.facts strong{color:var(--accent)}.card:hover{box-shadow:0 26px 50px -26px color-mix(in srgb,var(--cc) 70%,transparent)}.plate.has-shot{height:180px}.marquee{border-block:1px solid var(--line);padding-block:18px}.marquee span{color:var(--muted);font-weight:700;font-size:19px}.marquee span:after{color:var(--ink);opacity:.55}.foot{background:var(--plum);color:#d2c4ec;border-top:0;padding-top:44px;margin-top:64px}.foot .muted{color:#a996cc}.foot a:hover{color:var(--sun)}::selection{background:var(--sun);color:var(--plum)}.blobs{position:absolute;inset:0;overflow:hidden;pointer-events:none}.blobs i{position:absolute;width:46vw;height:46vw;min-width:380px;min-height:380px;border-radius:50%;filter:blur(70px);opacity:.75;animation:drift 22s ease-in-out infinite alternate}.blobs i:nth-child(1){background:#5b21e6;left:-10%;top:-30%}.blobs i:nth-child(2){background:#ff4d6d;right:-12%;top:10%;animation-duration:28s;animation-direction:alternate-reverse}.blobs i:nth-child(3){background:#ffb81c;left:30%;bottom:-55%;opacity:.5;animation-duration:34s}.blobs i:nth-child(4){background:#12c2b0;left:-14%;bottom:-40%;opacity:.45;animation-duration:26s;animation-direction:alternate-reverse}@keyframes drift{to{transform:translate(8vw,6vh) scale(1.15)}}@media(prefers-reduced-motion:reduce){.blobs i{animation:none}}@media print{body:before,.blobs{display:none}}.nav a.nav-cta{color:var(--bg);background:var(--ink);margin-left:8px;padding:8px 16px;font-weight:600}.nav a.nav-cta:after{display:none}.nav a.nav-cta:hover{background:var(--violet);color:#fff}.card:after,.case:after,.lens-row a:after,.way:after,.spot:after{display:none}.way{min-width:0}.way b,.sel{overflow-wrap:anywhere}
