/* Studio edition: photographic stage, six paperback books, flat portfolio. */
body{background:#111210;max-width:none}body:has(.immersive-hero)>.header{position:absolute;top:20px;left:3%;right:3%;height:80px;padding:0 28px;background:#151513d9;backdrop-filter:blur(18px);border:1px solid #ffffff25;border-radius:8px;z-index:10}body:has(.immersive-hero)>.header nav{font-size:14px;gap:30px}body:has(.immersive-hero)>.header .brand img{width:170px}body:has(.immersive-hero)>.header .brief-link{background:#f1f0e9;color:#171816;border:0;border-radius:3px;padding:12px 18px}
.immersive-hero{--scene-glow:#cc6b46;--scene-accent:#b8946b;display:block;position:relative;isolation:isolate;min-height:800px;height:100svh;max-height:1100px;margin:0;overflow:hidden;background:#181713 url('./studio-background.webp') center/cover no-repeat}.immersive-hero[data-book-theme=rare]{--scene-glow:#993c32;--scene-accent:#cbb98b}.immersive-hero[data-book-theme=firsthand]{--scene-glow:#b0a797;--scene-accent:#e76553}.immersive-hero[data-book-theme=type]{--scene-glow:#d69440;--scene-accent:#eed7a6}.immersive-hero[data-book-theme=nft]{--scene-glow:#537686;--scene-accent:#ab9867}.immersive-hero[data-book-theme=wolf]{--scene-glow:#608758;--scene-accent:#d4bf75}.immersive-hero::before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at 76% 44%,var(--scene-glow),transparent 62%);mix-blend-mode:soft-light;opacity:.65;pointer-events:none}.immersive-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#080906aa,transparent 62%),linear-gradient(0deg,#090a0c88,transparent 32%);pointer-events:none}
.immersive-hero .hero-copy{position:relative;padding:clamp(190px,24vh,270px) 0 0;margin-left:5%;width:47%;height:100%;z-index:2;pointer-events:none;transition:opacity .4s,transform .5s}.immersive-hero .hero-copy a{pointer-events:auto}.immersive-hero .hero-copy .eyebrow{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:1.2px;color:#d4d8d8;font-size:12px}.immersive-hero .red-line{background:var(--scene-accent);width:20px}.immersive-hero h1{font-size:clamp(58px,6.2vw,108px);font-weight:500;line-height:1.02;letter-spacing:-.055em;margin:28px 0 25px}.immersive-hero h1 span{color:#f2efe8}.immersive-hero .intro{font-size:17px;line-height:1.6;color:#e0e0d9;margin:0 0 30px}.hero-cta-row{display:flex;align-items:center;gap:25px;flex-wrap:wrap}.immersive-hero .button.red{background:#f2f0e9;color:#171816;padding:15px 21px;border-radius:3px;gap:30px}.immersive-hero .button.red:hover{background:white}.hero-secondary{font-size:14px;color:#ecece8;border-bottom:1px solid #ffffff55;padding:10px 0}.immersive-hero .hero-bottom{position:absolute;bottom:35px;left:0;margin:0;padding:0;width:auto;color:#d2d5cc;font-size:12px}.immersive-hero .hero-bottom span:last-child{display:none}
.immersive-hero .hero-art{--edition-rail:202px;position:absolute;inset:112px 0 0 45%;background:none;border:0;overflow:visible;min-height:0;transition:left .5s}.immersive-hero #book-stage{inset:0 var(--edition-rail) 184px 0;z-index:1}.immersive-hero .book-caption{left:0;right:var(--edition-rail);bottom:145px;justify-content:center;text-align:center}.immersive-hero .book-caption strong{font-size:18px;font-weight:500;margin-top:4px}.immersive-hero .book-caption .eyebrow{font-size:12px;letter-spacing:1.4px;color:#c6c9c2}.immersive-hero .drag-hint{left:0;right:var(--edition-rail);bottom:116px;text-align:center;color:#d0d3c9;font-size:12px}.immersive-hero .hero-viewer-controls{left:0;right:var(--edition-rail);bottom:24px}.immersive-hero .viewer-actions button{background:#161715c9;border-color:#ffffff40;border-radius:3px;min-width:44px;min-height:44px;padding:7px 13px}.immersive-hero .viewer-actions [data-action=open]{background:#f2efe7;color:#171816;border-color:#f2efe7}.immersive-hero .viewer-status{color:#d1d3c9;font-size:12px}.immersive-hero .viewer-status button{color:#e0e4d9}
.immersive-hero .book-picker{position:absolute;left:auto;right:22px;top:40%;bottom:auto;transform:translateY(-50%);width:164px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:12px 10px;padding:14px;background:#10110fcc;backdrop-filter:blur(15px);border:1px solid #ffffff29;border-radius:7px;z-index:4}.immersive-hero .book-picker button{display:flex;align-items:end;justify-content:center;min-width:0;width:100%;padding:3px;border:1px solid transparent;border-radius:2px;background:transparent;opacity:.66;transition:opacity .2s,border-color .2s,transform .2s}.immersive-hero .book-picker button img{width:100%;height:auto;aspect-ratio:2/3;object-fit:contain;object-position:bottom}.immersive-hero .book-picker button.square img{aspect-ratio:1}.immersive-hero .book-picker button.active{border-color:#eee7d5;background:#ffffff12;opacity:1}.immersive-hero .book-picker button:hover{opacity:1;transform:translateY(-2px)}.immersive-hero.book-is-open .hero-art{left:5%}.immersive-hero.book-is-open .hero-copy{opacity:0;transform:translateX(-30px);visibility:hidden}.immersive-hero.book-is-open::after{background:#06080577}.immersive-hero.book-is-open #book-stage{bottom:200px}
.client-strip{display:block;padding:40px 5%;background:#131411;border-top:1px solid #ffffff16;border-bottom:1px solid #ffffff16}.client-strip>p{text-align:center;font-size:12px;letter-spacing:2px;margin-bottom:26px}.client-strip>div{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:20px}.client-strip a{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.client-strip img{width:70px;height:70px;object-fit:contain;border-radius:50%;filter:grayscale(1);transition:filter .3s}.client-strip a:hover img{filter:none}.client-strip span{font-size:12px;font-weight:400;white-space:normal;line-height:1.4;color:#d4d2ca}.client-strip a:hover span{text-decoration:underline}
.work{height:100svh;min-height:620px;padding:45px 5% 20px;display:flex;flex-direction:column;background:#111210;isolation:isolate}.portfolio-heading{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;margin-bottom:23px;gap:20px}.portfolio-heading h2{font-size:clamp(36px,4vw,58px);line-height:1.1;letter-spacing:-2px;margin-top:12px}.portfolio-close{background:none;border:1px solid #ffffff40;padding:10px 18px;font-size:14px}.work .filters{flex-shrink:0;gap:0;margin:0;border-bottom:1px solid #ffffff28;padding:0}.work .filters button{font-size:14px;padding:16px 24px;color:#aead9f;border-bottom:2px solid transparent}.work .filters button:first-child{padding-left:0}.work .filters button.active{color:#fff;border-color:#f1eee4}.portfolio-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#8c8b7d #22231f;padding:30px 18px 32px 0;outline-offset:3px}.work .project-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:40px 30px;align-items:start}.work .project-card,.work .project-card:nth-child(-n+2){grid-column:auto}.work .project-art,.work .project-card:nth-child(-n+2) .project-art{display:block;height:auto;aspect-ratio:2/3;background:transparent;overflow:visible}.work .project-card.square .project-art{aspect-ratio:1}.work .project-art img{display:block;width:100%;height:100%;object-fit:contain;object-position:top;filter:none;transition:opacity .2s;transform:none}.work .project-card:hover img,.work .project-card:focus-visible img{transform:none;opacity:.85}.work .project-meta{display:block;padding-top:12px}.work .project-meta h3{font-size:16px;line-height:1.4}.work .project-meta p{font-size:12px;margin-top:4px}.portfolio-foot{flex-shrink:0;display:flex;justify-content:space-between;padding-top:16px;border-top:1px solid #ffffff20;font-size:12px;color:#bab9ad;gap:20px}.portfolio-foot a{font-size:14px;color:#eee}.portfolio-open{overflow:hidden}.work.portfolio-active{position:fixed;inset:0;z-index:50;min-height:0;height:100dvh;margin:0}.portfolio-close[hidden]{display:none}.section-heading h2 em,.studio h2 em,.journal h2 em{font-family:var(--display);font-style:normal;color:var(--muted)}.studio h2 em{color:#6b6963}
@media(max-width:1100px) and (min-width:701px){.immersive-hero .hero-art{left:46%;--edition-rail:145px}.immersive-hero .book-picker{width:125px;right:12px;padding:9px;gap:8px}.immersive-hero h1{font-size:clamp(43px,6.2vw,68px)}.immersive-hero .hero-copy{width:45%;padding-top:205px}.immersive-hero .hero-copy .eyebrow{font-size:12px;max-width:270px}.immersive-hero .intro{font-size:16px}.immersive-hero .book-caption strong{font-size:16px}.client-strip>div{grid-template-columns:repeat(5,minmax(0,1fr));gap:25px}}
@media(max-width:700px){body:has(.immersive-hero)>.header{top:16px;left:5%;right:5%;height:66px;padding:0 15px}body:has(.immersive-hero)>.header .brand img{width:145px}body:has(.immersive-hero)>.header nav{top:72px;background:#141610;border:1px solid #ffffff30;border-radius:5px}.immersive-hero{min-height:0;height:auto;max-height:none;padding-bottom:840px;background-position:62% center}.immersive-hero .hero-copy{padding-top:125px;margin-left:6%;width:88%;height:auto}.immersive-hero h1{font-size:clamp(42px,9.6vw,67px);line-height:1.05;letter-spacing:-.045em;margin:24px 0 20px}.immersive-hero .intro{font-size:16px;margin-bottom:22px}.hero-cta-row{gap:18px}.immersive-hero .button.red{padding:13px 15px;gap:18px}.immersive-hero .hero-art{--edition-rail:0px;inset:auto 0 0;height:840px;left:0;min-height:0}.immersive-hero #book-stage{inset:0 0 400px}.immersive-hero .book-caption{bottom:355px;left:5%;right:5%}.immersive-hero .drag-hint{bottom:328px;left:3%;right:3%}.immersive-hero .hero-viewer-controls{bottom:226px;left:3%;right:3%}.immersive-hero .book-picker{left:50%;right:auto;top:auto;bottom:18px;transform:translateX(-50%);width:172px;gap:6px 12px;padding:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.immersive-hero .book-picker button{height:48px;padding:2px}.immersive-hero .book-picker button img{height:100%;width:auto;max-width:100%;aspect-ratio:auto}.immersive-hero .hero-bottom{display:none}.immersive-hero.book-is-open .hero-copy{opacity:1;visibility:visible;transform:none}.immersive-hero.book-is-open .hero-art{left:0}.immersive-hero.book-is-open #book-stage{bottom:400px}.client-strip>div{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 12px}.client-strip>div a:last-child{grid-column:2}.client-strip img{width:58px;height:58px}.client-strip span{font-size:12px}.work{padding:26px 5% 16px;min-height:580px}.portfolio-heading{margin-bottom:20px}.portfolio-heading h2{font-size:36px}.portfolio-close{padding:8px 10px;font-size:12px}.work .filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:stretch}.work .filters button,.work .filters button:first-child{padding:12px 4px;font-size:14px;line-height:1.35;text-align:left}.work .project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 16px}.portfolio-scroll{padding:22px 8px 25px 0}.work .project-meta h3{font-size:14px}.portfolio-foot a{font-size:12px}.dialog-book-stage{height:370px}}
@media(prefers-reduced-motion:reduce){.immersive-hero,.immersive-hero *{transition:none!important}}

.portfolio-empty{grid-column:1/-1;padding:45px 0;font-size:16px}.work .filters{flex-wrap:wrap}@media(max-width:700px){.work .filters{display:flex;flex-wrap:wrap;gap:0 16px}.work .filters button,.work .filters button:first-child{padding:10px 0;white-space:nowrap}}

/* Portfolio covers open as images only. */
#project-dialog.cover-lightbox{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;inset:0;padding:30px 65px;border:0;background:#090909ef;overflow:hidden;outline:none}
#project-dialog.cover-lightbox[open]{display:flex;align-items:center;justify-content:center}
#project-dialog.cover-lightbox::backdrop{background:#000d}
.cover-lightbox #dialog-image{width:auto;height:auto;max-width:100%;max-height:calc(100dvh - 60px);object-fit:contain;margin:auto;display:block}
.cover-lightbox .dialog-close{position:absolute;z-index:1;top:18px;right:18px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #ffffff55;border-radius:50%;background:#151515;color:white;font-size:30px;line-height:1}
@media(max-width:700px){#project-dialog.cover-lightbox{padding:72px 16px 24px}.cover-lightbox #dialog-image{max-height:calc(100dvh - 96px)}}
