html:has(.project-case){scroll-padding-top:9.25rem}.portfolio-world:has(.project-case) .portfolio-header.is-away{transform:none}.project-case{background:var(--paper);color:var(--ink);--case-muted:#4e5c76}.project-case a:focus-visible{outline-offset:6px;outline:2px solid}.case-wrap{width:min(calc(100% - var(--gutter)*2),1440px);margin-inline:auto}.case-opening{background:var(--case-ground);color:var(--case-ink);padding-top:7rem;overflow:clip}.case-back{align-items:center;gap:.8rem;min-height:44px;margin-bottom:2.5rem;font-size:.85rem;display:inline-flex}.project-case svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.case-back:hover svg{transform:translate(-4px)}.case-hero{grid-template-columns:minmax(0,.95fr) minmax(0,1.2fr);align-items:center;gap:clamp(2rem,5vw,6rem);padding-bottom:3.5rem;display:grid}.case-intro{z-index:1;min-width:0;position:relative}.case-intro h1{letter-spacing:-.04em;text-wrap:balance;max-width:11ch;font-size:clamp(3.5rem,7vw,6rem);font-weight:600;line-height:.98}.case-hero--long h1{max-width:16ch;font-size:clamp(3rem,4.5vw,4.8rem)}.case-premise{letter-spacing:-.025em;font-size:clamp(1.4rem,2vw,2rem);line-height:1.2;font-family:var(--display);max-width:28ch;margin-top:1.75rem}.case-summary{max-width:49ch;color:color-mix(in srgb,var(--case-ink) 85%,var(--case-ground));margin-top:1.25rem;font-size:1rem;line-height:1.7}.case-links{flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;margin-top:2rem;display:flex}.case-links a{text-underline-offset:.35em;justify-content:center;align-items:center;gap:.8rem;min-height:48px;font-size:.9rem;font-weight:500;text-decoration:underline;display:inline-flex}.case-links .case-action{background:var(--case-ink);color:var(--case-ground);border-radius:3px;padding:.85rem 1.2rem;text-decoration:none}.case-links a:hover svg{transform:translate(2px,-2px)}.case-links .case-jump:hover svg{transform:translateY(3px)}.case-visual{align-self:center;min-width:0;margin:0}.case-visual-stage{place-items:center;min-height:310px;display:grid}.case-visual img{object-fit:contain;width:100%;height:auto;max-height:520px;display:block;box-shadow:8px 24px 42px #10132224}.case-visual--portrait .case-visual-stage{min-height:490px}.case-visual--portrait img{border-radius:12px;width:auto;max-width:100%;height:490px}.case-visual--illustration img{box-shadow:none;max-height:490px}.case-visual figcaption{max-width:70ch;color:color-mix(in srgb,var(--case-ink) 85%,var(--case-ground));margin-top:1.3rem;font-size:.75rem;line-height:1.6}.case-visual--portrait figcaption{text-align:center;max-width:42ch;margin-inline:auto}.case-facts{border-top:1px solid color-mix(in srgb,var(--case-ink) 25%,transparent);grid-template-columns:minmax(0,.95fr) minmax(0,1.2fr);gap:clamp(2rem,5vw,6rem);padding:1.5rem 0 2rem;font-size:.85rem;line-height:1.6;display:grid}.case-status{color:color-mix(in srgb,var(--case-ink) 85%,var(--case-ground));margin-top:.35rem}.case-facts ul{flex-wrap:wrap;align-content:start;gap:.3rem 1.25rem;margin:0;padding:0;list-style:none;display:flex}.case-facts li{margin:0}.case-navigation{z-index:32;background:var(--paper);border-bottom:1px solid #b4bfd5;position:sticky;top:70px}.case-navigation .case-wrap{align-items:center;gap:clamp(1.25rem,4vw,4rem);min-height:64px;display:flex}.case-navigation a{white-space:nowrap;align-items:center;min-height:48px;font-size:.85rem;display:flex}.case-navigation a:hover{text-decoration:underline;text-decoration-color:var(--pink);text-underline-offset:.4em}.case-section{padding-block:clamp(4rem,7vw,7rem)}.case-editorial-grid{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(2rem,7vw,8rem);display:grid}.case-section h2{letter-spacing:-.035em;text-wrap:balance;max-width:14ch;font-size:clamp(2.3rem,3.6vw,3.6rem);font-weight:500;line-height:1.06}.case-objective{letter-spacing:-.015em;max-width:44ch;font-size:clamp(1.3rem,2vw,1.8rem);line-height:1.5}.case-context,.case-naming-note{max-width:68ch;color:var(--case-muted);margin-top:1.75rem;font-size:1rem;line-height:1.75}.case-naming-note{max-width:72ch;font-size:.85rem}.case-contribution{background:var(--ink);color:var(--paper)}.case-contribution-heading{align-self:start;position:sticky;top:11rem}.case-contribution-heading>p{color:var(--muted);max-width:25ch;margin-top:1.5rem;font-size:.9rem}.case-contribution h2:after{content:"";background:var(--pink);width:4.5rem;height:3px;margin-top:1rem;display:block;transform:rotate(-2deg)}.case-attribution{color:var(--muted);max-width:67ch;margin-bottom:2rem;font-size:.95rem;line-height:1.75}.case-contribution-detail ul{margin:0;padding:0;list-style:none}.case-contribution-detail li{border-top:1px solid var(--line);margin:0;padding-block:1.6rem}.case-contribution-detail li h3{letter-spacing:-.02em;margin-bottom:.75rem;font-size:1.5rem;font-weight:500;line-height:1.25}.case-contribution-detail li p{max-width:60ch;font-size:1.1rem;line-height:1.7}.case-mechanism{background:var(--story-paper)}.case-mechanism h2{max-width:none}.case-system{--explain-line:#a6b4ce;--explain-muted:#3d4c68;margin-top:1.75rem}.case-system-intro{max-width:70ch;color:var(--explain-muted);margin-bottom:2.75rem;font-size:1.15rem;line-height:1.7}.case-system h3,.case-system dt{font-family:var(--display);letter-spacing:-.02em;font-size:clamp(1.35rem,2vw,1.8rem);font-weight:500;line-height:1.25}.case-system p,.case-system dd{line-height:1.7}.case-system dd,.case-system li{margin:0}.case-system-note{border-top:1px solid var(--explain-line);max-width:85ch;color:var(--explain-muted);margin-top:2.5rem;padding-top:1.5rem;font-size:.85rem}.case-capabilities{grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);align-items:start;gap:clamp(2rem,6vw,6rem);display:grid}.case-capability-list{margin:0}.case-capability-list>div{border-top:1px solid var(--explain-line);grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:2rem;padding-block:1.5rem;display:grid}.case-capability-list dt{color:var(--case-accent)}.case-capability-list dd{color:var(--explain-muted);max-width:45ch}.case-design-choice{background:var(--ink);color:var(--paper);padding:clamp(1.5rem,3vw,2.75rem)}.case-design-choice h3{max-width:22ch}.case-design-choice p{color:#c9d3e9;margin-top:1.25rem;font-size:.95rem}.case-snapshot-pair,.case-version-pair{grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,4rem);display:grid}.case-snapshot-pair>section{background:var(--paper);padding:clamp(1.5rem,3vw,3rem)}.case-snapshot-pair .case-dossier{background:var(--ink);color:var(--paper)}.case-snapshot-pair p{max-width:52ch;margin-top:1.25rem}.case-snapshot-pair span{border-top:1px solid;margin-top:2rem;padding-top:1rem;font-size:.8rem;font-weight:600;display:block}.case-transaction{border-top:1px solid var(--explain-line);grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,4rem);margin-top:2rem;padding-top:2rem;display:grid}.case-transaction h3{max-width:24ch}.case-transaction p{max-width:60ch;color:var(--explain-muted)}.case-transaction ul{color:var(--case-accent);flex-wrap:wrap;gap:.5rem 1.5rem;margin:1.25rem 0 0;padding:0;font-size:.85rem;list-style:none;display:flex}.case-table-hint{display:none}.case-table-scroll{scrollbar-color:var(--case-accent) #c4cee2;scrollbar-width:thin;outline-offset:6px;overflow-x:auto}.case-table-scroll:focus-visible{outline:2px solid var(--case-accent)}.case-evidence-table{border-collapse:collapse;text-align:left;table-layout:fixed;width:100%;min-width:620px;font-size:1rem}.case-evidence-table caption{text-align:left;color:var(--explain-muted);padding-bottom:1rem;font-size:.85rem}.case-evidence-table th,.case-evidence-table td{vertical-align:top;overflow-wrap:break-word;padding:1.4rem 1.5rem;line-height:1.6}.case-evidence-table thead{background:var(--ink);color:var(--paper)}.case-evidence-table thead th{font-size:1.15rem;font-weight:500;font-family:var(--display)}.case-evidence-table tbody th{color:var(--case-accent);font-weight:500}.case-evidence-table tbody td{color:var(--explain-muted)}.case-evidence-table tbody tr{border-bottom:1px solid var(--explain-line)}.case-evidence-table tbody tr:nth-child(2n){background:#eef2ff66}.case-lifecycle{flex-wrap:wrap;align-items:center;gap:1.5rem 3rem;margin-top:2rem;display:flex}.case-lifecycle h3{font-size:1.1rem}.case-lifecycle ol{flex-wrap:wrap;gap:.75rem 2.5rem;margin:0;padding-left:1.25rem;display:flex}.case-lifecycle li{padding-left:.15rem;font-size:.85rem}.case-lifecycle li::marker{color:var(--explain-muted);font-variant-numeric:tabular-nums}.case-lifecycle code{font-size:.85rem}.case-version-pair>section{border-top:2px solid var(--case-accent);padding-top:1.5rem}.case-version-pair h3{font-size:clamp(1.5rem,2.5vw,2.2rem)}.case-version-tech{color:var(--case-accent);margin-top:1rem;font-size:.9rem;display:inline-block}.case-version-pair section>p:last-child{color:var(--explain-muted);max-width:55ch;margin-top:1rem}.case-game-systems{border-top:1px solid var(--explain-line);grid-template-columns:1fr 1fr;gap:2rem;margin-top:2rem;padding-top:1.75rem;display:grid}.case-game-systems h3{font-size:1.2rem}.case-game-systems ul{color:var(--explain-muted);grid-template-columns:1fr 1fr;gap:1rem 2rem;margin:0;padding:0;font-size:.95rem;list-style:none;display:grid}.case-layers{border-bottom:1px solid var(--explain-line);margin:0}.case-layers>div{border-top:1px solid var(--explain-line);grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:3rem;padding:1.75rem 0;display:grid}.case-layers dt{color:var(--case-accent)}.case-layers dt span{font-family:var(--font);letter-spacing:0;color:var(--explain-muted);margin-top:.75rem;font-size:.85rem;font-weight:400;display:block}.case-layers dd{max-width:65ch;color:var(--explain-muted);align-self:center}.case-reflection{background:var(--paper)}.case-reflection p{letter-spacing:-.01em;max-width:56ch;font-size:clamp(1.2rem,1.7vw,1.6rem);line-height:1.65}.case-next{background:var(--ink);color:var(--paper);padding-block:clamp(3rem,6vw,6rem)}.case-next a{justify-content:space-between;align-items:center;gap:3rem;display:flex}.case-next p{color:var(--muted);margin-bottom:1.25rem;font-size:.9rem}.case-next-title{font-family:var(--display);letter-spacing:-.035em;text-wrap:balance;max-width:20ch;font-size:clamp(2.5rem,5vw,5rem);font-weight:500;line-height:1.05;display:block}.case-next svg{stroke-width:1.5px;width:64px;height:64px}.case-next a:hover .case-next-title{text-decoration:underline;text-decoration-color:var(--pink);text-underline-offset:.12em;text-decoration-thickness:2px}@media (prefers-reduced-motion:no-preference){.case-back svg,.case-links svg{transition:transform .18s var(--ease-entry)}.case-visual-stage{animation:case-arrive .7s var(--ease-entry) both}@keyframes case-arrive{0%{opacity:.5;transform:translateY(20px)}to{opacity:1;transform:none}}}@media (width<=1100px) and (width>=761px){.case-hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2rem}.case-intro h1{font-size:clamp(3.4rem,7vw,5rem)}.case-hero--long h1{font-size:clamp(2.7rem,5vw,4rem)}.case-premise{font-size:1.5rem}.case-visual-stage{min-height:250px}.case-visual--portrait img{height:410px}.case-visual--portrait .case-visual-stage{min-height:410px}.case-facts{gap:2rem}.case-editorial-grid{grid-template-columns:.7fr 1.3fr;gap:3rem}}@media (width<=760px){.case-opening{padding-top:6rem}.case-back{margin-bottom:1.75rem}.case-hero{grid-template-columns:1fr;gap:2.25rem;padding-bottom:2rem}.case-intro h1{max-width:12ch;font-size:clamp(3.5rem,13vw,5rem)}.case-hero--long h1{max-width:16ch;font-size:clamp(2.7rem,10vw,4rem)}.case-premise{max-width:26ch;margin-top:1.5rem;font-size:1.5rem}.case-summary{max-width:48ch;margin-top:1rem;font-size:.95rem;line-height:1.65}.case-links{gap:.5rem 1.25rem;margin-top:1.5rem}.case-links a{font-size:.85rem}.case-visual-stage{min-height:0}.case-visual img{max-height:360px}.case-visual--portrait .case-visual-stage{min-height:0}.case-visual--portrait img{height:380px;max-height:none}.case-visual--illustration img{max-height:300px}.case-visual figcaption{margin-top:1rem;font-size:.7rem}.case-facts{grid-template-columns:1fr;gap:1.25rem;padding-block:1.25rem 1.75rem;font-size:.8rem}.case-facts ul{gap:.25rem 1rem}.case-navigation .case-wrap{scrollbar-width:thin;width:auto;min-height:58px;padding-inline:var(--gutter);gap:1.1rem;margin-inline:0;overflow:auto}.case-navigation a{flex-shrink:0;font-size:.78rem}.case-editorial-grid{grid-template-columns:1fr;gap:2rem}.case-section{padding-block:3.5rem}.case-section h2{max-width:15ch;font-size:2.5rem}.case-objective{font-size:1.3rem}.case-context{font-size:.95rem}.case-contribution-heading{position:static}.case-contribution-heading>p{max-width:none;margin-top:1.25rem;font-size:.85rem}.case-attribution{margin-bottom:1.5rem;font-size:.9rem}.case-contribution-detail li p{font-size:1rem}.case-contribution-detail li{padding-block:1.3rem}.case-contribution-detail li h3{font-size:1.3rem}.case-system{margin-top:1.5rem}.case-system-intro{margin-bottom:2rem;font-size:1rem}.case-system h3,.case-system dt{font-size:1.4rem}.case-capabilities,.case-snapshot-pair,.case-version-pair,.case-transaction,.case-game-systems{grid-template-columns:1fr;gap:1.5rem}.case-capability-list>div{grid-template-columns:1fr;gap:.75rem;padding-block:1.25rem}.case-capability-list dd{font-size:.95rem}.case-design-choice{padding:1.75rem}.case-system-note{margin-top:2rem;font-size:.8rem}.case-snapshot-pair>section{padding:1.75rem}.case-snapshot-pair span{margin-top:1.5rem}.case-transaction{margin-top:1.75rem;padding-top:1.5rem}.case-transaction p,.case-version-pair p,.case-layers dd{font-size:.95rem}.case-table-hint{color:var(--explain-muted);margin-bottom:.75rem;font-size:.75rem;display:block}.case-table-scroll{margin-right:calc(-1 * var(--gutter));padding-right:var(--gutter)}.case-evidence-table{min-width:580px;font-size:.9rem}.case-evidence-table th,.case-evidence-table td{padding:1rem}.case-evidence-table caption{font-size:.75rem}.case-evidence-table thead th{font-size:1rem}.case-lifecycle{gap:1rem}.case-lifecycle h3{font-size:1.1rem}.case-lifecycle ol{gap:.6rem 2rem}.case-lifecycle code{font-size:.75rem}.case-game-systems ul{grid-template-columns:1fr;gap:.75rem}.case-layers>div{grid-template-columns:1fr;gap:1rem;padding-block:1.5rem}.case-reflection p{font-size:1.2rem}.case-next a{gap:1rem}.case-next-title{font-size:2.5rem}.case-next svg{width:40px;height:40px}}@media (width<=380px){html:has(.project-case){scroll-padding-top:11rem}.case-navigation .case-wrap{grid-template-columns:1fr 1fr;gap:0 1rem;padding-block:.25rem;display:grid}.case-navigation a{min-height:40px}}@media print{.case-navigation,.case-back,.case-links,.case-next{display:none}.case-opening{padding-top:2rem}.case-section{padding-block:2rem}.case-contribution{color:#111;background:#fff}.case-contribution-heading{position:static}.case-editorial-grid{break-inside:avoid}}
