@font-face{font-family:'SoulRisse Brand';src:url('/assets/soulrisse-brand.woff2') format('woff2');font-weight:300;font-display:swap}
.client-brand{margin:0;line-height:1.1}.client-brand.brand-soul{font-family:'SoulRisse Brand',sans-serif;font-weight:300;letter-spacing:.08em;color:#a954df}.client-brand.brand-whey{font-family:'Saira Condensed',sans-serif;font-weight:900;letter-spacing:-.02em;color:#16150f}.client-brand.brand-glam img{width:100%;max-width:420px;height:auto;display:block}.project-sheet-open{overflow:hidden!important}.project-sheet{box-sizing:border-box;position:fixed;inset:0;width:min(1200px,94vw);max-width:none;max-height:90svh;margin:auto;padding:0;border:0;background:#f5f1e8;color:#0a0a0a;overflow:auto;overscroll-behavior:contain;box-shadow:0 40px 150px #0009;font-family:'IBM Plex Mono',sans-serif}.project-sheet::backdrop{background:#000b;backdrop-filter:blur(12px)}.project-sheet[open]{animation:sheet-open .45s cubic-bezier(.2,.8,.2,1)}@keyframes sheet-open{from{opacity:0;transform:perspective(1500px) translateY(55px) rotateX(6deg)}to{opacity:1;transform:none}}.sheet-bar{position:sticky;top:0;z-index:3;background:#ffd400;color:#0a0a0a;display:flex;align-items:center;justify-content:space-between;padding:18px 28px;font:12px 'IBM Plex Mono',monospace;border-bottom:1px solid}.sheet-close{border:0;background:#0a0a0a;color:#ffd400;padding:14px 20px;cursor:pointer;font:12px 'IBM Plex Mono',monospace}.sheet-content{padding:48px 5% 55px}.sheet-kicker{font:12px 'IBM Plex Mono';margin-bottom:22px}.project-sheet .client-brand{font-size:clamp(38px,5vw,72px);text-transform:none;max-width:100%;margin:0 0 24px}.sheet-intro{font:clamp(23px,3vw,34px)/1.35 'IBM Plex Mono';max-width:780px;margin:0 0 40px;letter-spacing:-.035em}.sheet-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}.sheet-story dl{display:flex;justify-content:space-between;gap:20px;padding:20px 0;border-block:1px solid #0a0a0a33;margin:0 0 24px}.sheet-story dt{font:11px 'IBM Plex Mono';margin-bottom:8px}.sheet-story dd{margin:0;font:16px 'IBM Plex Mono'}.sheet-body p{font:17px/1.65 'IBM Plex Mono';margin:0 0 20px;white-space:pre-wrap}.sheet-grid figure{margin:0;perspective:1200px;padding:15px 0}.sheet-grid figure img{width:100%;height:auto;box-shadow:12px 16px 0 #0001;transform:rotateY(-6deg) rotateZ(2deg)}.sheet-visit{display:flex;justify-content:space-between;gap:50px;width:fit-content;background:#0a0a0a;color:#ffd400;padding:18px 24px;text-decoration:none;font:18px 'IBM Plex Mono';margin-top:32px}.sheet-visit:hover{background:#ffd400;color:#0a0a0a}.project-sheet[data-theme=soul]{background:#eee8f4}.project-sheet[data-theme=glam]{background:#f4ecdf}.project-sheet[data-theme=whey]{background:#e8cc83}.project-sheet :focus-visible{outline:3px solid #b00020;outline-offset:4px}
body[data-page=work] .doc-header{min-height:690px;padding:70px 6% 85px;justify-content:flex-start}body[data-page=work] .doc-header .kinetic-mark{display:none}body[data-page=work] .doc-header .doc-meta{margin-bottom:50px}body[data-page=work] .doc-header h1{max-width:100%;font-size:clamp(80px,12vw,190px);line-height:1.02;margin-bottom:35px}body[data-page=work] .doc-header .dek{align-self:flex-end;max-width:510px;font-size:18px}body[data-page=work] .filing{padding:65px 5% 100px;background:#0a0a0a}body[data-page=work] .filing .head{margin-bottom:65px;padding:0;font:12px 'IBM Plex Mono'}body[data-page=work] .filing .head .title{font:14px 'IBM Plex Mono';letter-spacing:.1em;text-transform:uppercase}body[data-page=work] #rows{gap:85px;display:block}.work-feature{display:block;text-decoration:none;color:inherit;margin-bottom:85px;outline-offset:8px}.work-feature:last-child{margin-bottom:0}.work-feature-top{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;padding:0 1% 27px}.work-feature .client-brand{font-size:clamp(34px,4.5vw,75px);max-width:65%}.work-feature[data-theme=whey] .client-brand{color:#e0c16e}.work-feature .client-brand img{width:330px;max-width:100%;height:auto}.work-feature-meta{font:12px/1.7 'IBM Plex Mono';text-align:right;color:#c0bdb3}.work-feature-image{perspective:1500px;padding:6% 7%;overflow:hidden;background:#1f192e}.work-feature[data-theme=glam] .work-feature-image{background:#eadfcb}.work-feature[data-theme=whey] .work-feature-image{background:#d9be70}.work-feature-image img{width:100%;height:auto;display:block;transform:rotateY(var(--tilt,-3deg)) rotateX(var(--lift,0deg)) rotateZ(-1deg);transition:transform .45s ease;box-shadow:0 25px 40px #0004}.work-feature:nth-child(even) .work-feature-image img{transform:rotateY(var(--tilt,3deg)) rotateX(var(--lift,0deg)) rotateZ(1deg)}.work-feature-bottom{display:flex;justify-content:space-between;gap:25px;padding:24px 1% 0;border-bottom:1px solid #ffffff30;padding-bottom:35px}.work-feature-bottom p{font:18px/1.5 'IBM Plex Mono';max-width:650px;color:#d6d2c9;margin:0}.work-feature-bottom span{font:13px 'IBM Plex Mono';white-space:nowrap;color:#ffd400;align-self:center}.work-feature:focus-visible{outline:3px solid #ffd400}.work-feature:hover .work-feature-bottom span{text-decoration:underline}
@media(max-width:700px){.sheet-grid{grid-template-columns:1fr;gap:25px}.sheet-content{padding:30px 6%}.project-sheet{width:94vw;max-height:92svh}.sheet-bar{padding:12px 16px}.sheet-story dl{flex-wrap:wrap}.sheet-grid figure{grid-row:1}.sheet-visit{width:100%;box-sizing:border-box}.sheet-body p{font-size:16px}body[data-page=work] .doc-header{min-height:auto;padding:45px 6% 75px}body[data-page=work] .doc-header h1{font-size:clamp(65px,14vw,100px)}body[data-page=work] .doc-header .dek{align-self:flex-start}body[data-page=work] .doc-header .doc-meta{margin-bottom:40px}.work-feature-top{align-items:start;flex-direction:column;gap:18px}.work-feature .client-brand{max-width:100%;font-size:38px}.work-feature .client-brand img{width:260px}.work-feature-meta{text-align:left}.work-feature-bottom{flex-direction:column;gap:16px}.work-feature-bottom span{align-self:flex-start}.work-feature-bottom p{font-size:16px}.work-feature{margin-bottom:55px}}
@media(prefers-reduced-motion:reduce){.project-sheet[open]{animation:none}.work-feature-image img{transition:none;transform:none!important}}.motion-off .work-feature-image img{transform:none!important}
.client-brand.brand-tenfold,.client-brand.brand-scuba,.client-brand.brand-arc,.client-brand.brand-dental{font-family:'IBM Plex Mono',sans-serif;font-weight:600;letter-spacing:-.045em}
.project-sheet[data-theme=tenfold]{background:#f5eddf}.project-sheet[data-theme=scuba]{background:#e6f0ee}.project-sheet[data-theme=arc]{background:#edf0ee}.project-sheet[data-theme=dental]{background:#e7e9e3}
.work-feature[data-theme=tenfold] .work-feature-image{background:#8d3d27}.work-feature[data-theme=scuba] .work-feature-image{background:#123d42}.work-feature[data-theme=arc] .work-feature-image{background:#3d4a48}.work-feature[data-theme=dental] .work-feature-image{background:#1f2927}
.project-reserved-preview{box-sizing:border-box;min-height:290px;aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:30px;border:1px solid #a6b4ad44;background:linear-gradient(135deg,#23332b,#101c17);color:#dce4db}
.project-reserved-preview>span{font:11px 'IBM Plex Mono',monospace;letter-spacing:.15em;color:#abb8ae;margin-bottom:25px}.project-reserved-preview>strong{font:clamp(26px,4vw,52px)/1.1 'IBM Plex Mono',sans-serif;letter-spacing:-.04em}.project-reserved-preview>p{font:14px/1.5 'IBM Plex Mono',sans-serif;color:#abb8ae;margin-top:16px}.work-feature-reserved .work-feature-bottom span{color:#a5b4a9}.work-feature-reserved:hover .work-feature-bottom span{text-decoration:none}.sheet-pending{margin-top:32px;padding:18px 0;border-top:1px solid #0a0a0a33;font:14px 'IBM Plex Mono',monospace}.cms-case-preview>img{width:100%;height:auto;display:block}

/* Brand contrast comes first; device mode only nudges the same palette. */
:is(body[data-page=case],.project-sheet){
 --case-bg:var(--brand-bg-light,#e9e5da);--case-surface:var(--brand-surface-light,#efebe1);
 --case-ink:var(--brand-ink-light,#202720);--case-muted:var(--brand-muted-light,#5d665d);
 --case-accent:var(--brand-accent-light,#385348);--case-accent-ink:var(--brand-accent-ink-light,#fffdf4);
 --case-line:color-mix(in srgb,var(--case-ink) 22%,transparent);--case-gold:var(--brand-gold,#b89953);
 --case-mark-filter:var(--brand-mark-light,none);color-scheme:var(--brand-scheme-light,light);
}
/* Deeper than Tenfold's tomato red, so the cream crust and site image stand out. */
:is(body[data-project-theme=tenfold],.project-sheet[data-theme=tenfold]){
 --brand-bg-light:#852c25;--brand-surface-light:#923027;--brand-ink-light:#fff1d8;--brand-muted-light:#edc6b4;--brand-accent-light:#ffda9c;--brand-accent-ink-light:#532019;
 --brand-bg-dark:#75271f;--brand-surface-dark:#822c24;--brand-ink-dark:#fff1d8;--brand-muted-dark:#edc6b4;--brand-accent-dark:#ffda9c;--brand-accent-ink-dark:#532019;
 --brand-scheme-light:dark;--brand-scheme-dark:dark;--brand-mark-light:invert(1);--brand-mark-dark:invert(1);
}
:is(body[data-project-theme=scuba],.project-sheet[data-theme=scuba]){
 --brand-bg-light:#174854;--brand-surface-light:#1d5260;--brand-ink-light:#edf6ec;--brand-muted-light:#bbd7d5;--brand-accent-light:#d5ecae;--brand-accent-ink-light:#173e47;
 --brand-bg-dark:#123e49;--brand-surface-dark:#194853;--brand-ink-dark:#edf6ec;--brand-muted-dark:#bbd7d5;--brand-accent-dark:#d5ecae;--brand-accent-ink-dark:#173e47;
 --brand-scheme-light:dark;--brand-scheme-dark:dark;--brand-mark-light:invert(1);--brand-mark-dark:invert(1);
}
:is(body[data-project-theme=arc],.project-sheet[data-theme=arc]){
 --brand-bg-light:#b9cfd0;--brand-surface-light:#c5d9da;--brand-ink-light:#183a3e;--brand-muted-light:#355358;--brand-accent-light:#245d65;--brand-accent-ink-light:#f6faf6;
 --brand-bg-dark:#afc6c7;--brand-surface-dark:#bccfd0;--brand-ink-dark:#183a3e;--brand-muted-dark:#355358;--brand-accent-dark:#245d65;--brand-accent-ink-dark:#f6faf6;
 --brand-scheme-dark:light;
}
:is(body[data-project-theme=dental],.project-sheet[data-theme=dental]){
 --brand-bg-light:#c4d0b9;--brand-surface-light:#d0dbc5;--brand-ink-light:#293d30;--brand-muted-light:#405442;--brand-accent-light:#355740;--brand-accent-ink-light:#f6f9ed;
 --brand-bg-dark:#b9c6ad;--brand-surface-dark:#c5d1b9;--brand-ink-dark:#293d30;--brand-muted-dark:#405442;--brand-accent-dark:#355740;--brand-accent-ink-dark:#f6f9ed;
 --brand-scheme-dark:light;
}
/* Soulrisse stays lavender in both modes, contrasting its dark website preview. */
:is(body[data-project-theme=soul],.project-sheet[data-theme=soul]){
 --brand-bg-light:#dfcfea;--brand-surface-light:#e9daf3;--brand-ink-light:#34213f;--brand-muted-light:#685172;--brand-accent-light:#683986;--brand-accent-ink-light:#fff8ff;--brand-gold:#a57f3e;
 --brand-bg-dark:#d2bfdf;--brand-surface-dark:#decaec;--brand-ink-dark:#34213f;--brand-muted-dark:#60486b;--brand-accent-dark:#683986;--brand-accent-ink-dark:#fff8ff;
 --brand-scheme-dark:light;
}
:is(body[data-project-theme=glam],.project-sheet[data-theme=glam]){
 --brand-bg-light:#e2c4c6;--brand-surface-light:#ecd1d0;--brand-ink-light:#4c2634;--brand-muted-light:#65434d;--brand-accent-light:#713650;--brand-accent-ink-light:#fff4eb;--brand-gold:#a48136;
 --brand-bg-dark:#d6b6bb;--brand-surface-dark:#e1c1c5;--brand-ink-dark:#4c2634;--brand-muted-dark:#603d49;--brand-accent-dark:#713650;--brand-accent-ink-dark:#fff4eb;
 --brand-scheme-dark:light;
}
:is(body[data-project-theme=whey],.project-sheet[data-theme=whey]){
 --brand-bg-light:#d7c58f;--brand-surface-light:#e3d3a4;--brand-ink-light:#342e1b;--brand-muted-light:#574b2d;--brand-accent-light:#625020;--brand-accent-ink-light:#fff8e5;--brand-gold:#aa8536;
 --brand-bg-dark:#cbb880;--brand-surface-dark:#d8c690;--brand-ink-dark:#342e1b;--brand-muted-dark:#51452b;--brand-accent-dark:#625020;--brand-accent-ink-dark:#fff8e5;
 --brand-scheme-dark:light;
}
@media(prefers-color-scheme:dark){
 :is(body[data-page=case],.project-sheet){
  --case-bg:var(--brand-bg-dark,#ded9cb);--case-surface:var(--brand-surface-dark,#e7e1d4);
  --case-ink:var(--brand-ink-dark,#202720);--case-muted:var(--brand-muted-dark,#5d665d);
  --case-accent:var(--brand-accent-dark,#385348);--case-accent-ink:var(--brand-accent-ink-dark,#fffdf4);
  --case-mark-filter:var(--brand-mark-dark,none);color-scheme:var(--brand-scheme-dark,light);
 }
}
body[data-page=case]{background:var(--case-bg);color:var(--case-ink)}
/* Lead with the website itself, then a compact project introduction. */
body[data-page=case] .doc-page .case-cover{display:block;margin:16px 3.5% 0;border:1px solid var(--case-line);background:var(--case-surface);overflow:hidden}
body[data-page=case] .case-cover>a{display:block;color:inherit}
body[data-page=case] .case-cover img{display:block;width:100%;height:auto;max-width:100%;object-fit:contain;transform:none;box-shadow:none;border:0}
body[data-page=case] .case-cover>a:focus-visible{outline-offset:-4px}
body[data-page=case] .doc-page .case-hero{display:flex;flex-direction:row;align-items:center;gap:32px;min-height:0;padding:28px 3.5% 30px;background:var(--case-bg);border-bottom:1px solid var(--case-line)}
body[data-page=case] .doc-page .page-header:after{display:none}
body[data-page=case] .case-hero-copy{flex:1;min-width:0;position:relative;z-index:1}
body[data-page=case] .case-back{display:inline-block;color:var(--case-muted);font:12px/1.5 var(--reading-font,'IBM Plex Mono',monospace);text-decoration:none;margin-bottom:8px}
body[data-page=case] .case-back:hover{color:var(--case-accent)}
body[data-page=case] .cms-case-meta{display:flex;flex-wrap:wrap;color:var(--case-muted);gap:8px 24px;font:12px/1.6 var(--reading-font,'IBM Plex Mono',monospace);padding:10px 0}
body[data-page=case] .case-hero h1{color:var(--case-ink);font-size:clamp(48px,6.5vw,96px);max-width:100%;margin:8px 0 16px;overflow-wrap:normal}
body[data-page=case] .case-hero .dek{font:16px/1.7 var(--reading-font,'IBM Plex Mono',monospace);color:var(--case-muted);max-width:780px;margin:0}
/* Artwork belongs to the project, outside the constant portfolio navigation. */
body[data-page=case] .case-project-object{display:block;flex:none;width:220px;height:170px;min-width:0;min-height:0;max-width:none;max-height:none;margin:0;position:relative;isolation:isolate;pointer-events:none}
body[data-page=case] .case-project-object[hidden]{display:none}
body[data-page=case] .case-project-object:not([data-object-ready=true]){visibility:hidden}
body[data-page=case] .case-project-object>svg{width:100%;height:100%;display:block}
body[data-page=case] .project-hero-object canvas{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:pan-y;transition:opacity .25s ease}
body[data-page=case] .doc-page .case-details{padding:24px 3.5% 38px;background:var(--case-bg)}
body[data-page=case] .cms-case-preview{border:1px solid var(--case-line);overflow:hidden;background:var(--case-surface)}
body[data-page=case] .cms-case-preview>img{box-shadow:none;transform:none}
body[data-page=case] .case-details>p{max-width:840px;font:16px/1.8 var(--reading-font,'IBM Plex Mono',monospace);margin:10px 0 22px}
:is(body[data-page=case],.project-sheet) :is(.sheet-visit,.sheet-close){background:var(--case-accent);color:var(--case-accent-ink);border:1px solid var(--case-accent);font-family:var(--reading-font,'IBM Plex Mono',monospace)}
:is(body[data-page=case],.project-sheet) .sheet-visit:hover{background:var(--case-ink);color:var(--case-bg);border-color:var(--case-ink)}
body[data-page=case] .cms-case-link{background:transparent;color:var(--case-ink);border:1px solid var(--case-line);font:14px/1.5 var(--reading-font,'IBM Plex Mono',monospace);letter-spacing:0;padding:12px 18px;margin:18px 12px 0 0}
body[data-page=case] .cms-case-link:hover{border-color:var(--case-accent);color:var(--case-accent)}
body[data-page=case] .cms-hazard{display:none}
body[data-page=case] .cms-footer{background:var(--case-surface);color:var(--case-muted);border-top:1px solid var(--case-line)}
body[data-page=case] .cms-footer :is(a,h3){color:var(--case-ink)}
body[data-page=case] .cms-footer-bottom{border-color:var(--case-line)}
:is(body[data-page=case],.project-sheet) :focus-visible{outline:2px solid var(--case-accent);outline-offset:5px}
.project-sheet[data-theme]{background:var(--case-bg);color:var(--case-ink)}
.project-sheet .sheet-bar{background:var(--case-surface);color:var(--case-ink);border-color:var(--case-line)}
.project-sheet .sheet-kicker,.project-sheet .sheet-story dt{color:var(--case-muted)}
.project-sheet .sheet-story dl,.project-sheet .sheet-pending{border-color:var(--case-line)}
.project-sheet .client-brand{color:var(--case-accent)}
.project-sheet .sheet-grid figure img{box-shadow:none;transform:none;border:1px solid var(--case-line)}
.project-sheet :is(.sheet-intro,.sheet-body p,.sheet-story dd){font-family:var(--reading-font,'IBM Plex Mono',monospace)}
.project-sheet .sheet-intro{font-size:clamp(19px,2.3vw,28px);line-height:1.55;letter-spacing:0}
@media(max-width:760px){
 body[data-page=case] .doc-page .case-cover{margin:10px 4% 0}
 body[data-page=case] .doc-page .case-hero{min-height:0;padding:22px 4% 24px;gap:16px;align-items:flex-start;flex-wrap:wrap}body[data-page=case] .case-hero-copy{flex-basis:100%}
 body[data-page=case] .case-hero h1{font-size:clamp(42px,10.5vw,70px);margin:8px 0 14px}
 body[data-page=case] .case-back{margin-bottom:6px}
 body[data-page=case] .case-hero .dek{font-size:14px;line-height:1.7}
 body[data-page=case] .case-project-object{width:180px;height:130px;margin-left:auto}
 body[data-page=case] .doc-page .case-details{padding:20px 4% 30px}
 body[data-page=case] .case-details>p{font-size:14px}
 body[data-page=case] .cms-case-link{font-size:12px;padding:12px 14px}
}

@media(prefers-reduced-motion:reduce){body[data-page=case] .project-hero-object canvas{transition:none}}
