:root{--bg:#0b0c0a;--bg-2:#121411;--bg-3:#1a1d19;--fg:#e8e7df;--fg-dim:#9a9a8f;--fg-faint:#5a5a52;--line:#22241f;--accent:#c6ff3d;--accent-ink:#0b0c0a;--serif:"Newsreader", Georgia, serif;--mono:"JetBrains Mono", ui-monospace, Menlo, monospace;--sans:"Inter", system-ui, sans-serif;--radius:2px;--maxw:1320px;--pad:clamp(20px, 4vw, 56px)}body[data-aesthetic=editorial]{--bg:#f3efe6;--bg-2:#ebe6da;--bg-3:#e1dbcb;--fg:#1a1a17;--fg-dim:#585750;--fg-faint:#a09e92;--line:#d4cdbb;--accent:#c83d2a;--accent-ink:#f3efe6;--serif:"Fraunces", Georgia, serif}body[data-aesthetic=warm]{--bg:#1c1713;--bg-2:#241e18;--bg-3:#2e2720;--fg:#f2e6d4;--fg-dim:#b59f84;--fg-faint:#6e5f4e;--line:#3a3128;--accent:#ff9b5c;--accent-ink:#1c1713;--serif:"Fraunces", Georgia, serif}body[data-light=true]{--bg:#f6f5ee;--bg-2:#ecebe2;--bg-3:#e0dfd3;--fg:#15160f;--fg-dim:#57594e;--fg-faint:#9c9c90;--line:#d5d4c5;--accent:#3b5bff;--accent-ink:#f6f5ee}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--fg);font-family:var(--sans);font-feature-settings:"ss01", "cv11";-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}::selection{background:var(--accent);color:var(--accent-ink)}.shell{max-width:var(--maxw);padding:0 var(--pad);margin:0 auto}.nav{z-index:100;padding:18px var(--pad);font-family:var(--mono);letter-spacing:.02em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:color-mix(in oklab, var(--bg) 70%, transparent);border-bottom:1px solid color-mix(in oklab, var(--line) 60%, transparent);justify-content:space-between;align-items:center;font-size:12px;display:flex;position:fixed;top:0;left:0;right:0}.nav-left{align-items:center;gap:14px;display:flex}.nav-dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 14px var(--accent);border-radius:50%;animation:2.4s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.45}}.nav-name{color:var(--fg);font-weight:500}.nav-name .slash{color:var(--fg-faint);margin:0 8px}.nav-name .role{color:var(--fg-dim)}.nav-right{align-items:center;gap:28px;display:flex}.nav-right a{color:var(--fg-dim);transition:color .2s;position:relative}.nav-right a:hover{color:var(--fg)}.nav-right .cta{color:var(--accent-ink);background:var(--accent);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;transition:transform .2s,box-shadow .2s;display:inline-flex}.nav-right .cta:hover{box-shadow:0 8px 24px color-mix(in oklab, var(--accent) 35%, transparent);transform:translateY(-1px)}.nav-right .cta:after{content:"→";transition:transform .2s}.nav-right .cta:hover:after{transform:translate(3px)}@media (max-width:720px){.nav-right a:not(.cta){display:none}}@media (max-width:1050px){.nav-right{gap:18px}.nav-github{display:none}}@media (max-width:900px){.nav-proof{display:none}}.hero{padding:200px var(--pad) 120px;flex-direction:column;justify-content:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.hero-grid{background-image:linear-gradient(to right, var(--line) 1px, transparent 1px), linear-gradient(to bottom, var(--line) 1px, transparent 1px);opacity:.5;pointer-events:none;background-size:80px 80px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 30%,#000,#0000 75%);mask-image:radial-gradient(at 30%,#000,#0000 75%)}.hero-inner{max-width:var(--maxw);width:100%;margin:0 auto;position:relative}.hero-meta{font-family:var(--mono);color:var(--fg-dim);text-transform:uppercase;letter-spacing:.12em;align-items:center;gap:18px;margin-bottom:34px;font-size:11px;display:flex}.hero-meta .line{background:var(--fg-faint);flex:0 0 48px;height:1px}.hero-meta .avail{align-items:center;gap:8px;display:flex}.hero-meta .avail-dot{background:var(--accent);width:7px;height:7px;box-shadow:0 0 10px var(--accent);border-radius:50%}.hero h1{font-family:var(--serif);letter-spacing:-.035em;color:var(--fg);margin:0;font-size:clamp(48px,9.4vw,148px);font-weight:400;line-height:.95}.hero h1 .italic{color:var(--fg-dim);font-style:italic}.hero h1 .accent,.hero h1 .dot{color:var(--accent)}.hero-sub{grid-template-columns:1fr 1fr 1fr;gap:32px;max-width:1100px;margin-top:40px;display:grid}@media (max-width:900px){.hero-sub{grid-template-columns:1fr;gap:18px}}.hero-sub .block{font-family:var(--mono);color:var(--fg-dim);border-top:1px solid var(--line);padding-top:16px;font-size:13px;line-height:1.6}.hero-sub .block .label{color:var(--fg-faint);text-transform:uppercase;letter-spacing:.12em;margin-bottom:8px;font-size:10px;display:block}.hero-sub .block strong{color:var(--fg);font-weight:500}.inline-link{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:color-mix(in oklab, var(--accent) 55%, transparent);text-decoration-color:color-mix(in oklab, var(--accent) 55%, transparent);text-underline-offset:.18em;transition:color .2s}.inline-link:hover{color:var(--fg)}.hero-tag{font-family:var(--serif);color:var(--fg-dim);max-width:680px;margin-top:28px;font-size:clamp(20px,2vw,26px);font-style:italic;line-height:1.4}.hero-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:28px;display:flex}.hero-actions a{min-height:44px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:12px 18px;font-size:11px;line-height:1;transition:transform .2s,color .2s,background .2s,border-color .2s,box-shadow .2s;display:inline-flex}.hero-primary{color:var(--accent-ink);background:var(--accent);border:1px solid var(--accent);box-shadow:0 18px 36px color-mix(in oklab, var(--accent) 22%, transparent)}.hero-secondary{color:var(--fg-dim);border:1px solid var(--line);background:color-mix(in oklab, var(--bg-2) 82%, transparent)}.hero-actions a:hover{transform:translateY(-2px)}.hero-secondary:hover{color:var(--fg);border-color:var(--fg-dim)}.hero-scroll{bottom:32px;left:var(--pad);font-family:var(--mono);color:var(--fg-faint);text-transform:uppercase;letter-spacing:.2em;align-items:center;gap:10px;font-size:10px;display:flex;position:absolute}.hero-scroll .arrow{background:var(--fg-faint);width:1px;height:28px;animation:2s ease-in-out infinite scroll-arrow;display:inline-block}@keyframes scroll-arrow{0%,to{opacity:1;transform:translateY(0)}50%{opacity:.3;transform:translateY(8px)}}.hero-time{top:200px;right:var(--pad);font-family:var(--mono);color:var(--fg-faint);text-align:right;text-transform:uppercase;letter-spacing:.15em;font-size:10px;line-height:1.8;position:absolute}@media (max-width:900px){.hero-time{display:none}}.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap;font-family:var(--serif);color:var(--fg);background:var(--bg-2);padding:22px 0;font-size:clamp(28px,4vw,44px);font-style:italic;overflow:hidden}.marquee-track{gap:40px;animation:38s linear infinite marq;display:inline-flex}.marquee-track span{align-items:center;gap:40px;display:inline-flex}.marquee-track .sep{color:var(--accent);font-style:normal;font-family:var(--mono);font-size:22px}@keyframes marq{to{transform:translate(-50%)}}.section{padding:120px var(--pad);border-top:1px solid var(--line);position:relative}.section-head{max-width:var(--maxw);grid-template-columns:180px 1fr;align-items:start;gap:40px;margin:0 auto 64px;display:grid}@media (max-width:800px){.section-head{grid-template-columns:1fr;gap:18px}}.section-label{font-family:var(--mono);color:var(--fg-faint);text-transform:uppercase;letter-spacing:.15em;border-top:1px solid var(--fg-faint);padding-top:12px;font-size:11px}.section-label .num{color:var(--accent);margin-right:8px}.section-title{font-family:var(--serif);letter-spacing:-.02em;max-width:900px;margin:0;font-size:clamp(32px,4.5vw,60px);font-weight:400;line-height:1.05}.section-title .italic{color:var(--fg-dim);font-style:italic}.about{max-width:var(--maxw);grid-template-columns:180px 1fr 1fr;gap:40px;margin:0 auto;display:grid}@media (max-width:900px){.about{grid-template-columns:1fr}}.about-col{font-family:var(--sans);color:var(--fg);font-size:17px;line-height:1.6}.about-col p{margin:0 0 18px}.about-col p:first-child:first-letter{font-family:var(--serif);float:left;color:var(--accent);padding:4px 12px 0 0;font-size:3em;font-style:italic;line-height:.9}.about-skills h4{font-family:var(--mono);color:var(--fg-faint);text-transform:uppercase;letter-spacing:.15em;margin:0 0 16px;font-size:11px;font-weight:500}.about-skills ul{margin:0 0 28px;padding:0;list-style:none}.about-skills li{font-family:var(--mono);color:var(--fg);border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding:10px 0;font-size:13px;display:flex}.about-skills li .tag{color:var(--fg-faint);letter-spacing:.1em;text-transform:uppercase;font-size:10px}.proof-section{background:radial-gradient(circle at 84% 18%, color-mix(in oklab, var(--accent) 7%, transparent), transparent 28%), var(--bg-2)}.receipts{max-width:var(--maxw);border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));margin:0 auto;display:grid}.receipt{border-right:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;min-height:260px;padding:30px;display:flex}.receipt-value{font-family:var(--serif);letter-spacing:-.045em;color:var(--accent);margin-bottom:auto;font-size:clamp(58px,8vw,112px);line-height:.86}.receipt h3{font-family:var(--mono);color:var(--fg);text-transform:uppercase;letter-spacing:.14em;margin:34px 0 10px;font-size:11px;font-weight:500}.receipt p{max-width:520px;color:var(--fg-dim);margin:0;font-size:15px;line-height:1.65}@media (max-width:760px){.receipts{grid-template-columns:1fr}.receipt{min-height:220px;padding:24px}}.projects-head-right{font-family:var(--mono);flex-wrap:wrap;gap:8px;font-size:11px;display:flex}.filter-btn{border:1px solid var(--line);color:var(--fg-dim);text-transform:uppercase;letter-spacing:.1em;border-radius:999px;padding:7px 14px;transition:all .2s}.filter-btn:hover{color:var(--fg);border-color:var(--fg-dim)}.filter-btn.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.project-list{max-width:var(--maxw);margin:0 auto}.project-row{border-top:1px solid var(--line);grid-template-columns:70px 1.6fr 1fr .8fr 80px;align-items:center;gap:24px;padding:28px 0;transition:padding .3s;display:grid;position:relative}.project-row:last-child{border-bottom:1px solid var(--line)}.project-row:before{content:"";background:var(--bg-2);opacity:0;z-index:-1;border-radius:8px;transition:opacity .3s;position:absolute;inset:0 -24px}.project-row:hover:before{opacity:1}.project-row:hover{padding-left:16px;padding-right:16px}.project-row:hover .project-title .italic{color:var(--accent)}.project-num{font-family:var(--mono);color:var(--fg-faint);font-size:11px}.project-title{font-family:var(--serif);letter-spacing:-.015em;font-size:clamp(22px,2.4vw,32px);font-weight:400;line-height:1.1}.project-title .italic{font-style:italic;transition:color .2s}.project-desc{font-family:var(--sans);color:var(--fg-dim);font-size:14px;line-height:1.5}.project-meta{font-family:var(--mono);color:var(--fg-faint);text-transform:uppercase;letter-spacing:.1em;font-size:11px}.project-arrow{border:1px solid var(--line);width:44px;height:44px;color:var(--fg-dim);border-radius:50%;justify-content:center;justify-self:end;align-items:center;font-size:18px;transition:all .25s;display:flex}.project-row:hover .project-arrow{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);transform:rotate(-45deg)}.project-preview{pointer-events:none;z-index:50;border:1px solid var(--line);opacity:0;border-radius:4px;width:280px;height:180px;transition:opacity .2s;position:fixed;overflow:hidden;box-shadow:0 30px 60px #00000080}.project-preview.visible{opacity:1}@media (max-width:800px){.project-row{grid-template-columns:40px 1fr 50px}.project-row:before{inset-inline:0}.project-desc,.project-meta{display:none}}.experience{max-width:var(--maxw);margin:0 auto}.xp-row{border-top:1px solid var(--line);grid-template-columns:160px 1fr 1fr 160px;align-items:baseline;gap:32px;padding:24px 0;display:grid}.xp-row:last-child{border-bottom:1px solid var(--line)}.xp-date{font-family:var(--mono);color:var(--fg-faint);font-size:12px}.xp-role{font-family:var(--serif);letter-spacing:-.01em;font-size:22px;font-weight:400}.xp-role .italic{color:var(--fg-dim);margin-top:2px;font-size:16px;font-style:italic;display:block}.xp-desc{color:var(--fg-dim);font-size:14px;line-height:1.6}.xp-desc p{color:var(--fg);margin:0 0 10px}.xp-desc ul{margin:0;padding:0;list-style:none}.xp-desc li{margin-top:6px;padding-left:15px;position:relative}.xp-desc li:before{content:"·";color:var(--accent);position:absolute;left:0}.xp-place{font-family:var(--mono);color:var(--fg-dim);text-align:right;text-transform:uppercase;letter-spacing:.08em;font-size:12px}@media (max-width:900px){.xp-row{grid-template-columns:1fr;gap:8px}.xp-place{text-align:left}}.experience-cta{max-width:var(--maxw);margin:40px auto 0}.experience-cta a{border:1px solid var(--accent);color:var(--accent);font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;border-radius:999px;align-items:center;gap:10px;padding:12px 18px;font-size:11px;transition:color .2s,background .2s,transform .2s;display:inline-flex}.experience-cta a:hover{color:var(--accent-ink);background:var(--accent);transform:translateY(-2px)}.contact{max-width:var(--maxw);margin:0 auto}.contact-big{font-family:var(--serif);letter-spacing:-.035em;margin:0 0 48px;font-size:clamp(48px,9vw,140px);font-weight:400;line-height:.92}.contact-big .italic{color:var(--fg-dim);font-style:italic}.contact-big .accent{color:var(--accent)}.contact-big a{display:inline-block;position:relative}.contact-big a:after{content:"";background:var(--accent);transform-origin:100%;height:2px;transition:transform .4s cubic-bezier(.7,0,.3,1);position:absolute;bottom:8px;left:0;right:0;transform:scaleX(0)}.contact-big a:hover:after{transform-origin:0;transform:scaleX(1)}.contact-grid{border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:0;display:grid}@media (max-width:800px){.contact-grid{grid-template-columns:1fr 1fr}}.contact-card{border-right:1px solid var(--line);flex-direction:column;gap:10px;min-width:0;padding:28px 24px;transition:background .3s;display:flex}.contact-card:last-child{border-right:0}.contact-card:hover{background:var(--bg-2)}.contact-card .label{font-family:var(--mono);color:var(--fg-faint);text-transform:uppercase;letter-spacing:.15em;font-size:10px}.contact-card .value{font-family:var(--serif);color:var(--fg);overflow-wrap:anywhere;font-size:24px;font-style:italic}.contact-card .arrow{font-family:var(--mono);color:var(--fg-dim);margin-top:auto;font-size:11px;transition:transform .2s,color .2s}.contact-card:hover .arrow{color:var(--accent);transform:translate(4px)}@media (max-width:520px){.contact-grid{grid-template-columns:1fr}.contact-card,.contact-card:last-child{border-right:0;border-bottom:1px solid var(--line)}}.footer{padding:32px var(--pad);border-top:1px solid var(--line);font-family:var(--mono);color:var(--fg-faint);text-transform:uppercase;letter-spacing:.1em;justify-content:space-between;align-items:center;font-size:11px;display:flex}.footer-lead,.footer-right{gap:20px;display:flex}@media (max-width:700px){.footer{flex-direction:column;gap:14px}}.noscript{width:min(760px,100% - 40px);color:var(--fg);margin:120px auto}.noscript h1{font-family:var(--serif);margin:0 0 20px;font-size:clamp(52px,10vw,96px);font-weight:400}.noscript p{max-width:640px;color:var(--fg-dim);font-size:18px;line-height:1.7}.noscript a{color:var(--accent);text-underline-offset:.2em;text-decoration:underline}.detail{padding:140px var(--pad) 80px;max-width:var(--maxw);margin:0 auto}.detail-back{font-family:var(--mono);color:var(--fg-dim);align-items:center;gap:8px;margin-bottom:40px;font-size:12px;transition:color .2s,transform .2s;display:inline-flex}.detail-back:hover{color:var(--accent);transform:translate(-4px)}.detail-meta{font-family:var(--mono);color:var(--fg-faint);text-transform:uppercase;letter-spacing:.1em;flex-wrap:wrap;gap:24px;margin-bottom:24px;font-size:11px;display:flex}.detail-meta span,.detail-meta a{align-items:center;gap:8px;display:flex}.detail-meta .dot{background:var(--fg-faint);border-radius:50%;width:3px;height:3px}.detail-meta-link{color:var(--accent)}.detail-meta-link:hover{color:var(--fg)}.detail h1{font-family:var(--serif);letter-spacing:-.03em;max-width:1100px;margin:0 0 40px;font-size:clamp(44px,7vw,96px);font-weight:400;line-height:.98}.detail h1 .italic{color:var(--fg-dim);font-style:italic}.detail-lead{font-family:var(--serif);color:var(--fg-dim);max-width:800px;margin:0 0 80px;font-size:clamp(20px,2vw,26px);font-style:italic;line-height:1.4}.detail-stats{flex-wrap:wrap;gap:10px;margin:-32px 0 24px;display:flex}.detail-stats span{border:1px solid var(--line);font-family:var(--mono);color:var(--fg-dim);text-transform:uppercase;letter-spacing:.14em;background:color-mix(in oklab, var(--bg-2) 84%, transparent);border-radius:999px;padding:11px 14px;font-size:10px}.detail-actions{margin:0 0 36px}.detail-cta{background:var(--accent);color:var(--accent-ink);font-family:var(--mono);text-transform:uppercase;letter-spacing:.14em;box-shadow:0 18px 36px color-mix(in oklab, var(--accent) 24%, transparent);border-radius:999px;justify-content:center;align-items:center;padding:14px 20px;font-size:11px;transition:transform .2s,box-shadow .2s;display:inline-flex}.detail-cta:hover{transform:translateY(-2px)}.detail-info{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:0;margin-bottom:80px;display:grid}@media (max-width:800px){.detail-info{grid-template-columns:1fr 1fr}}.detail-info>div{border-right:1px solid var(--line);padding:24px}.detail-info>div:last-child{border-right:0}.detail-info .k{font-family:var(--mono);color:var(--fg-faint);text-transform:uppercase;letter-spacing:.15em;margin-bottom:10px;font-size:10px}.detail-info .v{font-family:var(--serif);overflow-wrap:anywhere;font-size:20px;font-style:italic}.detail-hero{aspect-ratio:16/9;border:1px solid color-mix(in oklab, var(--line) 82%, transparent);background:radial-gradient(circle at top left, color-mix(in oklab, var(--accent) 18%, transparent), transparent 42%), linear-gradient(135deg, var(--bg-3) 0%, color-mix(in oklab, var(--bg-2) 84%, var(--accent)) 100%);grid-template-columns:minmax(180px,280px) 1fr;align-items:end;width:100%;margin-bottom:80px;display:grid;position:relative;overflow:hidden}.detail-hero:before{content:"";background:linear-gradient(90deg, transparent 0, color-mix(in oklab, var(--accent) 6%, transparent) 100%), repeating-linear-gradient(-45deg, transparent 0 10px, color-mix(in oklab, var(--line) 40%, transparent) 10px 11px);opacity:.75;position:absolute;inset:0}.detail-hero-top{font-family:var(--mono);color:var(--fg-faint);text-transform:uppercase;letter-spacing:.2em;z-index:1;justify-content:space-between;align-items:center;gap:16px;font-size:10px;display:flex;position:absolute;top:20px;left:20px;right:20px}.detail-hero-top .tag:before{content:"◉ ";color:var(--accent)}.detail-hero-live{color:var(--fg-dim)}.detail-hero-mark,.detail-hero-copy{z-index:1;position:relative}.detail-hero-mark{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);text-shadow:0 0 30px color-mix(in oklab, var(--accent) 14%, transparent);padding:48px 20px 36px 28px;font-size:clamp(62px,11vw,152px);line-height:.9}.detail-hero-copy{max-width:640px;padding:40px 28px 34px 0}.detail-hero-tagline{font-family:var(--serif);letter-spacing:-.02em;margin-bottom:14px;font-size:clamp(28px,3vw,42px);line-height:1.08}.detail-hero-copy p{color:var(--fg-dim);margin:0;font-size:16px;line-height:1.75}.detail-hero[data-project=mantle]{--accent:#d8c48f}.detail-hero[data-project=deposit-defender]{--accent:#91d7ff}.detail-hero[data-project=burnline]{--accent:#ff9a4a}.detail-hero[data-project=fluedoc]{--accent:#a8f0c2}@media (max-width:800px){.detail-hero{grid-template-columns:1fr;min-height:520px}.detail-hero-mark{padding:110px 20px 0}.detail-hero-copy{padding:10px 20px 28px}.detail-hero-top{flex-direction:column;align-items:flex-start;right:auto}}.detail-body{grid-template-columns:180px 1fr;gap:40px;margin-bottom:80px;display:grid}@media (max-width:800px){.detail-body{grid-template-columns:1fr}}.detail-body h3{font-family:var(--mono);color:var(--fg-faint);text-transform:uppercase;letter-spacing:.15em;margin:0;padding-top:4px;font-size:11px;font-weight:500}.detail-body .body{color:var(--fg);max-width:720px;font-size:17px;line-height:1.7}.detail-body .body p{margin:0 0 20px}.detail-body .body ul{padding-left:20px}.detail-body .body li{color:var(--fg-dim);margin-bottom:10px}.detail-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:80px;display:grid}.detail-figure{border:1px solid var(--line);background:linear-gradient(180deg, color-mix(in oklab, var(--bg-2) 88%, transparent), var(--bg-2)), radial-gradient(circle at top right, color-mix(in oklab, var(--figure-accent,var(--accent)) 10%, transparent), transparent 48%);min-height:280px;padding:22px;position:relative;overflow:hidden}.detail-figure:after{content:"";background:color-mix(in oklab, var(--figure-accent,var(--accent)) 10%, transparent);filter:blur(70px);border-radius:50%;height:220px;position:absolute;inset:auto -20% -36% 28%}.detail-figure[data-project=mantle]{--figure-accent:#d8c48f}.detail-figure[data-project=deposit-defender]{--figure-accent:#91d7ff}.detail-figure[data-project=burnline]{--figure-accent:#ff9a4a}.detail-figure[data-project=fluedoc]{--figure-accent:#a8f0c2}.detail-figure .tag{z-index:1;font-family:var(--mono);color:var(--fg-faint);letter-spacing:.15em;text-transform:uppercase;margin-bottom:28px;font-size:10px;display:inline-flex;position:relative}.detail-figure h4{z-index:1;font-family:var(--serif);margin:0 0 12px;font-size:clamp(24px,2vw,34px);font-style:italic;font-weight:400;line-height:1.1;position:relative}.detail-figure p{z-index:1;max-width:420px;color:var(--fg-dim);margin:0;font-size:15px;line-height:1.75;position:relative}@media (max-width:800px){.detail-gallery{grid-template-columns:1fr}}.detail-nav{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:12px;margin-top:60px;padding-top:40px;display:grid}.detail-nav a{border:1px solid var(--line);border-radius:4px;flex-direction:column;gap:8px;padding:24px;transition:all .25s;display:flex}.detail-nav a:hover{background:var(--bg-2);border-color:var(--fg-faint)}.detail-nav .dir{font-family:var(--mono);color:var(--fg-faint);text-transform:uppercase;letter-spacing:.15em;font-size:10px}.detail-nav .name{font-family:var(--serif);font-size:22px;font-style:italic}.detail-nav a:last-child{text-align:right}.tweaks-toggle{z-index:199;background:var(--accent);width:48px;height:48px;color:var(--accent-ink);font-family:var(--mono);box-shadow:0 10px 30px color-mix(in oklab, var(--accent) 40%, transparent);border-radius:50%;justify-content:center;align-items:center;font-size:18px;font-weight:500;transition:transform .2s;display:flex;position:fixed;bottom:20px;right:20px}.tweaks-toggle:hover{transform:rotate(90deg)scale(1.05)}.tweaks-toggle.hidden{display:none}.tweaks-panel{z-index:200;background:var(--bg-2);border:1px solid var(--line);width:280px;font-family:var(--mono);border-radius:6px;padding:18px;font-size:11px;position:fixed;bottom:20px;right:20px;box-shadow:0 20px 40px #0006}.tweaks-panel h4{color:var(--fg-faint);text-transform:uppercase;letter-spacing:.2em;justify-content:space-between;align-items:center;margin:0 0 14px;font-size:10px;font-weight:500;display:flex}.tweak-row{margin-bottom:14px}.tweak-row .lbl{color:var(--fg-dim);text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px;font-size:10px}.tweak-options{flex-wrap:wrap;gap:4px;display:flex}.tweak-options button{border:1px solid var(--line);min-width:0;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;border-radius:3px;flex:1;padding:6px 10px;font-size:10px;transition:all .2s}.tweak-options button.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.tweak-swatches{flex-wrap:wrap;gap:8px;display:flex}.tweak-swatches button{border:1px solid color-mix(in oklab, var(--fg) 15%, transparent);border-radius:50%;flex:none;width:28px;height:28px;padding:0;transition:transform .15s;position:relative}.tweak-swatches button:hover{transform:scale(1.12)}.tweak-swatches button.on{transform:scale(1.1)}.tweak-swatches button.on:after{content:"";border:1.5px solid var(--fg);border-radius:50%;position:absolute;inset:-4px}.egg{z-index:500;background:color-mix(in oklab, var(--bg) 95%, transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);opacity:0;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;transition:opacity .4s;display:flex;position:fixed;inset:0;overflow:hidden}.egg.on{opacity:1;pointer-events:auto}.egg h2{font-family:var(--serif);color:var(--accent);letter-spacing:-.03em;margin:0;font-size:clamp(60px,10vw,160px);font-style:italic;line-height:1}.egg p{font-family:var(--mono);color:var(--fg-dim);letter-spacing:.2em;text-transform:uppercase;margin-top:20px;font-size:12px}.egg .dismiss{font-family:var(--mono);color:var(--fg-faint);margin-top:40px;font-size:11px}.egg .floaters{pointer-events:none;position:absolute;inset:0}.egg .floater{font-family:var(--serif);color:var(--accent);opacity:.12;font-size:40px;font-style:italic;animation:8s ease-in-out infinite float;position:absolute}@keyframes float{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-30px)rotate(6deg)}}.reveal,.reveal-stagger>*{opacity:1;transform:none}@media (prefers-reduced-motion:no-preference){html.reveal-ready .reveal:not(.in){opacity:0;transform:translateY(20px)}html.reveal-ready .reveal{transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}html.reveal-ready .reveal-stagger:not(.in)>*{opacity:0;transform:translateY(14px)}html.reveal-ready .reveal-stagger>*{transition:opacity .6s,transform .6s}}.reveal.in,.reveal-stagger.in>*{opacity:1;transform:none}.reveal-stagger.in>:first-child{transition-delay:40ms}.reveal-stagger.in>:nth-child(2){transition-delay:80ms}.reveal-stagger.in>:nth-child(3){transition-delay:.12s}.reveal-stagger.in>:nth-child(4){transition-delay:.16s}.reveal-stagger.in>:nth-child(5){transition-delay:.2s}.reveal-stagger.in>:nth-child(6){transition-delay:.24s}.reveal-stagger.in>:nth-child(7){transition-delay:.28s}.reveal-stagger.in>:nth-child(8){transition-delay:.32s}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.marquee-track{transform:translate(0)}}
