.story{position:relative}.story-stage{background:var(--color-bg);height:min(78dvh,720px);position:relative;overflow:hidden}.story-poster,.story-canvas{width:100%;height:100%;image-rendering:pixelated;position:absolute;inset:0}.story-poster{object-fit:cover;transition:opacity .4s}.story-canvas{display:block}.story-shade{opacity:0;pointer-events:none;background:#000;position:absolute;inset:0}.story-cap{padding-inline:max(1.5rem, env(safe-area-inset-left)) max(1.5rem, env(safe-area-inset-right));opacity:0;pointer-events:none;flex-direction:column;gap:.6rem;margin:0;transition:opacity .35s,transform .35s;display:flex;position:absolute;bottom:14%;left:0;right:0;transform:translateY(8px)}.story-cap span{font-family:var(--font-mono);color:var(--color-muted);font-size:.8125rem}.story-cap b{font-family:var(--font-display);text-wrap:balance;font-size:clamp(1.75rem,5vw,3.5rem);font-weight:700;line-height:1.1}.story-cap{z-index:1}.story-cap:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#0e0f1100,#0e0f11eb 70%);position:absolute;inset:-45vh 0 -20vh}.story-final:before{background:radial-gradient(closest-side,#0e0f11d9,#0e0f1100);inset:-30% -10%}.story-cap b,.story-cap span{text-shadow:0 1px 12px #000c}.story-cap.on{opacity:1;transform:none}.story-final{text-align:center;align-items:center;top:50%;bottom:auto;transform:translateY(-50%)}.story-final.on{transform:translateY(-50%)}.story-final b{text-shadow:0 0 24px var(--color-bg);font-size:clamp(2.75rem,10vw,7.5rem)}.story-final em{color:var(--color-accent);font-style:normal}@media (width>=768px){.story-cap[data-side]{width:min(40%,32rem);padding-inline:0;top:50%;bottom:auto;transform:translateY(calc(8px - 50%))}.story-cap[data-side].on{transform:translateY(-50%)}.story-cap[data-side=l]{left:12vw;right:auto}.story-cap[data-side=r]{text-align:right;align-items:flex-end;left:auto;right:12vw}.story-cap[data-side]:before{top:-50vh;bottom:-50vh}.story-cap[data-side=l]:before{background:linear-gradient(90deg,#0e0f11e6 45%,#0e0f1100);left:-12vw;right:-40%}.story-cap[data-side=r]:before{background:linear-gradient(270deg,#0e0f11e6 45%,#0e0f1100);left:-40%;right:-12vw}}.story:not(.is-live) .story-cap{opacity:0}.story:not(.is-live) .story-final{opacity:1}.story.is-live{height:552vh}.story.is-live .story-stage{will-change:transform;height:100dvh;position:sticky;top:0}.story.is-live .story-shade{will-change:opacity}.story.is-3d .story-poster{opacity:0}.story.is-live+.home-body{margin-top:-100vh}.home-body{z-index:2;background:var(--color-bg);padding-block:5rem 7rem;position:relative;box-shadow:0 -16px 40px #00000059}.home-in{flex-direction:column;gap:clamp(5.5rem,12vw,9rem);max-width:1040px;display:flex}.home-kick{font-family:var(--font-display);color:var(--color-fg);letter-spacing:.01em;align-items:baseline;gap:.6rem;margin:0 0 2rem;font-size:clamp(1.25rem,1.8vw,1.5rem);font-weight:700;display:flex}.home-kick>span{color:var(--color-quiet)}.home-kick small{font-family:var(--font-mono);color:var(--color-muted);font-size:.8125rem;font-weight:400}.home-gh{width:1.75rem;height:1.75rem;color:var(--color-fg);place-items:center;transition:color .15s,scale .15s;display:inline-grid;border:0!important}.home-gh svg{width:1.25rem;height:1.25rem}.home-gh:hover{color:var(--color-accent)}.home-gh:active{scale:.92}.home-statement{letter-spacing:-.015em;text-wrap:balance;max-width:22ch;margin:0;font-size:clamp(1.75rem,4.4vw,3.25rem);font-weight:500;line-height:1.32}.home-statement span{color:var(--color-muted)}.home-lead{max-width:46ch;color:var(--color-muted);margin:1.75rem 0 0;font-size:1rem;line-height:1.8}.home-meta{font-family:var(--font-mono);color:var(--color-muted);flex-wrap:wrap;gap:.5rem 1.375rem;margin:2rem 0 0;font-size:.8125rem;display:flex}.home-meta b{color:var(--color-fg);font-weight:500}.home-meta a{color:var(--color-fg);border-bottom:1px solid var(--color-border)}.home-meta a:hover{color:var(--color-accent);border-color:var(--color-accent)}.home-path{flex-direction:column;gap:1.125rem;margin:0;padding:0;list-style:none;display:flex}.home-path li{flex-wrap:wrap;align-items:baseline;gap:.25rem .875rem;font-size:clamp(1.25rem,2.6vw,1.75rem);font-weight:500;display:flex}.home-path li span{color:var(--color-muted);font-size:.875rem;font-weight:400}.home-path li .len{font-family:var(--font-mono);margin-left:auto;font-size:.8125rem}.home-path li.now .len{color:var(--color-accent)}.home-stack{flex-direction:column;gap:1.75rem;display:flex}.home-stack .home-kick{margin-bottom:0}.home-stack h3{color:var(--color-muted);margin:0 0 .75rem;font-size:.875rem;font-weight:500}.home-tags{font-family:var(--font-mono);flex-wrap:wrap;gap:.375rem 1rem;margin:0;padding:0;font-size:.875rem;list-style:none;display:flex}.home-works{flex-direction:column;gap:clamp(3.5rem,8vw,5.5rem);margin:0;padding:0;list-style:none;display:flex}.home-work{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.25rem 2.5rem;display:flex}.home-work .thumb{aspect-ratio:16/10;background:var(--color-surface);border-radius:14px;flex:100%;position:relative}.home-work .thumb-pop{background:var(--color-surface);border-radius:14px;width:100%;height:100%;transition:left .4s cubic-bezier(.2,.8,.2,1),top .4s cubic-bezier(.2,.8,.2,1),width .4s cubic-bezier(.2,.8,.2,1),height .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s;position:absolute;top:0;left:0;overflow:hidden}.home-work .thumb.is-pop .thumb-pop{box-shadow:var(--shadow-pop)}.home-works>li{position:relative}.home-works>li.is-pop{z-index:5}.home-work .thumb img{object-fit:cover;object-position:center;width:100%;height:100%;transition:transform .4s;display:block}.home-work:hover .thumb img{transform:scale(1.03)}.home-work .body{flex-direction:column;flex:999 26rem;gap:.625rem;min-width:0;display:flex}.home-work .when,.home-work .tech{font-family:var(--font-mono);color:var(--color-muted);font-size:.75rem}.home-work .name{font-family:var(--font-display);overflow-wrap:anywhere;font-size:clamp(2.5rem,5.4vw,4rem);font-weight:700;line-height:1;position:relative}.home-work .name:after{content:"→";color:var(--color-accent);opacity:0;margin-left:.4em;font-size:.5em;line-height:2;transition:opacity .2s,transform .2s;position:absolute;transform:translate(-.5rem)}.home-work:hover .name:after,.home-work:focus-visible .name:after{opacity:1;transform:none}.home-work:focus-visible{outline:2px solid var(--color-accent);outline-offset:.5rem}.home-work .one{font-size:1.0625rem}.home-work .num{flex-direction:column;flex:11rem;align-items:flex-start;gap:.25rem;display:flex}.home-work .num b{font-family:var(--font-mono);color:var(--color-accent);font-variant-numeric:tabular-nums;font-size:clamp(2.25rem,5vw,3.5rem);font-weight:500;line-height:1}.home-work .num span{color:var(--color-muted);max-width:22ch;font-size:.8125rem}.home-work .more{color:var(--color-muted);max-width:52ch;font-size:.9375rem;line-height:1.7}.is-focus-mode>li{opacity:.35;transition:opacity .45s}.is-focus-mode>li.is-focus{opacity:1}.is-focus-mode .home-work .more{opacity:0;transition:opacity .35s}.is-focus-mode .is-focus .home-work .more{opacity:1}.is-focus-mode .is-focus .home-work .name:after{opacity:1;transform:none}.is-focus-mode .is-focus .home-work .thumb img{transform:scale(1.03)}.home-works .home-work .thumb.is-pop img{transform:none}@media (prefers-reduced-motion:reduce){.is-focus-mode>li,.is-focus-mode .home-work .more,.home-work .thumb-pop{transition:none}}.home-toc{display:none}@media (width>=1200px){.home-toc{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-family:var(--font-mono);opacity:0;pointer-events:none;background:#2023278c;border-radius:14px;flex-direction:column;gap:.125rem;padding:.5rem;font-size:.75rem;transition:opacity .3s,translate .3s;display:flex;position:fixed;top:50%;left:1.25rem;translate:-.5rem -50%}.home-toc.is-on{opacity:1;pointer-events:auto;translate:0 -50%}.home-toc a{min-height:2rem;color:var(--color-quiet);border-radius:8px;align-items:center;gap:.5rem;padding:0 .625rem;transition:color .15s,background-color .15s;display:flex}.home-toc a:before{content:"";opacity:.5;background:currentColor;border-radius:1px;width:.375rem;height:.375rem}.home-toc a:hover{color:var(--color-fg);background:#ffffff0d}.home-toc a[aria-current=true]{color:var(--color-fg)}.home-toc a[aria-current=true]:before{background:var(--color-accent);opacity:1}.home-toc a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}}@media (prefers-reduced-motion:reduce){.home-toc{transition:none}}.home-ask{flex-direction:column;align-items:flex-start;gap:1.5rem;display:flex}.home-ask .home-kick,.home-ask .home-lead,.home-ask .home-meta{margin:0}.home-big{font-family:var(--font-display);text-wrap:balance;margin:0;font-size:clamp(2.5rem,7vw,5.5rem);font-weight:700;line-height:1.05}.home-btn{isolation:isolate;background:var(--color-surface);min-height:3.5rem;color:var(--color-fg);font-family:var(--font-display);letter-spacing:.02em;cursor:pointer;border:0;border-radius:16px;align-items:center;gap:1.125rem;padding:.375rem .375rem .375rem 1.5rem;font-size:1.0625rem;font-weight:700;display:inline-flex;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff14}.home-btn:before{content:"";z-index:-1;background:var(--color-accent);clip-path:inset(0 100% 0 0);transition:clip-path .48s steps(8,end);position:absolute;inset:0}.home-btn:hover:before,.home-btn:focus-visible:before{clip-path:inset(0)}.home-btn:hover,.home-btn:focus-visible{color:var(--color-bg)}.home-btn-go{background:var(--color-accent);width:2.75rem;height:2.75rem;color:var(--color-bg);font-family:var(--font-mono);border-radius:12px;place-items:center;font-size:1.125rem;transition:background-color .2s,color .2s,translate .3s cubic-bezier(.2,1.5,.4,1);display:grid}.home-btn:hover .home-btn-go,.home-btn:focus-visible .home-btn-go{background:var(--color-bg);color:var(--color-accent);translate:3px}@media (prefers-reduced-motion:reduce){.home-btn:before,.home-btn-go{transition:none}}.home-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}@media (width>=720px){.home-work{flex-wrap:nowrap;align-items:center}.home-work .thumb{flex:0 0 15rem}.home-work .num{text-align:right;flex:0 0 11rem;align-items:flex-end}}
