/* Portfolio: quiet film covers, explicit controls, and one focused viewer. */
.case-preview{isolation:isolate;container-type:inline-size;background:#1b1b1b;border:1px solid #73737380;box-shadow:inset 0 1px #ffffff14,0 16px 35px #0005;transition:transform .55s var(--ease),border-color .25s ease,box-shadow .3s ease}
.case-preview:after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 1px #ffffff25,inset 1px 0 #ffffff08;border-radius:inherit}
.case-cover,.case-poster,.case-card-shade{position:absolute;inset:0;width:100%;height:100%}
.case-cover{display:flex;align-items:flex-start;padding:18% 7% 0;background:linear-gradient(145deg,#353535,#171717 80%);color:#d9d9d9}
.case-cover-word{font:700 clamp(26px,11.5cqw,51px)/1.1 Display,Arial,sans-serif;letter-spacing:-.04em;white-space:pre-line}
.case-poster{object-fit:cover;filter:grayscale(1);opacity:0;transition:opacity .3s ease,transform .7s var(--ease),filter .5s ease}
.has-poster .case-poster{opacity:1}
.case-card-shade{background:linear-gradient(180deg,#0008,transparent 25%,transparent 55%,#000c);pointer-events:none}
.case-card-meta{position:absolute;inset:22px 22px auto;display:flex;justify-content:space-between;gap:12px;font:400 9px/1.5 Body,Arial,sans-serif;letter-spacing:.06em;color:#f0f0f0;text-transform:uppercase}
.case-play{position:absolute;top:50%;left:50%;width:66px;height:66px;display:grid;place-items:center;transform:translate(-50%,-50%);border:1px solid #ffffff80;border-radius:50%;background:linear-gradient(145deg,#3d3d3dcc,#161616de);box-shadow:inset 0 1px #ffffff22,0 8px 22px #0004;color:#fff;transition:background .25s ease,border-color .25s ease,color .25s ease}
.case-play svg{display:block;width:27px;height:27px}
.case-card-action{position:absolute;bottom:22px;left:22px;right:22px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #ffffff75;padding-top:15px;color:#fff;font:600 13px/1.5 Body,Arial,sans-serif}
.case-card-action>span{font:400 24px/1 Body,Arial,sans-serif}
.case-card-action svg,.case-source svg{display:block;width:22px;height:22px}
.work-description h3{font-size:20px;line-height:1.4;letter-spacing:-.025em}
.case-title-button{border:0;padding:0;background:none;color:#e5e5e5;font:inherit;text-align:left;line-height:inherit;transition:color .2s ease}
.case-title-button:hover{color:#fff}
.case-preview:focus-visible{outline:2px solid #f4f4f4;outline-offset:5px}
@media(hover:hover) and (pointer:fine){.work-card:hover .case-preview{transform:translateY(-5px);border-color:#aaa;box-shadow:0 20px 40px #0006}.work-card:hover .case-poster{transform:scale(1.025);filter:grayscale(0)}.work-card:hover .case-play{background:linear-gradient(135deg,#fff,#d9d9d9);color:#161616;border-color:#fff}}
@media(hover:none),(pointer:coarse){.work-card.is-in-view .case-poster{filter:grayscale(0)}.work-card.is-in-view .case-play{background:linear-gradient(135deg,#fff,#d9d9d9);color:#161616;border-color:#fff}}

html.case-open{overflow:hidden}
.case-dialog.work-dialog{padding:0;margin:auto;width:min(1040px,calc(100% - 48px),calc((100dvh - 118px)*9/16 + 600px));max-width:none;max-height:calc(100dvh - 48px);border:1px solid #85858580;border-radius:4px;background:radial-gradient(ellipse at 95% 0,#ffffff0a,transparent 55%),linear-gradient(135deg,#232323,#121212 65%);color:#f4f4f4;overflow:auto;overscroll-behavior:contain;box-shadow:inset 0 1px #ffffff14,0 30px 100px #0009}
.case-dialog.work-dialog[open]{display:block;animation:caseAppear .28s var(--ease)}
.work-dialog::backdrop{background:#050505b8;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.case-dialog-header{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:68px;padding:12px 20px 12px 28px;border-bottom:1px solid #ffffff21;background:linear-gradient(115deg,#303030,#1c1c1c 65%);box-shadow:inset 0 1px #ffffff0d}
.case-dialog-meta{display:flex;align-items:center;gap:18px;color:#eee}
.case-meta-index{font:700 29px/1 Display,Arial,sans-serif;letter-spacing:-.04em;padding-right:18px;border-right:1px solid #777}
.case-meta-info{display:flex;flex-direction:column;gap:4px;font:400 10px/1.4 Body,Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.case-meta-info>span:first-child{color:#aaa;font-size:8px;letter-spacing:.12em}
.case-close{flex-shrink:0;display:grid;place-items:center;width:44px;height:44px;border:1px solid #ffffff30;background:linear-gradient(145deg,#454545,#282828);box-shadow:inset 0 1px #ffffff14;border-radius:3px;color:#eee;transition:background .2s ease,border-color .2s ease}
.case-close svg{width:22px;height:22px}
.case-close:hover{background:#3a3a3a;border-color:#aaa}
.case-dialog-layout{display:grid;grid-template-columns:min(42%,calc((100dvh - 118px)*9/16)) minmax(0,1fr);align-items:start}
.case-media{min-width:0;padding:0;background:#151515;border-right:1px solid #424242}
.case-player{position:relative;aspect-ratio:9/16;width:100%;background:#080808;overflow:hidden;isolation:isolate}
.case-player video,.case-player iframe{display:block;position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:cover;background:#080808}
.case-copy{position:relative;isolation:isolate;min-width:0;padding:34px 38px 38px;align-self:stretch}
.case-copy:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('assets/grain.svg');opacity:.035}
.case-copy h2{font-size:clamp(28px,2.6vw,36px);line-height:1.17;letter-spacing:-.035em;overflow-wrap:break-word}
.case-details{margin:28px 0 0}
.case-details p{margin:0;font:400 14px/1.85 Body,Arial,sans-serif;color:#bfbfbf}
.case-details p+p{margin-top:18px}
.case-source{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;border:1px solid #ffffff45;border-radius:3px;padding:13px 16px;margin-top:28px;font-size:12px;color:#f4f4f4;background:linear-gradient(135deg,#ffffff09,#ffffff03);box-shadow:inset 0 1px #ffffff09;transition:background .2s ease,border-color .2s ease}
.case-source[hidden]{display:none}
.case-source span{font-size:21px;line-height:1}
.case-source:hover{border-color:#aaa;background:#ffffff10}
.case-video-pending{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:24px;padding:28px;text-align:center;background:#1c1c1c}
.case-pending-number{font:700 88px/1 Display,Arial,sans-serif;color:#5c5c5c;letter-spacing:-.05em}
.case-video-pending p,.case-player-notice{font-size:13px;line-height:1.7;color:#bcbcbc}
.case-player-notice{position:absolute;inset:0;display:grid;place-content:center;padding:28px;text-align:center}
.case-controls{position:absolute;inset:auto 0 0;z-index:2;padding:28px 16px 12px;background:linear-gradient(transparent,#080808b8 35%,#080808df);color:#f7f7f7;cursor:default}
.case-controls-row{display:flex;align-items:center;gap:10px}
.case-control{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;padding:0;background:none;border:0;border-radius:50%;color:inherit;transition:background .2s ease}
.case-control:hover{background:#ffffff1a}
.case-control:focus-visible{outline:2px solid white;outline-offset:3px}
.case-control svg{display:block;width:22px;height:22px}
.case-mute{margin-left:auto}
.case-time{font:400 12px/1.4 Body,Arial,sans-serif;font-variant-numeric:tabular-nums;white-space:nowrap}
.case-time>span{color:#aaa;padding-inline:3px}
.case-seek{--progress:0%;position:relative;height:44px;margin-bottom:3px}
.case-seek-track{position:absolute;left:0;right:0;top:21px;height:2px;background:#ffffff48;pointer-events:none}
.case-seek-fill{position:absolute;inset:0 auto 0 0;width:var(--progress);background:#f7f7f7}
.case-seek-head{position:absolute;left:clamp(3px,var(--progress),calc(100% - 3px));top:-5px;height:12px;width:2px;background:#fff;transform:translateX(-50%)}
.case-seek-input{position:absolute;inset:0;width:100%;height:44px;margin:0;opacity:0;cursor:pointer;touch-action:pan-y}
.case-seek:focus-within{outline:1px solid #fff;outline-offset:4px;border-radius:2px}
.case-seek:has(input:disabled){opacity:.45}
.case-buffering{position:absolute;z-index:1;top:50%;left:50%;width:34px;height:34px;margin:-17px 0 0 -17px;border:2px solid #ffffff30;border-top-color:#fff;border-radius:50%;animation:caseBuffer 1s linear infinite;pointer-events:none}
.case-buffering[hidden]{display:none}
.case-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@keyframes caseBuffer{to{transform:rotate(360deg)}}
@keyframes caseAppear{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:1000px){.work-description h3{font-size:17px}.case-card-meta{inset:17px 17px auto;font-size:8px;gap:8px}.case-card-action{left:17px;right:17px;bottom:17px}.case-copy{padding:28px}.case-copy h2{font-size:29px}}
@media(max-width:700px){.case-dialog.work-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px)}.case-dialog-layout{grid-template-columns:1fr}.case-dialog-header{padding:10px 14px 10px 20px;min-height:64px}.case-dialog-meta{font-size:9px}.case-media{padding:0;border-right:0;border-bottom:1px solid #424242}.case-player{width:100%}.case-copy{padding:25px 22px 28px}.case-copy h2{font-size:28px}.case-details{margin-top:24px}}
@media(max-width:560px){.work-grid{grid-template-columns:1fr;gap:36px}.work-description{padding-top:18px}.work-description h3{font-size:21px}.case-card-meta{inset:22px 22px auto;font-size:9px}.case-card-action{left:22px;right:22px;bottom:22px;font-size:13px}}
@media(max-width:560px){.work-card[data-case-id="02"] .case-poster{object-position:50% 20%}.case-meta-index{font-size:25px;padding-right:14px}.case-dialog-meta{gap:14px}.case-meta-info{font-size:9px}}
@media(prefers-reduced-motion:reduce){.work-card:hover .case-preview{transform:none}.work-card:hover .case-poster{transform:none}.case-dialog.work-dialog[open]{animation:none}}
