/* Shared editorial system for new cases. Existing pages do not load this file. */
@font-face{font-family:'IBM Plex Mono';src:url('../../assets/fonts/ibm-plex-mono-regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('../../assets/fonts/ibm-plex-mono-medium.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
:root{color-scheme:light;--page-bg:#fff;--text:#000;--muted:#8794aa;--case-muted-text:#65738a;--surface:#f4f4f4;--border:#d9dee4;--case-column:600px;--case-gap:40px;--case-radius:20px;--ease-out:cubic-bezier(.22,1,.36,1)}
:root[data-theme=dark]{color-scheme:dark;--page-bg:#151719;--text:#f4f5f6;--muted:#929fb2;--case-muted-text:#929fb2;--surface:#25282b;--border:#3a3f45}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--page-bg)}
.case-study{margin:0;background:var(--page-bg);color:var(--text);font:400 16px/24px 'IBM Plex Mono',monospace;letter-spacing:-.5px;-webkit-font-smoothing:antialiased;transition:background-color 180ms,color 180ms}
.case-study :is(h1,h2,h3,p,ul,ol,dl,dd,figure){margin:0;font:inherit}
.case-study :is(button,a){font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}
.case-study button{border:0;cursor:pointer}.case-study button:disabled{opacity:.35;cursor:default}
.case-study a{text-underline-position:from-font;text-underline-offset:2px}
.case-study :is(a,button,summary,[tabindex]):focus-visible{outline:2px solid #5d8ef7;outline-offset:3px}
.case-study [hidden]{display:none!important}.case-study ::selection{background:#dbe5f5;color:#000}
.case-study :is(h1,h2,h3,p,a,li,dt,dd){overflow-wrap:anywhere}
.case-shell{--frame-edge:max(60px,calc((100vw - 1320px)/2));position:relative;min-height:100vh;padding:60px var(--frame-edge)}
.case-main{width:var(--case-column);max-width:100%;margin:0 auto;display:flex;flex-direction:column;gap:var(--case-gap);animation:case-enter 240ms ease both}
.case-intro,.case-section,.case-subsection{display:flex;flex-direction:column;gap:16px;min-width:0}
.case-subsection+.case-subsection{margin-top:24px}.case-subsection>h3+p{margin-top:-8px}
.case-study h1{font-size:28px;line-height:32px;font-weight:400;letter-spacing:-.5px}
.case-study h2{font-size:20px;line-height:28px;font-weight:500;letter-spacing:-.5px}
.case-study h3{font-size:16px;line-height:24px;font-weight:500}
.case-eyebrow{color:var(--case-muted-text)}
.case-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--case-muted-text);font-size:12px;line-height:20px}
.case-tags{display:flex;flex-wrap:wrap;gap:4px;padding:0;list-style:none;min-width:0}
.case-tags li,.case-project-type{background:var(--surface);color:var(--text);border-radius:999px;padding:4px 10px}
.case-project-type{align-self:flex-start;max-width:100%;font-size:12px;line-height:20px}
.case-panel{padding:20px;border-radius:var(--case-radius);background:var(--surface);display:flex;flex-direction:column;gap:16px;min-width:0}
.case-link{align-self:flex-start;text-decoration:underline}
.case-media{width:100%;min-width:0;display:flex;flex-direction:column;gap:8px}
.case-media :is(img,video){display:block;width:100%;height:auto;max-width:100%;border-radius:var(--case-radius);background:var(--surface);object-fit:contain}
.case-cover img{aspect-ratio:5/4;object-fit:contain}
/* Metadata remains the same hue; a plain underline identifies caption links. */
.case-study figcaption,.case-note{font-size:12px;line-height:20px;color:var(--text)}
.case-list{padding-left:24px;display:flex;flex-direction:column;gap:8px}
.case-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:24px}
.case-metrics>div{display:flex;flex-direction:column;gap:8px;min-width:0}.case-metrics dt{font-weight:500}.case-metrics dd:not(.case-note){font-size:28px;line-height:32px;font-variant-numeric:tabular-nums}
.case-disclosure{border-block:1px solid var(--border);padding:16px 0}
.case-disclosure summary{display:flex;justify-content:space-between;align-items:center;gap:16px;cursor:pointer;list-style:none}
.case-disclosure summary::-webkit-details-marker{display:none}.case-disclosure summary svg{flex:none;transition:transform 200ms var(--ease-out)}
.case-disclosure[open] summary svg{transform:rotate(180deg)}.case-disclosure-body{display:flex;flex-direction:column;gap:16px;padding-top:16px}
.case-gallery{min-width:0;display:flex;flex-direction:column;gap:12px;background:var(--surface);border-radius:var(--case-radius);padding:32px 0 24px}
.case-gallery-track{position:relative;display:flex;gap:24px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:24px;list-style:none;padding:16px 24px 32px;cursor:grab;scrollbar-width:thin;scrollbar-color:var(--muted) transparent}
.case-gallery-track.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}
.case-gallery-track>li{flex:0 0 min(216px,calc(100% - 16px));scroll-snap-align:start;min-width:0;user-select:none;-webkit-user-select:none}
.case-gallery-track img{display:block;width:100%;height:auto;object-fit:contain;-webkit-user-drag:none}
.case-gallery-controls{display:flex;justify-content:center;align-items:center;gap:16px;font-size:12px;line-height:20px;font-variant-numeric:tabular-nums}
.case-gallery-controls .case-icon{background:var(--page-bg)}.case-gallery figcaption{padding-inline:24px}
.case-device{position:relative;padding:6px;border-radius:38px;background:linear-gradient(110deg,#6c707a,#22242a 18%,#454953 55%,#17191d);border:1px solid #969aa3;box-shadow:inset 0 0 0 2px #34373e,0 8px 16px #0000001a}
.case-device-display{position:relative;padding:12px 0 8px;border:3px solid #090a0c;border-radius:32px;overflow:hidden;background:#fffeed}
.case-device-display img{border-radius:22px}.case-device-island{position:absolute;top:4px;left:50%;transform:translateX(-50%);width:27%;height:9px;border-radius:999px;background:#090a0c}
.case-device-buttons{position:absolute;left:-3px;top:94px;width:2px;height:29px;background:#696d76;border-radius:2px;box-shadow:0 38px #696d76}
.case-device::after{content:'';position:absolute;right:-3px;top:116px;width:2px;height:44px;background:#696d76;border-radius:2px}
.case-icon{width:40px;height:40px;flex:none;display:grid;place-items:center;padding:8px;border-radius:8px;background:var(--surface);text-decoration:none;transition:transform 120ms,background-color 180ms}
.case-icon svg{grid-area:1/1;display:block;width:24px;height:24px}.case-icon:active{transform:scale(.94)}
.case-language{font-size:14px;line-height:16px;letter-spacing:.1px}.case-sun{opacity:0}.case-moon{opacity:1}[data-theme=dark] .case-sun{opacity:1}[data-theme=dark] .case-moon{opacity:0}
.case-back{position:fixed;top:60px;left:var(--frame-edge);z-index:5}.case-options{position:absolute;top:60px;right:var(--frame-edge);display:flex;gap:20px}.case-topbar{height:0}
.case-footer nav{display:flex;flex-wrap:wrap;gap:8px 20px}.case-footer a{white-space:nowrap}
.case-skip{position:fixed;top:-100px;left:20px;z-index:10;padding:12px;background:var(--page-bg)}.case-skip:focus{top:12px}
.case-study.is-leaving{opacity:0;transition:opacity 180ms}
@keyframes case-enter{from{opacity:0}to{opacity:1}}
@media(max-width:1223px){.case-shell{--frame-edge:20px;padding:20px}.case-topbar{height:40px;max-width:var(--case-column);margin:0 auto 40px;display:flex;justify-content:space-between;gap:10px}.case-back{position:static}.case-back.is-floating{position:fixed;top:20px;left:max(20px,calc(50vw - 300px));border:1px solid var(--border)}.case-options{position:static;margin-left:auto}.case-study h1{font-size:24px;line-height:28px}.case-main{width:100%;max-width:var(--case-column);font-size:14px;line-height:20px}.case-study h3{font-size:14px;line-height:20px}}
@media(max-width:600px){.case-gallery-track{gap:20px;padding-inline:20px;scroll-padding-inline:20px}.case-meta{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.case-main{animation:none}.case-study,.case-study.is-leaving,.case-icon,.case-disclosure summary svg{transition:none}}
