@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-vietnamese-wght-normal.BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-ext-wght-normal.CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-wght-normal.DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--background:oklch(99.3% .003 265);--foreground:oklch(16% .025 275);--card:oklch(100% 0 0);--card-foreground:var(--foreground);--card-hover:oklch(98.5% .008 275);--muted:oklch(95.5% .012 270);--muted-foreground:oklch(50% .03 275);--border:oklch(90% .015 270);--border-strong:oklch(80% .03 270);--input:var(--border);--primary:oklch(55% .2 250);--primary-foreground:oklch(99% 0 0);--accent:oklch(94.5% .04 250);--accent-foreground:oklch(40% .15 250);--ring:oklch(60% .18 250);--grid-line:oklch(20% .06 275/.1);--grid-line-strong:oklch(20% .06 275/.18);--radius-sm:.375rem;--radius:.625rem;--radius-lg:1rem;--radius-xl:1.5rem;--shadow-sm:0 1px 2px oklch(20% .04 275/.05);--shadow-md:0 2px 4px oklch(20% .04 275/.04), 0 8px 24px oklch(20% .04 275/.07);--shadow-lg:0 4px 8px oklch(20% .04 275/.05), 0 18px 48px oklch(20% .04 275/.11);--bevel:inset 0 1px 0 oklch(100% 0 0/.7);--font-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;--font-display:"Bricolage Grotesque Variable", var(--font-sans);--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:1rem;--text-lg:clamp(1.0625rem, 1rem + .3vw, 1.1875rem);--text-xl:clamp(1.25rem, 1.15rem + .5vw, 1.5rem);--text-2xl:clamp(1.5rem, 1.3rem + 1vw, 2.05rem);--text-3xl:clamp(1.875rem, 1.5rem + 1.9vw, 2.9rem);--text-4xl:clamp(2.4rem, 1.8rem + 3vw, 3.9rem);--text-hero:clamp(2.75rem, 1.9rem + 4.4vw, 5.25rem);--gutter:clamp(1.25rem, 4vw, 2.5rem);--section-gap:clamp(5rem, 13vw, 11rem);--max-width:1280px;--play-portrait-width:clamp(370px, 32vw, 430px);--dur-fast:.15s;--dur-normal:.3s;--dur-slow:.5s;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-spring:cubic-bezier(.34, 1.4, .64, 1)}.dark{color-scheme:dark;--background:oklch(0% 0 0);--foreground:oklch(96% .008 275);--card:oklch(19% .022 275);--card-foreground:var(--foreground);--card-hover:oklch(23.5% .03 275);--muted:oklch(24% .025 275);--muted-foreground:oklch(72% .025 275);--border:oklch(29% .028 275);--border-strong:oklch(40% .04 275);--primary:oklch(72% .15 250);--primary-foreground:oklch(17% .03 250);--accent:oklch(30% .06 250);--accent-foreground:oklch(88% .09 250);--ring:oklch(70% .16 250);--grid-line:oklch(98% .02 275/.08);--grid-line-strong:oklch(98% .02 275/.14);--shadow-sm:0 1px 2px oklch(0% 0 0/.3);--shadow-md:0 2px 4px oklch(0% 0 0/.25), 0 8px 24px oklch(0% 0 0/.35);--shadow-lg:0 4px 8px oklch(0% 0 0/.3), 0 18px 48px oklch(0% 0 0/.5);--bevel:inset 0 1px 0 oklch(100% 0 0/.06)}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scrollbar-gutter:stable}body{background:var(--background);min-height:100vh;color:var(--foreground);font-family:var(--font-sans);font-size:var(--text-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-synthesis-weight:none;flex-direction:column;line-height:1.75;display:flex}body:after{content:"";z-index:9999;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.dark body:after{display:none}a{color:inherit;text-decoration:none}img,svg,video,canvas,iframe{max-width:100%;display:block}code,pre,kbd{font-family:var(--font-mono)}:focus-visible{outline:2px solid var(--ring);outline-offset:3px;border-radius:var(--radius-sm)}::selection{background:var(--accent);color:var(--accent-foreground)}.mono-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted-foreground);font-size:.6875rem;font-weight:500}.display{font-family:var(--font-display);letter-spacing:-.025em;font-weight:600;line-height:1.05}.index-num{font-family:var(--font-display);color:var(--primary);letter-spacing:.02em;font-variant-numeric:tabular-nums;font-size:.8125rem;font-weight:600}.rule{background:var(--border);border:0;height:1px}.container{width:100%;max-width:var(--max-width);padding-inline:var(--gutter);margin-inline:auto}.main{flex:1;padding-block:clamp(2.5rem,6vw,4.5rem) clamp(4rem,9vw,7rem)}.main--flush{padding-block:0 clamp(4rem,9vw,7rem)}.section+.section{margin-top:var(--section-gap)}.section__head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:clamp(1.5rem,3vw,2.25rem);padding-bottom:.9rem;display:flex;position:relative}.section__head:after{content:"";background:var(--border);transform-origin:0;height:1px;position:absolute;bottom:0;left:0;right:0}.section__title{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.02em;align-items:baseline;gap:.7rem;font-weight:600;line-height:1.2;display:flex}.section__link{font-family:var(--font-mono);letter-spacing:.04em;color:var(--muted-foreground);transition:color var(--dur-fast) var(--ease-out);flex-shrink:0;font-size:.75rem}.section__link:hover{color:var(--primary)}.site-header{z-index:60;background:color-mix(in oklab, var(--background) 78%, transparent);backdrop-filter:saturate(180%)blur(14px);border-bottom:1px solid var(--border);position:sticky;top:0}.site-header__inner{align-items:center;gap:1.25rem;height:4rem;display:flex}.brand{font-family:var(--font-display);letter-spacing:-.02em;transition:color var(--dur-fast) var(--ease-out);margin-right:auto;font-size:clamp(1.15rem,1.02rem + .55vw,1.45rem);font-weight:620}.brand:hover{color:var(--primary)}.nav{align-items:center;gap:.15rem;display:flex}.nav__link{color:var(--muted-foreground);transition:color var(--dur-fast) var(--ease-out);padding:.45rem .7rem;font-size:.875rem;position:relative}.nav__link:after{content:"";background:var(--primary);transform-origin:0;height:1px;transition:transform var(--dur-normal) var(--ease-out);position:absolute;bottom:.3rem;left:.7rem;right:.7rem;transform:scaleX(0)}.nav__link:hover{color:var(--foreground)}.nav__link:hover:after,.nav__link.is-active:after{transform:scaleX(1)}.nav__link.is-active{color:var(--foreground);font-weight:560}.theme-toggle{border:1px solid var(--border);background:var(--card);width:2.1rem;height:2.1rem;color:var(--muted-foreground);cursor:pointer;transition:color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-normal) var(--ease-spring);border-radius:999px;place-items:center;font-size:.85rem;line-height:1;display:grid}.theme-toggle:hover{color:var(--foreground);border-color:var(--border-strong);transform:rotate(25deg)}.theme-toggle__moon,.dark .theme-toggle__sun{display:none}.dark .theme-toggle__moon{display:block}.site-footer{border-top:1px solid var(--border);color:var(--muted-foreground);font-size:var(--text-sm);padding-block:clamp(2.5rem,5vw,3.5rem)}.site-footer__inner{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem 1.5rem;display:flex}.site-footer__links{font-family:var(--font-mono);letter-spacing:.04em;flex-wrap:wrap;gap:1.25rem;font-size:.75rem;display:flex}.site-footer__links a{transition:color var(--dur-fast) var(--ease-out);position:relative}.site-footer__links a:hover{color:var(--primary)}.hero{min-height:80vh;padding-block:clamp(3rem,7vw,6rem) 0}.hero__intro{max-width:48rem}.hero__title{font-family:var(--font-display);font-size:var(--text-hero);letter-spacing:-.035em;text-wrap:balance;font-weight:600;line-height:.98}.hero__lead{max-width:46ch;font-size:var(--text-lg);color:var(--muted-foreground);margin-top:clamp(1.25rem,3vw,1.75rem);line-height:1.65}.hero__actions{flex-wrap:wrap;gap:.75rem;margin-top:clamp(1.75rem,4vw,2.5rem);display:flex}.hero__meta{flex-wrap:wrap;align-items:baseline;gap:.6rem clamp(1.75rem,5vw,3.25rem);max-width:48rem;margin-top:clamp(2.75rem,7vw,4.5rem);display:flex}.hero__stat{align-items:baseline;gap:.5rem;display:inline-flex}.hero__stat-value{font-variant-numeric:tabular-nums;color:var(--muted-foreground);font-size:.9375rem;font-weight:500}.hero__stat--link:hover .hero__stat-value{color:var(--primary)}.hero-work{gap:clamp(1.75rem,4vw,2.5rem);display:grid;position:relative}.hero-work:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(72% 62% at 50% 52%, oklch(.56 .18 var(--work-hue,277) / .15), transparent 72%);position:absolute;inset:-3% -.75rem 6%}.hero-work__backdrop{z-index:-2;pointer-events:none;opacity:.32;border-radius:var(--radius-xl);position:absolute;inset:-2rem -1rem;overflow:hidden;-webkit-mask-image:radial-gradient(115% 100% at 50% 40%,#000 0% 28%,#0000 76%);mask-image:radial-gradient(115% 100% at 50% 40%,#000 0% 28%,#0000 76%)}.hero-work__backdrop img{object-fit:cover;filter:blur(44px)saturate(130%)brightness(.7);width:100%;height:100%;transform:scale(1.18)}.section--fullbg{isolation:isolate;padding-top:calc(clamp(3rem,6vw,5rem) + 100px);padding-bottom:100px;position:relative}#work-weave.section--fullbg{padding-top:280px;padding-bottom:clamp(130px,18vw,260px)}.section--fullbg:before{content:"";z-index:-1;background-image:linear-gradient(#0006, #00000080), var(--fullbg-image);filter:grayscale()brightness(.5)contrast(1.3);background-position:50%;background-size:cover;position:absolute;inset:0}#work-weave.section--fullbg:before{background-image:linear-gradient(#0000001a 0%, #0003 33%, #0000008c 67%, #000000d9 78%, #000 100%), var(--fullbg-image);filter:grayscale()brightness(.8)contrast(1.2)}.section--fullbg .hero-work__backdrop,.section--fullbg .hero-work:before{display:none}@media (width>=960px){.hero-work__techRow--split{grid-template-columns:minmax(0,740fr) minmax(0,420fr);align-items:start;column-gap:40px;margin-top:.75rem;display:grid}.hero-work__techRow--split>.accordion{margin-top:0}}.hero-work__annex{min-width:0}@media (width<=959px){.hero-work__techRow--split{flex-direction:column;display:flex}.hero-work__techRow--split>.hero-work__annex{order:-1}}#work-gamedog .hero-work__tech{min-height:320px}.hero-work:not(.hero-work--portrait):not(.hero-work--beside) .accordion{min-height:340px}#work-weave .hero-work__frame{order:1}#work-weave .hero-work__headRow{order:2}#work-weave .hero-work__info{order:3}#work-gamedog .hero-work__meta{display:none}#work-gamedog .hero-work__aside{align-self:stretch}#work-gamedog .hero-work__actions{margin-block:auto}.post-teasers{grid-template-columns:1fr;gap:clamp(.75rem,1.8vw,1.15rem);display:grid}@media (width>=900px){.post-teasers{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}}.post-teasers__cell{display:flex}.post-teasers__cell>.post-teaser{width:100%}.post-teaser{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);box-shadow:var(--shadow-sm), var(--bevel);transition:transform var(--dur-normal) var(--ease-out), border-color var(--dur-normal) var(--ease-out), box-shadow var(--dur-normal) var(--ease-out);flex-direction:column;gap:.7rem;padding:clamp(1.15rem,2.6vw,1.6rem);display:flex;position:relative;overflow:hidden}.post-teaser:before{content:"";background:oklch(from var(--primary) l c h / .8);transform-origin:0;height:1px;transition:transform var(--dur-slow) var(--ease-out);position:absolute;inset:0 0 auto;transform:scaleX(0)}.post-teaser:hover:before,.post-teaser:focus-visible:before{transform:scaleX(1)}.post-teaser:hover,.post-teaser:focus-visible{border-color:oklch(from var(--primary) l c h / .45);box-shadow:var(--shadow-lg), var(--bevel);transform:translateY(-3px)}.post-teaser__mark{font-family:var(--font-display);letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--foreground);opacity:.1;pointer-events:none;transition:opacity var(--dur-normal) var(--ease-out);font-size:clamp(2.25rem,4.4vw,3.25rem);font-weight:300;line-height:1;position:absolute;top:clamp(.6rem,1.6vw,.85rem);right:clamp(.75rem,2vw,1.05rem)}.post-teaser:hover .post-teaser__mark,.post-teaser:focus-visible .post-teaser__mark{opacity:.22}.post-teaser__meta{flex-wrap:wrap;align-items:center;gap:.5rem .65rem;padding-right:clamp(2.25rem,6vw,3rem);display:flex}.post-teaser__date{font-family:var(--font-mono);letter-spacing:.04em;color:var(--muted-foreground);font-variant-numeric:tabular-nums;font-size:.75rem}.post-teaser__title{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.022em;transition:color var(--dur-fast) var(--ease-out);align-items:baseline;gap:.5rem;font-weight:600;line-height:1.3;display:flex}.post-teaser:hover .post-teaser__title,.post-teaser:focus-visible .post-teaser__title{color:var(--primary)}.post-teaser__arrow{color:var(--primary);opacity:0;transition:opacity var(--dur-normal) var(--ease-out), transform var(--dur-normal) var(--ease-out);flex-shrink:0;font-size:.9em;transform:translate(-4px)}.post-teaser:hover .post-teaser__arrow,.post-teaser:focus-visible .post-teaser__arrow{opacity:1;transform:translate(0)}.post-teaser__desc{-webkit-line-clamp:3;line-clamp:3;color:var(--muted-foreground);transition:color var(--dur-normal) var(--ease-out);-webkit-box-orient:vertical;font-size:.9375rem;line-height:1.65;display:-webkit-box;overflow:hidden}.post-teaser:hover .post-teaser__desc,.post-teaser:focus-visible .post-teaser__desc{color:var(--foreground)}#work-zifo-reading .hero-work{perspective:1100px}#work-zifo-reading .hero-work__frame{transform:rotateX(4deg)}#work-zifo-reading .hero-work__covercard{z-index:0;border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-lg);pointer-events:none;color:#fff;background:linear-gradient(#0a0c1085,#0a0c1024 55%,#0a0c1000 78%),url(/images/cover/splash-ip-otter-minimal.jpg) 50%/cover;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:.35rem;padding:12% 10% 8%;display:flex;position:absolute;top:-5%;bottom:5%;left:-58%;transform:rotate(-5deg)}#work-zifo-reading .hero-work__covercard-name{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(2.4rem,1.6vw,1.4rem);font-weight:900;line-height:1.15}#work-zifo-reading .hero-work__covercard-tag{letter-spacing:.02em;opacity:.88;font-size:1rem;line-height:1.4}#work-zifo-reading .play{z-index:1;animation:6s ease-in-out infinite app-float;position:relative}@media (width>=900px){#work-zifo-reading .hero-work--portrait{grid-template-columns:var(--play-portrait-width) minmax(0, 26rem);justify-content:center;column-gap:clamp(3.5rem,7vw,6rem);padding-inline:clamp(4rem,11vw,8rem) clamp(1rem,3vw,2.5rem)}}@keyframes app-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}#work-whiteboard .play{border-color:var(--border-strong);box-shadow:none}#work-whiteboard .play:after{display:none}@media (width>=900px){.hero-work--portrait{grid-template-columns:var(--play-portrait-width) minmax(0, 1fr);align-items:start;gap:clamp(2rem,5vw,4rem)}}.hero-work__frame{min-width:0;position:relative}.hero-work__still{border:1px solid oklch(.5 .1 var(--work-hue,277) / .5);border-top-color:oklch(.74 .14 var(--work-hue,277) / .8);border-radius:var(--radius-lg);background:var(--card);box-shadow:0 0 24px -10px oklch(.6 .2 var(--work-hue,277) / .5), var(--shadow-md);aspect-ratio:var(--play-aspect,16 / 9);overflow:hidden}.hero-work__still img{object-fit:cover;width:100%;height:100%;display:block}.hero-work__stillNote{max-width:52ch;color:var(--muted-foreground);margin-top:.75rem;font-size:.875rem;line-height:1.6}.hero-work__headRow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem clamp(1.5rem,4vw,3rem);display:flex}.hero-work__headCol{flex-direction:column;flex:22rem;gap:clamp(.75rem,1.6vw,1.25rem);min-width:0;display:flex}.hero-work__headRow>.hero-work__actions{flex:none;margin-top:0}.hero-work__titleRow{align-items:center;gap:clamp(.9rem,1.8vw,1.25rem);min-width:0;display:flex}.hero-work__titleText{flex-direction:column;gap:.35rem;min-width:0;display:flex}.hero-work__info{flex-direction:column;gap:.85rem;display:flex}@media (width>=900px){.hero-work--beside{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start;gap:clamp(2rem,4vw,3rem) clamp(2rem,4vw,3.5rem)}.hero-work--beside .hero-work__tech{grid-column:1/-1}.hero-work--beside .accordion{margin-top:0}}.hero-work__summary{flex-direction:column;gap:.45rem;min-width:0;display:flex}.hero-work__aside{flex-direction:column;gap:.85rem;min-width:0;display:flex}.hero-work__head{align-items:center;gap:clamp(.9rem,1.8vw,1.25rem);min-width:0;display:flex}.hero-work__headText{flex-direction:column;flex:1;gap:.45rem;min-width:0;display:flex}.hero-work__meta{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.hero-work__summary>.hero-work__meta,.hero-work__headText>.hero-work__meta{margin-top:.4rem}.hero-work__status{letter-spacing:.06em;color:var(--primary);align-items:center;gap:.5rem;font-size:.75rem;font-weight:600;display:inline-flex}.hero-work__status-dot{width:6px;height:6px;box-shadow:0 0 0 3px color-mix(in oklab, currentColor 16%, transparent);background:currentColor;border-radius:999px}.hero-work__title{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:-.025em;margin-top:.15rem;font-weight:600;line-height:1.15}.hero-work__tagline{font-size:var(--text-lg);color:var(--muted-foreground);max-width:42ch;line-height:1.6}.accordion{border-top:1px solid var(--border);flex-direction:column;margin-top:.75rem;display:flex}.accordion__item{border-bottom:1px solid var(--border)}.accordion__summary{cursor:pointer;transition:color var(--dur-fast) var(--ease-out);align-items:center;gap:.7rem;padding:.85rem .15rem;list-style:none;display:flex}.accordion__summary::-webkit-details-marker{display:none}.accordion__summary:hover{color:var(--primary)}.accordion__summary:focus-visible{outline:2px solid var(--ring);outline-offset:-2px;border-radius:var(--radius-sm)}.accordion__label{letter-spacing:-.01em;flex:1;font-size:.9375rem;font-weight:560}.accordion__count{font-family:var(--font-mono);color:var(--muted-foreground);font-variant-numeric:tabular-nums;font-size:.6875rem}.accordion__chevron{width:7px;height:7px;transition:transform var(--dur-normal) var(--ease-out);border-bottom:1.5px solid;border-right:1.5px solid;flex-shrink:0;margin-right:.2rem;transform:rotate(-45deg)}.accordion__item[open] .accordion__chevron{transform:rotate(45deg)}.accordion__body{padding:0 .15rem 1.1rem}.accordion__list{color:var(--muted-foreground);flex-direction:column;gap:.5rem;padding:0;font-size:.9rem;line-height:1.65;list-style:none;display:flex}.accordion__list li{padding-left:.95rem;position:relative}.accordion__list li:before{content:"";background:var(--primary);width:4px;height:1px;position:absolute;top:.75em;left:0}.accordion__list a{color:var(--foreground);transition:color var(--dur-fast) var(--ease-out)}.accordion__list a:hover{color:var(--primary)}.accordion__tags{flex-wrap:wrap;gap:.4rem;display:flex}@supports (interpolate-size:allow-keywords){:root{interpolate-size:allow-keywords}.accordion__item::details-content{block-size:0;transition-property:block-size,content-visibility;transition-duration:var(--dur-normal);transition-timing-function:var(--ease-out);transition-behavior:allow-discrete;overflow:hidden}.accordion__item[open]::details-content{block-size:auto}}.hero-work__actions{flex-wrap:wrap;gap:.6rem;margin-top:1.25rem;display:flex}.btn{border-radius:var(--radius);cursor:pointer;white-space:nowrap;min-height:2.75rem;transition:transform var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-family:inherit;font-size:.9375rem;font-weight:550;display:inline-flex}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--primary);color:var(--primary-foreground);box-shadow:var(--shadow-sm), var(--bevel)}.btn--primary:hover{filter:brightness(1.07)}.btn--play{background:oklch(from var(--primary) .36 .11 h);color:oklch(98% .01 250);border-color:oklch(from var(--primary) .5 .13 h / .5);box-shadow:var(--shadow-sm), var(--bevel)}.btn--play:hover{background:oklch(from var(--primary) .44 .13 h)}.btn--ghost{border-color:var(--border);color:var(--foreground);background:var(--card);box-shadow:var(--bevel)}.btn--ghost:hover{border-color:var(--border-strong);background:var(--card-hover)}.btn__arrow{transition:transform var(--dur-normal) var(--ease-out);display:inline-block}.btn:hover .btn__arrow{transform:translate(3px)}.work-grid{grid-template-columns:1fr;gap:clamp(.75rem,1.8vw,1.15rem);display:grid}@media (width>=680px){.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1040px){.work-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.work-grid__cell--feature{grid-column:span 2}.work-grid__cell--feature .work-card__cover{aspect-ratio:16/6.5}}.work-grid__cell{display:flex}.work-grid__cell>.work-card{width:100%}.work-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);box-shadow:var(--shadow-sm), var(--bevel);transition:transform var(--dur-normal) var(--ease-out), box-shadow var(--dur-normal) var(--ease-out), border-color var(--dur-normal) var(--ease-out);flex-direction:column;display:flex;position:relative;overflow:hidden}.work-card:hover{border-color:oklch(.55 .12 var(--work-hue,277) / .65);box-shadow:0 0 30px -14px oklch(.6 .2 var(--work-hue,277) / .6), var(--shadow-lg), var(--bevel);transform:translateY(-4px)}.work-card__cover{aspect-ratio:16/10;background-color:oklch(.85 .125 var(--work-hue,277));background-image:linear-gradient(oklch(.22 .06 var(--work-hue,277) / .14) 1px, transparent 1px), linear-gradient(90deg, oklch(.22 .06 var(--work-hue,277) / .14) 1px, transparent 1px);transition:background-color var(--dur-normal) var(--ease-out);background-size:26px 26px;position:relative;overflow:hidden}.work-card__cover:before{content:"";z-index:2;pointer-events:none;box-shadow:inset 0 0 0 1px oklch(.64 .16 var(--work-hue,277) / .5);position:absolute;inset:0}.work-card:hover .work-card__cover{background-color:oklch(.81 .17 var(--work-hue,277))}.work-card__cover img{object-fit:cover;width:100%;height:100%;transition:transform var(--dur-slow) var(--ease-out);position:absolute;inset:0}.work-card:hover .work-card__cover img{transform:scale(1.03)}.work-card__cover:after{content:"";background-image:linear-gradient(oklch(.18 .07 var(--work-hue,277) / .22) 1px, transparent 1px), linear-gradient(90deg, oklch(.18 .07 var(--work-hue,277) / .22) 1px, transparent 1px);opacity:0;transition:opacity var(--dur-normal) var(--ease-out);pointer-events:none;background-size:26px 26px;position:absolute;inset:-2px}.work-card:hover .work-card__cover:after{opacity:1}.work-card__mark{font-family:var(--font-display);color:oklch(.2 .08 var(--work-hue,277));opacity:.28;font-variant-numeric:tabular-nums;letter-spacing:-.04em;transition:opacity var(--dur-normal) var(--ease-out);font-size:clamp(2.5rem,6vw,4rem);font-weight:300;line-height:1;position:absolute;top:clamp(.5rem,1.5vw,.9rem);right:clamp(.75rem,2vw,1.25rem)}.work-card:hover .work-card__mark{opacity:.45}.work-card__status{position:absolute;top:clamp(.75rem,2vw,1.25rem);left:clamp(.75rem,2vw,1.25rem)}.dark .work-card__cover{background-color:oklch(.52 .14 var(--work-hue,277))}.dark .work-card:hover .work-card__cover{background-color:oklch(.58 .175 var(--work-hue,277))}.dark .work-card__mark{color:oklch(.97 .03 var(--work-hue,277));opacity:.35}.dark .work-card:hover .work-card__mark{opacity:.5}.work-card__body{--card-pad:clamp(1.1rem, 2.5vw, 1.5rem);padding:var(--card-pad);flex:1;align-items:flex-start;gap:.9rem;display:flex}.work-card__text{flex-direction:column;flex:1;gap:.5rem;min-width:0;display:flex}.work-card__title{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.022em;align-items:baseline;gap:.5rem;font-weight:600;line-height:1.25;display:flex}.work-card__arrow{color:var(--primary);opacity:0;transition:opacity var(--dur-normal) var(--ease-out), transform var(--dur-normal) var(--ease-out);font-size:.9em;transform:translate(-4px)}.work-card:hover .work-card__arrow{opacity:1;transform:translate(0)}.work-card__tagline{color:var(--muted-foreground);flex:1;font-size:.9375rem;line-height:1.65}.work-card__meta{flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.6rem;display:flex}.work-slot{border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:color-mix(in oklab, var(--card) 55%, transparent);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.6rem;min-height:11rem;padding:1.5rem;display:flex}.work-slot__mark{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.04em;color:var(--muted-foreground);opacity:.4;font-size:clamp(1.75rem,4vw,2.5rem);font-weight:300;line-height:1}.tag{font-family:var(--font-mono);letter-spacing:.03em;border-radius:var(--radius-sm);border:1px solid var(--border-strong);color:var(--foreground);white-space:nowrap;background:0 0;align-items:center;padding:.18rem .55rem;font-size:.6875rem;display:inline-flex}.tag--hot{border-color:oklch(from var(--primary) l c h / .55);color:var(--primary)}.badge{font-family:var(--font-mono);letter-spacing:.05em;backdrop-filter:blur(6px);white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .6rem;font-size:.6875rem;font-weight:500;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:999px;width:5px;height:5px}.badge--live{color:oklch(45% .14 152);background:oklch(95% .05 152/.92)}.dark .badge--live{color:oklch(82% .16 152);background:oklch(24% .06 152/.9)}.badge--wip{color:oklch(50% .14 75);background:oklch(96% .05 85/.92)}.dark .badge--wip{color:oklch(85% .14 85);background:oklch(26% .06 85/.9)}.badge--archived{color:var(--muted-foreground);background:var(--muted)}.page-head{padding-top:clamp(1.5rem,4vw,2.5rem)}.page-head__title{font-family:var(--font-display);font-size:var(--text-4xl);letter-spacing:-.035em;font-weight:600;line-height:1.02}.page-head__lead{max-width:52ch;font-size:var(--text-lg);color:var(--muted-foreground);margin-top:1rem}.page-head__meta{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:1.5rem;display:flex}.page-head__hero{align-items:center;gap:clamp(1.25rem,3vw,2rem);display:flex}.page-head__heroText{min-width:0}.page-head__avatar{object-fit:cover;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--card);width:clamp(72px,9vw,104px);height:clamp(72px,9vw,104px);box-shadow:var(--shadow-sm), var(--bevel);flex-shrink:0}.work-hero{padding-top:clamp(1.5rem,4vw,2.5rem)}.work-hero__back{font-family:var(--font-mono);letter-spacing:.04em;color:var(--muted-foreground);transition:color var(--dur-fast) var(--ease-out);align-items:center;gap:.4rem;margin-bottom:1.75rem;font-size:.75rem;display:inline-flex}.work-hero__back:hover{color:var(--primary)}.work-hero__title{font-family:var(--font-display);font-size:var(--text-4xl);letter-spacing:-.035em;text-wrap:balance;font-weight:600;line-height:1.02}.work-icon{--icon-size:clamp(2.875rem, 6vw, 3.5rem);width:var(--icon-size);height:var(--icon-size);object-fit:cover;box-shadow:0 0 0 1px oklch(100% 0 0/.16), 0 6px 14px -6px oklch(0% 0 0/.7), 0 12px 28px -14px oklch(.62 .2 var(--work-hue,277) / .75);transition:transform var(--dur-normal) var(--ease-out);border-radius:24%;flex:none}.work-icon--title,.work-icon--aside{--icon-size:clamp(3.5rem, 7vw, 4.5rem)}.work-icon--card{margin-top:calc(-1 * (var(--card-pad,1.25rem) + .5 * var(--icon-size)))}.work-icon--overlay{z-index:2;position:absolute;bottom:0;left:clamp(.9rem,2.2vw,1.4rem);transform:translateY(50%)}@media (width<=640px){.work-icon--overlay{transform:translateY(36%)}}.work-card:hover .work-icon--card{transform:translateY(-3px)}.work-hero__tagline{max-width:56ch;font-size:var(--text-lg);color:var(--muted-foreground);margin-top:1rem;line-height:1.65}.work-hero__meta{flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:1.5rem;display:flex}.work-play{margin-top:clamp(2rem,5vw,3rem);position:relative}.split{gap:clamp(2.5rem,6vw,4rem);margin-top:clamp(3rem,7vw,4.5rem);display:grid}@media (width>=960px){.split{grid-template-columns:minmax(0,1fr) 230px;align-items:start}}.side{flex-direction:column;gap:2rem;display:flex}.side__block h3{border-bottom:1px solid var(--border);margin-bottom:.75rem;padding-bottom:.5rem}.side__list{flex-direction:column;gap:.5rem;padding:0;font-size:.9375rem;line-height:1.6;list-style:none;display:flex}.side__list li{color:var(--muted-foreground);padding-left:.95rem;position:relative}.side__list li:before{content:"";background:var(--primary);width:4px;height:1px;position:absolute;top:.72em;left:0}.side__list a{transition:color var(--dur-fast) var(--ease-out)}.side__list a:hover{color:var(--primary)}.side__label{font-family:var(--font-mono);letter-spacing:.05em;opacity:.75;margin-right:.5rem;font-size:.6875rem}.side__tags{flex-wrap:wrap;gap:.4rem;margin-top:.85rem;padding:0;list-style:none;display:flex}.about-intro{margin-top:clamp(1.25rem,3vw,1.75rem)}.timeline{--rail:1.5rem;margin:0;padding:0;list-style:none}.timeline__item{grid-template-columns:var(--rail) minmax(0, 1fr);gap:0 1.1rem;padding-bottom:clamp(2.2rem,5vw,3.2rem);display:grid;position:relative}.timeline__item:last-child{padding-bottom:0}.timeline__item--media{grid-template-columns:var(--rail) minmax(0, 1fr) clamp(160px, 22%, 240px)}.timeline__media{border:1px solid var(--border);grid-column:3;align-self:start;margin:0;overflow:hidden}.timeline__media img{aspect-ratio:4/3;object-fit:cover;width:100%;height:auto;display:block}@media (width<=719px){.timeline__item--media{grid-template-columns:var(--rail) minmax(0, 1fr)}.timeline__media{grid-column:2;margin-top:1rem}}.timeline__item:before{content:"";left:calc(var(--rail) / 2);background:var(--border-strong);width:1px;position:absolute;top:.75rem;bottom:-.75rem;transform:translate(-.5px)}.timeline__item:last-child:before{display:none}.timeline__rail{padding-top:.5rem;position:relative}.timeline__dot{z-index:1;width:.5rem;height:.5rem;margin-left:calc(var(--rail) / 2 - .25rem);background:var(--primary);transition:box-shadow var(--dur-normal) var(--ease-out);border-radius:2px;display:block;position:relative}.timeline__item:hover .timeline__dot{box-shadow:0 0 0 5px oklch(from var(--primary) l c h / .16)}.timeline__head{flex-wrap:wrap;align-items:baseline;gap:.6rem;display:flex}.timeline__period{font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;transition:color var(--dur-fast) var(--ease-out);font-size:clamp(1.05rem,.92rem + .6vw,1.3rem);font-weight:600;line-height:1.2}.timeline__item:hover .timeline__period{color:var(--primary)}.timeline__draft{font-family:var(--font-mono);letter-spacing:.04em;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);color:var(--muted-foreground);padding:.1rem .4rem;font-size:.6875rem}.timeline__title{font-size:var(--text-lg);letter-spacing:-.01em;flex-wrap:wrap;align-items:baseline;gap:.55rem;margin-top:.5rem;font-weight:640;line-height:1.35;display:flex}.timeline__role{font-family:var(--font-mono);letter-spacing:.03em;color:var(--muted-foreground);font-size:.75rem;font-weight:400}.timeline__summary{max-width:62ch;color:var(--muted-foreground);margin-top:.6rem;font-size:1rem;line-height:1.75}.timeline__points{flex-direction:column;gap:.45rem;margin-top:.8rem;padding:0;font-size:.9375rem;line-height:1.7;list-style:none;display:flex}.timeline__points li{padding-left:1rem;position:relative}.timeline__points li:before{content:"";background:var(--primary);width:5px;height:1px;position:absolute;top:.72em;left:0}.timeline__tags{flex-wrap:wrap;gap:.4rem;margin-top:.85rem;padding:0;list-style:none;display:flex}.post-list{flex-direction:column;display:flex}.post-row{border-bottom:1px solid var(--border);transition:padding-left var(--dur-normal) var(--ease-out);grid-template-columns:1fr;gap:.35rem;padding:clamp(1.1rem,3vw,1.6rem) 0;display:grid;position:relative}.post-row:before{content:"";background:var(--primary);width:3px;height:1.75rem;transition:transform var(--dur-normal) var(--ease-out);border-radius:2px;position:absolute;top:50%;left:0;transform:translateY(-50%)scaleY(0)}@media (width>=720px){.post-row{grid-template-columns:7.5rem minmax(0,1fr);align-items:baseline;gap:0 2rem}}.post-row:hover,.post-row:focus-visible{padding-left:.7rem}.post-row:hover:before,.post-row:focus-visible:before{transform:translateY(-50%)scaleY(1)}.reveal-ready .post-row[data-reveal].is-visible{transition:opacity var(--dur-slow) var(--ease-out) var(--reveal-delay,0s), transform var(--dur-slow) var(--ease-out) var(--reveal-delay,0s), padding-left var(--dur-normal) var(--ease-out)}.post-row__date{font-family:var(--font-mono);letter-spacing:.04em;color:var(--muted-foreground);font-variant-numeric:tabular-nums;font-size:.75rem}.post-row__title{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.022em;transition:color var(--dur-fast) var(--ease-out);font-weight:600;line-height:1.25}.post-row:hover .post-row__title,.post-row:focus-visible .post-row__title{color:var(--primary)}.post-row__desc{color:var(--muted-foreground);transition:color var(--dur-normal) var(--ease-out);grid-column:2;margin-top:.3rem;font-size:.9375rem}.post-row:hover .post-row__desc,.post-row:focus-visible .post-row__desc{color:var(--foreground)}@media (width<=719px){.post-row__desc{grid-column:1}}@media (prefers-reduced-motion:reduce){.post-row,.post-row:before,.post-row__title,.post-row__desc{transition:none}}.prose{font-size:1.0625rem;line-height:1.82}.prose>*{max-width:68ch}.prose>:is(.report-stats,.report-table,.report-layers),.prose>h2{max-width:none}.prose>*+*{margin-top:1.3em}.prose h2{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:-.025em;border-top:1px solid var(--border);margin-top:2.6em;padding-top:.9em;font-weight:600;line-height:1.2}.prose--numbered>.article-heading{grid-template-columns:1.6em minmax(0,1fr);align-items:baseline;gap:0 .5em;display:grid}.article-heading__num{font-family:var(--font-mono);letter-spacing:.02em;color:var(--primary);font-variant-numeric:tabular-nums;font-size:.8em;font-weight:500}.article-heading__num--none{color:var(--muted-foreground);display:none}.prose--numbered .article-heading__num--none{display:inline}.prose h3{letter-spacing:-.01em;margin-top:2em;font-size:1.1875rem;font-weight:640}.prose a{color:var(--primary);text-underline-offset:3px;transition:text-decoration-thickness var(--dur-fast) var(--ease-out);text-decoration:underline 1px}.prose a:hover{text-decoration-thickness:2px}.cite{font-family:var(--font-mono);vertical-align:.08em;color:var(--muted-foreground);transition:color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);border-radius:3px;font-size:.72em;position:relative}.prose .cite{text-decoration:none}.cite:hover,.cite:focus-visible{color:var(--primary);background:var(--muted);outline:none;text-decoration:none}.cite__tip{z-index:20;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card);width:max-content;max-width:min(24rem,72vw);box-shadow:var(--shadow-md), var(--bevel);font-family:var(--font-sans);font-size:var(--text-sm);letter-spacing:normal;text-align:left;color:var(--foreground);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out), visibility var(--dur-fast);padding:.6rem .75rem;line-height:1.55;position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%)translateY(.25rem)}.cite:hover .cite__tip,.cite:focus-visible .cite__tip{opacity:1;visibility:visible;transform:translate(-50%)}.cite__label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--primary);margin-right:.3rem}.cite__url{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--muted-foreground);overflow-wrap:anywhere;margin-top:.3rem;line-height:1.45;display:block}.prose li[id^=ref-]{scroll-margin-top:5rem}.prose li[id^=ref-]:target{background:var(--muted);border-radius:var(--radius-sm);box-shadow:0 0 0 .35rem var(--muted)}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.45em}.prose code{background:var(--muted);border-radius:var(--radius-sm);padding:.15em .4em;font-size:.875em}.prose pre{border-radius:var(--radius);border:1px solid var(--border);background:var(--card);box-shadow:var(--shadow-sm), var(--bevel);padding:1.15rem 1.3rem;font-size:.875rem;line-height:1.7;overflow-x:auto}.prose pre code{font-size:inherit;background:0 0;padding:0}.prose blockquote{border-left:2px solid var(--primary);color:var(--muted-foreground);padding-left:1.15rem}.prose img{border-radius:var(--radius);border:1px solid var(--border)}.prose table{border-collapse:collapse;width:100%;font-size:.9375rem}.prose th,.prose td{border:1px solid var(--border);text-align:left;padding:.55rem .8rem}.prose th{background:var(--muted);font-weight:600}.prose hr{border:none;border-top:1px solid var(--border)}.report-stats{background:var(--border);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:1fr;gap:1px;display:grid;overflow:hidden}@media (width>=720px){.report-stats{grid-template-columns:repeat(var(--report-cols), minmax(0, 1fr))}}.report-stat{background:var(--card);flex-direction:column;gap:.15rem;padding:1.05rem 1.15rem 1.15rem;display:flex}.report-stat__label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;color:var(--muted-foreground)}.report-stat__value{font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:clamp(1.2rem,1.05rem + .7vw,1.55rem);font-weight:600;line-height:1.2}.report-stat__note{font-size:var(--text-sm);color:var(--muted-foreground);line-height:1.5}.report-stat__progress{background:var(--muted);height:3px;margin-top:.6rem}.report-stat__progress-fill{background:var(--primary);height:100%;display:block}.prose .report-timeline{padding-left:0;list-style:none}.prose .report-timeline>li+li{margin-top:0}.report-milestone{grid-template-columns:1.25rem minmax(0,1fr);gap:.2rem .9rem;padding-bottom:1.5rem;display:grid;position:relative}.report-milestone__period,.report-milestone__body{grid-column:2}@media (width>=720px){.report-milestone{grid-template-columns:1.25rem 6.5rem minmax(0,1fr)}.report-milestone__body{grid-column:3}}.report-milestone:before{content:"";background:var(--border-strong);width:1px;position:absolute;top:.875rem;bottom:0;left:calc(.625rem - .5px)}.report-milestone:last-child{padding-bottom:0}.report-milestone:last-child:before{display:none}.report-milestone:after{content:"";border:1px solid var(--border-strong);background:var(--background);border-radius:2px;width:.375rem;height:.375rem;position:absolute;top:.5rem;left:.4375rem}.report-milestone--key:after{border-color:var(--primary);background:var(--primary)}.report-milestone__period{font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:.02em;color:var(--muted-foreground);font-variant-numeric:tabular-nums;white-space:nowrap}.report-milestone--key .report-milestone__period{color:var(--primary)}.report-milestone__body{font-size:.9375rem;line-height:1.7}.report-milestone__body>*+*{margin-top:.45em}.report-callout{border-left:2px solid var(--border-strong);color:var(--muted-foreground);padding:.1rem 0 .1rem 1.15rem}.report-callout--warn{border-left-color:var(--primary)}.report-callout__label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;margin-bottom:.35rem}.report-callout--warn .report-callout__label{color:var(--primary)}.report-callout__body>*+*{margin-top:.5em}.report-cards{grid-template-columns:1fr;gap:.75rem;display:grid}@media (width>=720px){.report-cards{grid-template-columns:repeat(var(--report-cols), minmax(0, 1fr));gap:1rem}}.report-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-sm), var(--bevel);flex-direction:column;gap:.45rem;padding:1.05rem 1.15rem 1.15rem;display:flex}.report-card__head{flex-wrap:wrap;align-items:baseline;gap:.6rem;display:flex}.report-card__title{font-family:var(--font-display);letter-spacing:-.01em;font-size:1.0625rem;font-weight:640}.report-card__meta{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.02em;font-variant-numeric:tabular-nums;font-weight:500}.report-card__price{font-family:var(--font-display);letter-spacing:-.02em;color:var(--primary);font-variant-numeric:tabular-nums;font-size:1.3rem;font-weight:600}.report-card__body{color:var(--muted-foreground);font-size:.9375rem;line-height:1.7}.report-card__body>*+*{margin-top:.5em}.report-card__note{border-top:1px solid var(--border);font-size:var(--text-sm);color:var(--muted-foreground);margin-top:auto;padding-top:.6rem;line-height:1.55}.report-table{margin:0}.report-table__caption{font-size:var(--text-sm);color:var(--muted-foreground);margin-bottom:.7rem}.report-table__scroll{overflow-x:auto}.report-table__scroll:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.report-table__scroll>table{min-width:var(--report-table-min)}.report-table--nowrap-last :is(th,td):last-child{white-space:nowrap;width:1%}.report-layers{flex-direction:column;display:flex}.report-layer{grid-template-columns:1.25rem minmax(0,1fr);gap:.35rem .9rem;padding-bottom:1.6rem;display:grid;position:relative}.report-layer__head,.report-layer__body{grid-column:2}@media (width>=900px){.report-layer{grid-template-columns:1.25rem minmax(11rem,15rem) minmax(0,68ch)}.report-layer__body{grid-column:3}}.report-layer:before{content:"";background:var(--border-strong);width:1px;position:absolute;top:.5rem;bottom:0;left:calc(.625rem - .5px)}.report-layer:last-child{padding-bottom:0}.report-layer:last-child:before{display:none}.report-layer:after{content:"";border:1px solid var(--border-strong);background:var(--background);border-radius:2px;width:.375rem;height:.375rem;position:absolute;top:.35rem;left:.4375rem}.report-layer--focus:after{border-color:var(--primary);background:var(--primary)}.report-layer--focus .report-layer__name{color:var(--primary)}.report-layer__head{flex-direction:column;gap:.35rem;display:flex}.report-layer__name{font-family:var(--font-display);letter-spacing:-.01em;font-size:1.0625rem;font-weight:640;line-height:1.3}.report-layer__stack{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--muted-foreground);line-height:1.5}.report-layer__body{font-size:.9375rem;line-height:1.75}.report-layer__body>*+*{margin-top:.5em}.report-evidence{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:flex}.prose>.report-evidence+*{margin-top:2.2em}.report-evidence__tag{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;color:var(--muted-foreground)}.report-evidence__level{border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-xs);padding:.1rem .45rem}.report-evidence__level--self-report,.report-evidence__level--reported{color:var(--muted-foreground);border-style:dashed}.report-evidence__level--analysis{color:var(--muted-foreground);border-style:dotted}.report-bars{margin:0}.report-bars__scroll{overflow-x:auto}.report-bars__scroll:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.report-bars__svg{width:100%;min-width:45rem;height:auto;display:block}.report-bars__axis{stroke:var(--border);stroke-width:1px}.report-bars__bar{fill:oklch(from var(--primary) l c h / .34)}.report-bars__bar--last{fill:var(--primary)}.report-bars text{font-family:var(--font-mono);font-size:var(--text-xs);fill:var(--muted-foreground);font-variant-numeric:tabular-nums}.report-bars__value{fill:var(--foreground)}.report-bars__caption{font-size:var(--text-sm);color:var(--muted-foreground);margin-top:.6rem;line-height:1.55}.report-ratio{margin:0}.report-ratio__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.6rem;margin-bottom:.55rem;display:flex}.report-ratio__label{font-size:.9375rem}.report-ratio__value{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--muted-foreground);font-variant-numeric:tabular-nums}.report-ratio__percent{color:var(--foreground);margin-left:.45rem;font-weight:500}.report-ratio__svg{width:100%;height:auto;display:block}.report-ratio__track{fill:var(--muted)}.report-ratio__fill{fill:var(--primary)}.report-ratio__note{font-size:var(--text-sm);color:var(--muted-foreground);margin-top:.5rem;line-height:1.55}.report-price-band{margin:0}.report-price-band__scroll{overflow-x:auto}.report-price-band__scroll:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.report-price-band__svg{width:100%;min-width:45rem;height:auto;display:block}.report-price-band__axis,.report-price-band__tick{stroke:var(--border);stroke-width:1px}.report-price-band text{font-variant-numeric:tabular-nums}.report-price-band__name{font-family:var(--font-sans);font-size:var(--text-xs);fill:var(--foreground)}.report-price-band__name--highlight{fill:var(--primary);font-weight:500}.report-price-band__scale,.report-price-band__value{font-family:var(--font-mono);font-size:var(--text-xs);fill:var(--muted-foreground)}.report-price-band__dot{fill:var(--muted-foreground)}.report-price-band__dot--highlight{fill:var(--primary)}.report-price-band__range{stroke:var(--muted-foreground);stroke-width:2px;stroke-linecap:round}.report-price-band__range--highlight{stroke:var(--primary)}.report-price-band__caption{font-size:var(--text-sm);color:var(--muted-foreground);margin-top:.6rem;line-height:1.55}.prose{counter-reset:figure table}.prose>:is(.report-bars,.report-ratio,.report-compare,.report-price-band){counter-increment:figure}.prose>.report-table{counter-increment:table}.prose>:is(.report-bars,.report-ratio,.report-compare,.report-price-band)>figcaption:before,.prose>.report-table>.report-table__caption:before{font-family:var(--font-mono);color:var(--foreground)}.prose>:is(.report-bars,.report-ratio,.report-compare,.report-price-band)>figcaption:before{content:"图 " counter(figure) " · "}.prose>.report-table>.report-table__caption:before{content:"表 " counter(table) " · "}.report-compare{margin:0}.report-compare__list{flex-direction:column;gap:1rem;margin:0;padding:0;list-style:none;display:flex}.report-compare__row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name value""track track";gap:.4rem .75rem;display:grid}.report-compare__name{grid-area:name;font-size:.9375rem}.report-compare__name--highlight{color:var(--primary)}.report-compare__value{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--muted-foreground);font-variant-numeric:tabular-nums;grid-area:value}.report-compare__track{background:var(--muted);grid-area:track;height:6px;display:block}.report-compare__bar{background:oklch(from var(--muted-foreground) l c h / .55);height:100%;display:block}.report-compare__bar--highlight{background:var(--primary)}.report-compare__caption{font-size:var(--text-sm);color:var(--muted-foreground);margin-top:.85rem;line-height:1.55}@keyframes rise{0%{opacity:0;filter:blur(8px);transform:translateY(22px)}to{opacity:1;filter:blur();transform:none}}.hero__intro>*{animation:rise var(--dur-slow) var(--ease-out) backwards}.hero__intro>:nth-child(2){animation-delay:80ms}.hero__meta{animation:rise var(--dur-slow) var(--ease-out) .16s backwards}.reveal-ready [data-reveal]{opacity:0;transform:translateY(16px)}.reveal-ready [data-reveal].is-visible{opacity:1;transition:opacity var(--dur-slow) var(--ease-out) var(--reveal-delay,0s), transform var(--dur-slow) var(--ease-out) var(--reveal-delay,0s);transform:none}@supports (animation-timeline:view()){.section__head{animation-name:section-head-in;animation-duration:auto;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range:entry 5% entry 60%}.section__head:after{animation-name:rule-draw;animation-duration:auto;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range:entry 15% entry 70%}.hero-work{animation-name:block-rise;animation-duration:auto;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range:entry entry 25%}#work-weave .hero-work{animation-name:block-rise-visible;animation-range:entry entry 12%}#work-weave .hero-work__frame{--weave-zoom:min(calc((100vw - 2rem) / min(1200px, calc(100vw - 2 * var(--gutter)))), 1.3);--weave-frame-h:calc(min(1200px, 100vw - 2 * var(--gutter)) * 9 / 16);--weave-rise:calc(280px + 20vh);--weave-lift:calc(((var(--weave-zoom) - 1) * var(--weave-frame-h) - var(--weave-rise)) / var(--weave-zoom));transform-origin:bottom;animation-name:weave-settle;animation-duration:auto;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:scroll();animation-range:0 60vh}#work-zifo-reading .hero-work__covercard{animation-name:covercard-out;animation-duration:auto;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range:entry 50% entry 95%}}@keyframes section-head-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes rule-draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes block-rise{0%{opacity:0;transform:translateY(36px)scale(.985)}to{opacity:1;transform:none}}@keyframes block-rise-visible{0%{transform:translateY(36px)scale(.985)}to{transform:none}}@keyframes weave-settle{0%{transform:scale(var(--weave-zoom)) translateY(var(--weave-lift))}to{transform:none}}@keyframes covercard-out{0%{transform:translate(58%,5%)rotate(0)}to{transform:rotate(-5deg)}}.elevator{display:none}@media (width>=1440px){.elevator{z-index:50;display:block;position:fixed;top:50%;right:.5rem;transform:translateY(-50%)}}.elevator__list{flex-direction:column;gap:.7rem;margin:0;padding:0;list-style:none;display:flex}.elevator__item{justify-content:flex-end;align-items:center;gap:.4rem;padding:.3rem 0;display:flex}.elevator__label{white-space:nowrap;text-overflow:ellipsis;text-align:right;max-width:5.5rem;color:var(--muted-foreground);transition:color var(--dur-fast) var(--ease-out);font-size:.6875rem;line-height:1.3;overflow:hidden}.elevator__item:hover .elevator__label{color:var(--foreground)}.elevator__item.is-current .elevator__label{color:var(--primary);font-weight:500}.elevator__dot{border:1px solid var(--border-strong);width:8px;height:8px;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-normal) var(--ease-out);border-radius:2px;flex-shrink:0}.elevator__item:hover .elevator__dot{border-color:var(--primary);box-shadow:0 0 0 4px oklch(from var(--primary) l c h / .14)}.elevator__item.is-current .elevator__dot{background:var(--primary);border-color:var(--primary)}.section[id^=work-]{scroll-margin-top:5rem}.prose :is(h2,h3)[id]{scroll-margin-top:6.5rem}@media (width>=1440px){.prose :is(h2,h3)[id]{scroll-margin-top:5rem}}.chapter-bar{z-index:55;background:color-mix(in oklab, var(--background) 78%, transparent);backdrop-filter:saturate(180%)blur(14px);border-bottom:1px solid var(--border);position:fixed;top:4rem;left:0;right:0}@media (width>=1440px){.chapter-bar{display:none}}.chapter-bar__inner{justify-content:space-between;align-items:center;gap:1rem;height:2.25rem;display:flex}.chapter-bar__name{white-space:nowrap;text-overflow:ellipsis;font-size:var(--text-sm);overflow:hidden}.chapter-bar__count{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--muted-foreground);font-variant-numeric:tabular-nums;flex-shrink:0}.chapter-bar__track{background:var(--muted);height:2px}.chapter-bar__fill{background:var(--primary);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.career-preview{-webkit-mask-image:linear-gradient(#000 0 calc(100% - 13rem),#0006 calc(100% - 4.5rem),#0000 100%);mask-image:linear-gradient(#000 0 calc(100% - 13rem),#0006 calc(100% - 4.5rem),#0000 100%)}.career-preview__more{justify-content:center;margin-top:clamp(1.5rem,4vw,2.25rem);display:flex}.empty-state{border:1px dashed var(--border);border-radius:var(--radius-lg);text-align:center;color:var(--muted-foreground);padding:3rem 1.5rem;font-size:.9375rem}.divider{background:var(--border);border:0;height:1px;margin-block:clamp(2rem,5vw,3rem)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}.reveal-ready [data-reveal]{opacity:1;transform:none}.section__head,.section__head:after,.hero-work,#work-weave .hero-work__frame,#work-zifo-reading .hero-work__covercard{animation:none!important}}@media (width<=640px){body{line-height:1.7}.main{padding-block:2rem 3.5rem}.nav__link{padding-inline:.5rem;font-size:.84375rem}.nav__link:after{left:.5rem;right:.5rem}.site-header__inner{gap:.75rem;height:3.5rem}}
