.case-page main{padding-bottom:var(--space-5)}.case-hero,.short,.case-detail{max-width:920px}.case-back{position:relative;display:inline-flex;align-items:center;justify-content:center;margin-top:var(--space-2);width:44px;height:44px;margin-left:calc(max(var(--space-3),calc((100% - 920px)/2)) - 12px);font-size:22px;font-weight:500;color:var(--text-secondary);text-decoration:none;border-radius:999px;transition:color .2s ease,top .2s ease;-webkit-tap-highlight-color:transparent}.case-back:before{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;background:radial-gradient(circle,#ac21a259,#ac21a200 72%);filter:blur(10px);opacity:0;transition:opacity .2s ease;z-index:-1;pointer-events:none}.case-back:active{color:var(--purple);top:-2px}.case-back:active:before{opacity:1}@media (hover: hover){.case-back:hover{color:var(--purple)}.case-back:hover:before{opacity:1}}.case-hero{margin-top:0;padding:var(--space-3) var(--space-3) var(--space-5)}.case-hero__tags{display:flex;gap:var(--space-1);margin-bottom:var(--space-2)}.case-hero__title{font-size:56px;font-weight:800;line-height:1.05;letter-spacing:-.01em}.case-hero__subtitle{margin:var(--space-2) 0 0;max-width:var(--measure-lg);font-size:19px;line-height:1.5;color:var(--text-secondary)}.case-cover{position:relative;margin:var(--space-4) 0 0;border-radius:var(--radius-lg);overflow:hidden}.case-cover img{display:block;width:100%}.case-cover figcaption{margin-top:var(--space-2);font-size:13px;color:var(--text-muted);text-align:center}.case-meta{display:flex;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-3) 0;margin-top:var(--space-1);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.case-meta__item{display:flex;flex-direction:column;gap:var(--space-half);max-width:220px}.case-meta__label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:600}.case-meta__value{font-size:14px;line-height:1.4;color:var(--text)}.short{margin-top:var(--space-10)}.short h2{font-size:32px;margin-bottom:var(--space-3)}.short__grid{display:grid;grid-template-columns:1.5fr 1fr;gap:var(--space-6);align-items:start}.short__text h3{font-family:var(--font-body);font-size:15px;font-weight:700;color:var(--text);margin:var(--space-3) 0 var(--space-1)}.short__text h3:first-child{margin-top:0}.short__text p{margin:0 0 var(--space-2);font-size:15px;line-height:1.65;color:var(--text-secondary)}.short__text ul{margin:0 0 var(--space-2);padding-left:var(--space-3);font-size:15px;line-height:1.65;color:var(--text-secondary)}.short__text li{margin-bottom:var(--space-1)}.short__text h3,.short__text p,.short__text ul,.short__text ol{max-width:var(--measure)}.short__refs{display:flex;flex-direction:column;gap:var(--space-2);position:sticky;top:var(--space-12)}.short-ref{aspect-ratio:16 / 10.5;border-radius:var(--radius-md);background:var(--surface);display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}.short-ref:has(img){aspect-ratio:auto;display:block}.short-ref span{font-size:13px;color:var(--text-muted);padding:0 16px}.short-ref img{width:100%;height:auto;display:block}.short__refs figure{margin:0}.short__refs figcaption{margin-top:var(--space-1);font-size:13px;color:var(--text-muted);text-align:center}.short__stats{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);margin-top:var(--space-3)}.short-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3)}.short-stat--accent{background:#d66bd024;border-color:#d66bd059;box-shadow:0 1px 2px #ac21a214,0 10px 20px -8px #ac21a259}.short-stat__value{font-family:var(--font-display);font-size:30px;font-weight:800;color:var(--text);line-height:1.1}.short-stat__label{margin-top:var(--space-1);font-size:13px;line-height:1.4;color:var(--text-secondary)}.case-detail{margin-top:var(--space-12)}.case-detail__layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:var(--space-6);align-items:start}.case-block{margin:0 0 var(--space-10)}.case-block h2{font-size:28px;margin-bottom:var(--space-3)}.case-block h3{font-size:19px;margin:var(--space-4) 0 var(--space-2)}.case-block h4{font-family:var(--font-body);font-size:15px;font-weight:700;color:var(--text);margin:var(--space-3) 0 var(--space-1)}.case-block p{font-size:16px;line-height:1.7;color:var(--text-secondary);margin:0 0 var(--space-2)}.case-block p:last-child{margin-bottom:0}.case-block ul,.case-block ol{margin:0 0 var(--space-2);padding-left:var(--space-3);font-size:16px;line-height:1.7;color:var(--text-secondary)}.case-block li{margin-bottom:var(--space-1)}.case-block strong{color:var(--text)}.case-block>h2,.case-block>h3,.case-block>h4,.case-block>p,.case-block>ul,.case-block>ol,.case-block>.case-finding,.case-block>.case-callout,.case-block>.case-kbd-table{max-width:var(--measure)}.case-block>.case-finding{max-width:calc(var(--measure) + var(--space-6))}.case-block>.case-callout{max-width:calc(var(--measure) + var(--space-6))}.case-finding{margin:var(--space-3) 0;padding-left:var(--space-6);position:relative}.case-finding__num{position:absolute;left:0;top:0;width:var(--space-4);height:var(--space-4);border-radius:50%;background:#d66bd024;border:1px solid rgba(214,107,208,.35);box-shadow:0 2px 4px #ac21a21f,0 14px 22px -10px #ac21a273;color:var(--text);font-family:var(--font-display);font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}.case-finding p{margin-bottom:0}.case-callout{display:flex;gap:var(--space-2);background:#d66bd01a;border:1px solid rgba(172,33,162,.18);box-shadow:0 1px 2px #ac21a20f,0 10px 20px -8px #ac21a238;border-radius:var(--radius-md);padding:var(--space-3);margin:var(--space-3) 0}.case-callout__icon{flex-shrink:0;font-size:18px;line-height:1.5}.case-callout p{margin:0;font-size:15px;line-height:1.6;color:var(--text)}.case-callout--todo{background:#d8c48f1a;border:1px dashed rgba(216,196,143,.5)}.case-figure{margin:var(--space-3) 0}.case-figure--wide{max-width:960px;margin-left:auto;margin-right:auto}.case-figure__frame{aspect-ratio:16 / 10;border-radius:var(--radius-md);background:repeating-linear-gradient(135deg,var(--surface),var(--surface) 10px,var(--surface-2) 10px,var(--surface-2) 20px);border:1px dashed var(--border);display:flex;align-items:center;justify-content:center;text-align:center;padding:var(--space-3)}.case-figure__label{font-size:13px;color:var(--text-muted);max-width:320px}.case-figure img{display:block;width:100%;border-radius:var(--radius-md)}.case-figure img,.case-cover,.short-ref img{box-shadow:0 0 0 1px var(--border),0 24px 60px -30px #000c}.case-cover.cover-cutout{box-shadow:none}.case-figure figcaption{margin-top:var(--space-1);font-size:13px;color:var(--text-muted);text-align:center}.case-figure-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.case-figure-row--3{grid-template-columns:1fr 1fr 1fr}.case-side-by-side{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);align-items:center;margin:var(--space-3) 0}.case-side-by-side .case-figure{margin:0}.case-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2);margin:var(--space-3) 0}.case-stat{background:#d66bd024;border:1px solid rgba(214,107,208,.35);box-shadow:0 1px 2px #ac21a214,0 10px 20px -8px #ac21a259;border-radius:var(--radius-md);padding:var(--space-3);text-align:center}.case-stat__value{font-family:var(--font-display);font-size:26px;font-weight:700;color:var(--text)}.case-stat__label{margin-top:var(--space-1);font-size:13px;color:var(--text-secondary);line-height:1.4}.case-kbd-table{width:100%;border-collapse:collapse;margin:var(--space-3) 0;font-size:14px}.case-kbd-table th,.case-kbd-table td{text-align:left;padding:var(--space-1) var(--space-2);border-bottom:1px solid var(--border)}.case-kbd-table th{color:var(--text-muted);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.03em}.case-kbd-table td:last-child,.case-kbd-table th:last-child{text-align:right}kbd{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:var(--space-half) var(--space-1)}.short h2[id],.case-block h2[id],.case-block h3[id]{scroll-margin-top:var(--space-12)}.case-toc{position:sticky;top:var(--space-12)}.case-toc--badge{padding:var(--space-3);border-radius:var(--radius-lg);background:#0c0c1299;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.08);box-shadow:0 10px 30px #12141a14,0 2px 10px #12141a0a}.case-toc__title{margin:0;font-size:11px;line-height:1;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.case-toc__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2)}.case-toc__next{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:22px;height:22px;border-radius:50%;font-size:13px;line-height:1;color:var(--text-muted);text-decoration:none;transition:color .2s ease;transform:translateY(-3px)}.case-toc__next:before{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;background:radial-gradient(circle,#ac21a259,#ac21a200 72%);filter:blur(10px);opacity:0;transition:opacity .2s ease;z-index:-1;pointer-events:none}.case-toc__next:hover{color:var(--purple)}.case-toc__next:hover:before{opacity:1}.case-toc ol{list-style:none;margin:0;padding:0}.case-toc>ol>li{margin-bottom:var(--space-2)}.case-toc>ol>li:last-child{margin-bottom:0}.case-toc a{display:block;padding:var(--space-half) 0;font-size:13px;line-height:1.4;color:var(--text-secondary);text-decoration:none;transition:color .2s ease}.case-toc>ol>li>a,.case-toc>ol>li>.case-toc__row>a{font-weight:600;color:var(--text)}.case-toc a:hover,.case-toc a.is-active{color:var(--purple)}.case-toc__group>ol{display:none}.case-toc__group.is-expanded>ol{display:block}.case-toc__row{display:flex;align-items:center;gap:var(--space-half)}.case-toc__row>a{flex:1;min-width:0}.case-toc__toggle{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:none;border:none;padding:0;cursor:pointer;color:var(--text-muted)}.case-toc__toggle:before{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .2s ease}.case-toc__toggle:hover{color:var(--purple)}.case-toc__group.is-expanded>.case-toc__row>.case-toc__toggle:before{transform:rotate(45deg)}.case-toc ol ol{margin:var(--space-half) 0 0}.case-toc ol ol a{font-size:12.5px;color:var(--text-muted)}.case-toc ol ol a:hover,.case-toc ol ol a.is-active{color:var(--purple)}.related{margin-top:var(--space-12)}.related h2{font-size:32px;margin-bottom:var(--space-3)}.related__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2)}.related .case{min-height:0}.related .case__media{position:relative;inset:auto;flex:none;aspect-ratio:16 / 10}.related .case__media img{object-position:center}.related .case.cover-cutout .case__media{background:#0e1116}.related .case.cover-cutout .case__media img{object-fit:contain}.related .tags{top:auto;right:var(--space-1);bottom:var(--space-1)}.related .case__media+.case__body,.related .case__body--bottom{flex:1;margin-top:0;padding-top:var(--space-2);background:none}.related .case__desc{min-height:2.7em}.related .case__meta{flex-direction:column;align-items:flex-start;gap:var(--space-half)}.related .case__company{margin:0}.related .case__stats{flex:none;min-height:calc(3 * 1.35em)}@media (max-width: 1100px){.case-hero__title{font-size:36px}.short__grid{grid-template-columns:1fr}.short__refs{position:static;flex-direction:row;flex-wrap:wrap}.short-ref{flex:1 1 240px}.case-stats-row{grid-template-columns:1fr}.related__grid{grid-template-columns:1fr 1fr}.related .case__stats{min-height:2.7em}.case-detail__layout{grid-template-columns:1fr}.case-toc{display:none}}@media (max-width: 640px){.case-figure-row{grid-template-columns:1fr}.short__refs{flex-direction:column}.short-ref{flex:none;width:100%}.related__grid{grid-template-columns:1fr}.related .case__desc,.related .case__stats{min-height:0}.short__stats,.case-side-by-side{grid-template-columns:1fr}}@media (max-width: 640px){.case-page .case-back{position:absolute;top:-34px;left:var(--space-1);z-index:101;margin:0}.case-page .case-hero{padding-top:var(--space-3)}.case-page .nav:not(.is-open){pointer-events:none}.case-page .nav:not(.is-open) .nav__shell{pointer-events:auto}}
