/* Approved letterpress composition, set with clean font-derived Bezier outlines. */
:root{--letterpress-red:#f50f08;--paper:#f2e9d6;--black:#050604;--brand-left:1.9423vw;--brand-top:1.08svh;--brand-width:13.243vw;--brand-height:calc(var(--brand-width)*105/225);--brand-bottom:calc(var(--brand-top) + var(--brand-height));--dialog-top:calc(var(--brand-bottom) + 16px);--rail:calc(var(--brand-left) + var(--brand-width) + 24px);--type-dark:var(--black);--type-light:var(--letterpress-red)}
.artist-signature,.rail-signature.artist-signature,.lobby-header>.artist-signature,.mobile-header>.artist-signature,.dialog-bar>.artist-signature{position:fixed;left:var(--brand-left);top:var(--brand-top);width:var(--brand-width);height:var(--brand-height);padding:0;margin:0;z-index:50;background:var(--paper);color:var(--black);display:block;transform:none;--type-dark:var(--black);--type-light:var(--paper)}
.artist-signature .type{display:block;width:100%;height:100%;overflow:hidden}
.artist-signature .glyph,.artist-signature:hover .glyph:nth-child(2n){translate:none;rotate:none;animation:none!important}
.artist-signature:hover{color:var(--black);text-decoration:none;outline:1px solid var(--paper);outline-offset:3px}
.letterpress-type{stroke:none;mask:none;-webkit-mask:none}
.letterpress-type .glyph{transform-box:fill-box;transform-origin:center}
.letterpress-type path{stroke:none}
.letterpress-type{shape-rendering:geometricPrecision}
.letterpress-type .glyph{transition:fill .38s ease,translate .65s cubic-bezier(.16,1,.3,1),rotate .65s cubic-bezier(.16,1,.3,1)}
.letterpress-type .overprint{transition:translate .6s cubic-bezier(.16,1,.3,1)}
.lobby{background:var(--letterpress-red);height:100svh;min-height:540px;--type-dark:#050604;--type-light:#f2e9d6}
.lobby-header{position:fixed;inset:0 0 auto;height:0;padding:0;z-index:50;pointer-events:none}
.lobby-header>div{position:fixed;right:2.6vw;top:3.65svh;gap:2.7vw;padding:0;pointer-events:auto;font-size:clamp(10px,1.03vw,18px);letter-spacing:.2em}
.lobby-header button:hover{text-decoration:none;opacity:.65}
.portals.letterpress-portals{position:absolute;inset:0;display:block;height:100%;width:100%;padding:0;overflow:hidden}
.letterpress-portals .portal{position:absolute;left:0;right:0;width:100%;flex:none;min-width:0;isolation:isolate;overflow:visible;border:0;background:transparent;color:var(--black);transition:none;--type-dark:#050604;--type-light:#f2e9d6}
.letterpress-portals .portal:after{display:none}
.letterpress-portals .portal-word{position:absolute;inset:auto;display:block;margin:0;padding:0;transform:none;z-index:3;pointer-events:none;transition:translate .5s cubic-bezier(.16,1,.3,1)}
.letterpress-portals .portal-image,.letterpress-portals .portal-video{position:absolute;inset:auto;display:block;object-fit:cover;object-position:center;filter:none;opacity:1;mix-blend-mode:normal;transform:none;transition:clip-path .75s cubic-bezier(.16,1,.3,1),filter .5s}
.letterpress-portals .portal-video{opacity:0;z-index:2;pointer-events:none}
.letterpress-portals .film-preview .portal-video{opacity:1}
.letterpress-portals .folio{position:absolute;inset:auto;z-index:4;font-size:clamp(10px,1.06vw,18px);letter-spacing:.08em;line-height:1.1;color:var(--black)}
.letterpress-portals .folio i{display:block;width:2.8vw;height:1px;margin-top:.9svh;background:currentColor}
.letterpress-portals .portal-paint{top:8.9633%;height:24.622%}
.letterpress-portals .portal-paint .portal-word{left:6.0624%;top:0;width:57.7398%;height:100%}
.letterpress-portals .portal-paint .portal-image{left:63.8022%;top:.8772%;width:34.1966%;height:97.807%;object-position:50% 14%}
.letterpress-portals .portal-paint .folio{left:2%;top:67.5%}
.letterpress-portals .portal-photo{top:34.2333%;height:19.8704%}
.letterpress-portals .portal-photo .portal-word{left:1.8835%;top:0;width:66.0977%;height:100%}
.letterpress-portals .portal-photo .portal-image{left:68.0400%;top:.5435%;width:26.4862%;height:95.1087%;object-position:50% 36%}
.letterpress-portals .portal-photo .folio{right:2%;top:37%;color:var(--paper);text-align:right}
.letterpress-portals .portal-film{top:54.5356%;height:18.7905%}
.letterpress-portals .portal-film .portal-word{left:1.8835%;top:-12.6437%;width:54.5615%;height:112.6437%}
.letterpress-portals .portal-film .portal-image,.letterpress-portals .portal-film .portal-video{left:56.5038%;top:0;width:41.4361%;height:93.6782%;object-position:50% 50%}
.letterpress-portals .portal-film .folio{left:2%;top:44.8%}
.letterpress-portals .portal-tattoo{top:73.3261%;height:26.1339%}
.letterpress-portals .portal-tattoo .portal-word{left:1.8246%;top:0;width:68.8052%;height:100%}
.letterpress-portals .portal-tattoo .portal-image{left:71.3949%;top:1.2397%;width:23.1313%;height:91.3223%;object-position:50% 67%}
.letterpress-portals .portal-tattoo .folio{right:2%;top:31%;color:var(--paper);text-align:right}
.letterpress-portals .portal:hover{flex:none;color:var(--black)}
.letterpress-portals .portal:hover .portal-image{transform:none;filter:none}
.letterpress-portals .portal:focus-visible{outline:1px solid var(--paper);outline-offset:-4px}
.letterpress-portals .portal:hover .overprint{translate:-3px 2px}
.letterpress-portals .portal .glyph{transition:translate .35s cubic-bezier(.16,1,.3,1),rotate .35s}
@media(hover:hover) and (pointer:fine){
 .letterpress-portals .portal:hover .portal-image{clip-path:inset(0 .65% 0 0)}
 .letterpress-portals .portal:hover .folio i{transform:scaleX(1.3)}
}
/* Stable badge, with category navigation below its reserved space. */
.rail{padding:calc(var(--brand-bottom) + 28px) 20px 24px var(--brand-left)}
.rail>.rule:first-of-type{margin-top:0}
.rail nav{width:100%}
.rail nav a{font-size:clamp(13px,1.15vw,18px)}
.rail nav a[aria-current=page]{color:var(--letterpress-red)}
.rail a:hover,.rail button:hover{color:var(--letterpress-red)}
.rail-foot{left:var(--brand-left)}
.painting-cover{--type-dark:var(--paper);--type-light:var(--letterpress-red)}
.cover-pain{left:2%;top:3%;width:96%;height:28%;z-index:5}
.cover-red{top:24%;height:70%;width:75%;left:0}
.cover-gold{height:42%;width:48%;bottom:7%;right:-4%}
.cover-spine{bottom:7%;height:42%;left:51%}
.cover-slit{top:23%}
.photo-room,.film-room{--type-dark:var(--paper);--type-light:var(--letterpress-red)}
.photo-title{top:7.5%;height:16%;left:2.5%;right:2.5%;display:flex;gap:2%;align-items:end}
.photo-title h1{width:64%;height:94%;transform:none}
.photo-title>span{display:block;width:34%;height:100%;margin:0;--type-dark:var(--letterpress-red);--type-light:var(--paper)}
.photo-room[data-series=nigredo] .photo-title h1{width:100%}
.photo-stage{top:25%;height:53%}
.culture-word{top:79%;bottom:auto;right:2.5%;width:64%;height:11.8%;--type-dark:var(--paper);--type-light:var(--letterpress-red)}
.photo-footer{bottom:2%}
.films-word{width:84%;transform:none}
.tattoos{background:var(--letterpress-red);--type-dark:var(--black);--type-light:var(--paper)}
.tattoos-word{top:6%;height:28%;transform:none}
.tattoo-room.studying{background:#0d1a3d}
.tattoo-room.studying .tattoos-word{--type-dark:var(--paper);--type-light:var(--paper)}
.tattoo-controls #ink-mode{color:var(--black)}
.tattoo-index{--type-dark:var(--black);--type-light:var(--letterpress-red)}
.transition{display:grid;grid-template-columns:1fr;grid-template-rows:repeat(4,1fr);z-index:70;overflow:hidden}
.transition>div,.transition>div:nth-child(2),.transition>div:nth-child(3){height:25svh;width:100%;padding:1.5svh 4vw;background:var(--letterpress-red);color:var(--black);--type-dark:var(--black);--type-light:var(--paper);border:0;border-bottom:1px solid #080c0e20;transform:translateX(105%);transition:transform .65s cubic-bezier(.76,0,.24,1);transition-delay:calc(var(--i)*.045s)}
.transition.covered>div{transform:translateX(0)}
.transition.leaving>div{transform:translateX(-105%)}
.dialog-bar:has(.artist-signature){height:var(--dialog-top);padding:20px 2.6vw;align-items:flex-start;justify-content:flex-end;flex-shrink:0}
.dialog-bar .artist-signature{flex:none}
.dialog-bar>button{margin-top:12px}
.index-controls{top:var(--dialog-top)}
.index-filters button[aria-pressed=true],.index-series button[aria-pressed=true]{color:var(--letterpress-red)}
#lightbox .dialog-bar{align-items:center}
#lightbox-title{margin-right:auto;margin-left:calc(var(--brand-left) + var(--brand-width));max-width:58%;font-size:12px;letter-spacing:.08em}
.contact-email{border-color:var(--letterpress-red)}
.contact-layout>img{box-shadow:9px 9px 0 -8px var(--letterpress-red)}
@media(max-width:1050px) and (min-width:701px){:root{--brand-width:16vw;--rail:calc(var(--brand-left) + var(--brand-width) + 18px)}.rail{padding-right:12px}.rail nav a{font-size:13px}}
@media(max-width:700px){
 :root{--brand-left:max(14px,env(safe-area-inset-left,0px));--brand-top:calc(8px + env(safe-area-inset-top,0px));--brand-width:120px;--brand-height:56px;--mobile-header-height:calc(114px + env(safe-area-inset-top,0px));--rail:0px}
 .lobby{height:100svh;min-height:650px}
 .lobby-header>div{top:calc(25px + env(safe-area-inset-top,0px));right:16px;gap:20px;font-size:10px}
 .portals.letterpress-portals{top:calc(78px + env(safe-area-inset-top,0px));bottom:14px;height:auto;display:grid;grid-template-rows:1.12fr 1fr .9fr 1.15fr;gap:8px;overflow:visible}
 .letterpress-portals .portal{position:relative;inset:auto;height:100%;min-height:0;overflow:visible}
 .letterpress-portals .portal .portal-word{left:3.6%;top:0;width:92.8%;height:53%;z-index:3}
 .letterpress-portals .portal .portal-image,.letterpress-portals .portal .portal-video{left:31%;top:56%;width:65.4%;height:44%;object-position:50% 14%}
 .letterpress-portals .portal .folio{left:4%;right:auto;top:auto;bottom:10%;font-size:10px}
 .letterpress-portals .portal .folio i{width:26px;margin-top:6px}
 .letterpress-portals .portal-photo .portal-image{left:38%;width:58.4%;object-position:50% 33%}
 .letterpress-portals .portal-film .portal-word{width:82%;height:59%;top:-3%}
 .letterpress-portals .portal-film .portal-image,.letterpress-portals .portal-film .portal-video{left:25%;width:71.4%;top:58%;height:42%;object-position:50% 40%}
 .letterpress-portals .portal-tattoo .portal-image{left:53%;width:43.4%;height:48%;top:52%;object-position:50% 67%}
 .letterpress-portals .portal-tattoo .portal-word{height:55%}
 .mobile-header{height:var(--mobile-header-height);grid-template-rows:70px 44px;background:var(--paper)}
 .mobile-actions{grid-column:2;height:70px;gap:20px;align-items:center}
 .mobile-disciplines{grid-row:2}
 body[data-page=tattoos] .mobile-header{background:var(--letterpress-red);color:var(--black)}
 .cover-pain{left:2%;top:5%;width:96%;height:24%}
 .cover-red{left:0;top:24%;width:91%;height:61%}
 .cover-gold{right:-10%;bottom:6%;width:64%;height:32%}
 .cover-spine{left:46%;height:32%;bottom:6%}
 .photo-title{top:11.5%;height:14%;left:3.6%;right:3.6%;gap:3%}
 .photo-title h1{width:63%;height:88%}
 .photo-title>span{width:34%;height:100%}
 .photo-stage{top:28%;height:45%}
 .culture-word{top:74%;height:12%;right:3.6%;width:91%}
 .photo-footer{bottom:2.5%;row-gap:8px}
 .photo-footer>div:first-child{grid-column:1;grid-row:2}
 .photo-footer .photo-controls{grid-column:2;grid-row:1 / span 2;align-self:end}
 .photo-footer>button{position:static;grid-column:1;grid-row:1;justify-self:start;width:max-content}
 .photo-room{min-height:640px}
 .films-word{height:155px;width:100%;margin-top:20px}
 .cinema-wrap{margin-top:0}
 .tattoos-word{top:12%;height:19%}
 .dialog-bar:has(.artist-signature){height:var(--dialog-top);padding:18px 16px}
 .dialog-bar>button{margin-top:7px}
 .index-controls{top:var(--dialog-top)}
 #lightbox .dialog-bar{height:calc(var(--dialog-top) + 35px);align-items:flex-start}
 #lightbox-title{position:absolute;left:16px;bottom:10px;max-width:calc(100% - 32px);margin:0;font-size:10px}
 .transition>div{padding:4svh 4vw}
}
@media(prefers-reduced-motion:reduce){.letterpress-portals .glyph,.letterpress-type .overprint{transition:none!important}}

.rail nav a[aria-current]:before{background:var(--letterpress-red)}

@supports(color:color(display-p3 1 0 0)){:root{--letterpress-red:color(display-p3 .955 .055 .031)}}

/* The badge changes ink and stock, never position or letter composition. */
body:is([data-page=photography],[data-page=films]) :is(.rail,.mobile-header) .artist-signature{
 --signature-paper:var(--black);--type-dark:#f7f5ed;background:var(--black);color:#f7f5ed
}
body:is([data-page=photography],[data-page=films]) :is(.rail,.mobile-header) .artist-signature:hover{color:#f7f5ed}

/* Hover reads as one selected print plate. Letter movement is small and settled. */
.letterpress-portals .portal{--plate:var(--paper);--active-dark:var(--black);--active-light:var(--letterpress-red);--active-folio:var(--black)}
.letterpress-portals .portal:before{content:'';position:absolute;inset:0;z-index:0;background:var(--plate);opacity:0;transform:scaleY(.94);transform-origin:50% 50%;transition:opacity .38s ease,transform .65s cubic-bezier(.16,1,.3,1);pointer-events:none}
.letterpress-portals :is(.portal-photo,.portal-film){--plate:var(--black);--active-dark:var(--letterpress-red);--active-light:var(--paper);--active-folio:var(--paper)}
.letterpress-portals .portal-tattoo{--active-dark:var(--letterpress-red);--active-light:var(--black)}
.letterpress-portals .portal .glyph{translate:0 var(--glyph-rise,0px);rotate:var(--glyph-turn,0deg);transition:fill .38s ease,translate .65s cubic-bezier(.16,1,.3,1),rotate .65s cubic-bezier(.16,1,.3,1)}
.letterpress-portals .portal .folio{transition:color .38s ease}
.letterpress-portals .portal .folio i{transform-origin:left;transition:transform .65s cubic-bezier(.16,1,.3,1)}
.letterpress-portals .portal:focus-visible{--type-dark:var(--active-dark);--type-light:var(--active-light);outline:1px solid var(--paper);outline-offset:-1px}
.letterpress-portals .portal:focus-visible:before{opacity:1;transform:scaleY(1)}
.letterpress-portals .portal:focus-visible .folio{color:var(--active-folio)}
@media(hover:hover) and (pointer:fine){
 .letterpress-portals .portal:hover{--type-dark:var(--active-dark);--type-light:var(--active-light)}
 .letterpress-portals .portal:hover:before{opacity:1;transform:scaleY(1)}
 .letterpress-portals .portal:hover .folio{color:var(--active-folio)}
 .letterpress-portals .portal:hover .folio i{transform:scaleX(1.5)}
 .letterpress-portals .portal:hover .portal-image{clip-path:none}
 .letterpress-portals .portal:hover .overprint{translate:3px -1px}
 .lobby.scene-entered .letterpress-portals .glyph{animation:print-settle .85s cubic-bezier(.16,1,.3,1) backwards;animation-delay:calc(var(--portal-index,0)*.07s + var(--glyph-index,0)*.016s)}
}
@media(hover:none){
 .letterpress-portals .portal:active{--type-dark:var(--active-dark);--type-light:var(--active-light)}
 .letterpress-portals .portal:active:before{opacity:1;transform:none}
 .letterpress-portals .portal:active .folio{color:var(--active-folio)}
}
@keyframes print-settle{from{opacity:0;translate:0 7px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){.letterpress-portals .portal:before,.letterpress-portals .portal .glyph,.letterpress-portals .portal .folio,.letterpress-portals .portal .folio i{transition:none!important;animation:none!important}}
