/* Third pass: clean letterforms, displaced print edges, precise interaction. */
.type{mask-image:none;-webkit-mask-image:none}
.lobby-footer{display:grid;grid-template-columns:1fr auto 1fr}
.lobby-footer:after{content:''}
.portal-photo,.portal-photo:hover,.portal-photo:focus-visible{color:var(--black)}
.portal:not(.portal-photo),.portal:not(.portal-photo):hover{color:var(--paper)}
.portal-word .glyph{translate:var(--glyph-shift,0px) 0;rotate:var(--glyph-angle,0deg);transition:translate .24s cubic-bezier(.2,.8,.2,1),rotate .3s}
.portal:focus-visible{outline-offset:-8px;outline:1px solid currentColor}
.portal:after{content:'';position:absolute;inset:0;z-index:0;background:linear-gradient(172deg,transparent 0 68%,#0000000b 68.1% 69%,transparent 69.1%);pointer-events:none}
.portal-enter b{display:inline-block;transition:transform .35s cubic-bezier(.16,1,.3,1)}
.portal:hover .portal-enter b{transform:translate(4px,-4px) rotate(-7deg)}
.portal-enter{padding-bottom:5px}
.portal-enter:after{content:'';height:1px;width:100%;background:currentColor;position:absolute;bottom:0;left:0;transform:scaleX(0);transform-origin:right;transition:transform .35s}
.portal:hover .portal-enter{text-decoration:none}
.portal:hover .portal-enter:after{transform:scaleX(1);transform-origin:left}
.portal .portal-cut{opacity:0;pointer-events:none;z-index:2;clip-path:polygon(0 34%,100% 31%,100% 42%,0 45%,0 70%,100% 67%,100% 74%,0 77%);transition:opacity .45s,transform .7s cubic-bezier(.16,1,.3,1)}
.portal-video{position:absolute;bottom:6%;right:5%;width:82%;height:31%;object-fit:cover;opacity:0;pointer-events:none;z-index:2;transition:opacity .45s;filter:saturate(.75)}
.portal-film.film-preview .portal-video{opacity:1}
.folio i{transform-origin:right;transition:transform .6s cubic-bezier(.16,1,.3,1)}
.portal:hover .folio i{transform:scaleX(1.8)}
.portal-photo:hover .portal-second{filter:contrast(1.03);translate:-3px -6px}
.portal-second{transition:translate .7s cubic-bezier(.16,1,.3,1)}
@media(hover:hover) and (pointer:fine){
 .portal:hover .portal-cut{opacity:.9;transform:translate(calc(var(--mx,0)*18px + 9px),calc(var(--my,0)*8px - 5px)) rotate(.7deg)!important;filter:none}
 .lobby.scene-entered .portal-word .glyph{animation:letter-arrive .65s cubic-bezier(.16,1,.3,1) backwards;animation-delay:calc(var(--portal-index,0)*.08s + var(--glyph-index,0)*.018s)}
}
@keyframes letter-arrive{from{opacity:0;translate:-16px 8px;rotate:-2deg}to{opacity:1;translate:0 0;rotate:0deg}}
.page:not(.lobby).scene-entered :is(.films-word,.tattoos-word,.photo-title,.cover-pain,.cover-tings){animation:scene-compose 1.1s cubic-bezier(.16,1,.3,1) backwards}
@keyframes scene-compose{from{opacity:.25;filter:blur(2px);translate:0 22px}to{opacity:1;filter:none;translate:0 0}}
.rail-signature .glyph:nth-child(2n){transition:translate .5s cubic-bezier(.16,1,.3,1)}
.rail-signature:hover .glyph:nth-child(2n){translate:0 -3px}
.rail nav a{transition:translate .3s}
.rail nav a:after,.index-nav a:after{content:'';position:absolute;left:0;right:0;bottom:-5px;height:2px;background:currentColor;transform:scaleX(0) rotate(-2deg);transform-origin:right;transition:transform .35s cubic-bezier(.16,1,.3,1)}
.rail nav a:hover{translate:3px 0}
.rail nav a:hover:after,.index-nav a:hover:after{transform:scaleX(1) rotate(-2deg);transform-origin:left}
.index-nav a{position:relative;width:max-content}
.rail>button{transition:letter-spacing .3s}
.rail>button:hover{letter-spacing:.18em}
.open-series b{display:inline-block;transition:translate .4s}
.open-series:hover b{translate:8px 0}
.section-line{position:relative;z-index:8}
.sequence-controls button,.photo-controls button,.tattoo-controls>button:first-child,.tattoo-controls>button:nth-child(3),.lightbox-controls button{transition:translate .25s,rotate .25s}
.sequence-controls button:hover,.photo-controls button:hover,.lightbox-controls button:hover{translate:3px 0;rotate:-4deg}
.sequence-controls button:first-child:hover,.photo-controls button:first-child:hover,.lightbox-controls button:first-child:hover{translate:-3px 0;rotate:4deg}
.lens{border-color:var(--paper);box-shadow:0 0 0 1px #0008;transition:width .35s,height .35s;}
.lens:before{content:'';position:absolute;inset:-7px;border-left:1px solid var(--blue);border-bottom:1px solid var(--blue)}
.lens:after{color:var(--paper);text-shadow:0 0 2px var(--black)}
.painting-main.inspecting .lens:before{inset:-12px}
.painting-main.inspecting~.inspection-detail{color:var(--blue)}
.inspection-detail>div{border:1px solid #080c0e33;box-shadow:7px 7px 0 -6px var(--blue);transition:box-shadow .4s}
.inspection:has(.painting-main:hover) .inspection-detail>div{box-shadow:12px 9px 0 -7px var(--blue)}
.inspection:has(.painting-main:hover) .scapes-word .glyph:nth-child(2n){translate:4px 0}
.paint-strip button{transition:opacity .25s,translate .3s;opacity:.6}
.paint-strip button:hover,.paint-strip button.selected{opacity:1;translate:0 -3px}
.art-card{--card-turn:0deg;--card-lift:0px}
.art-card .art-window{position:relative;display:block;margin:0;line-height:0;isolation:isolate}
.art-window:before{content:'';position:absolute;inset:8px -7px -8px 7px;border:1px solid currentColor;opacity:0;transform:rotate(1deg);transition:opacity .4s,transform .6s;pointer-events:none;z-index:-1}
.art-card:hover .art-window:before{opacity:.5;transform:rotate(-.6deg)}
.art-card .art-window img{width:100%;height:auto;max-height:620px;transform-origin:35% 80%;transition:transform .6s cubic-bezier(.16,1,.3,1),filter .4s}
.art-card:hover .art-window img{transform:translateY(var(--card-lift,-5px)) rotate(var(--card-turn,-.7deg));filter:contrast(1.025)}
.art-corner{position:absolute;right:-5px;top:-5px;width:17px;height:17px;border-top:1px solid currentColor;border-right:1px solid currentColor;opacity:0;transition:opacity .3s,translate .4s;pointer-events:none}
.art-card:hover .art-corner{opacity:1;translate:5px -5px}
.art-card .art-caption{position:relative;border-top:1px solid #8885;padding-top:8px;margin-top:14px;line-height:1.25;align-items:start}
.art-caption b{display:inline-block;transition:transform .35s;line-height:1}
.art-card:hover .art-caption b{transform:translate(3px,-3px) rotate(-7deg)}
.art-card.reveal-ready{opacity:0;translate:0 28px;transition:opacity .7s,translate .85s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)}
.art-card.revealed{opacity:1;translate:0 0}
.art-card:focus-visible{outline-offset:10px}
.art-grid{row-gap:clamp(48px,7vw,110px)}
.photo-contact>.section-line,.tattoo-index>.section-line{border-top:1px solid currentColor;padding-top:18px;margin-bottom:40px}
@media(min-width:701px){
 .art-grid,.photo-contact .art-grid{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:3.5%}
 .art-grid .art-card{grid-column:span 4;padding-top:0}
 .art-grid .art-card:nth-child(7n+1){grid-column:span 7;margin-right:9%;width:91%}
 .art-grid .art-card:nth-child(7n+2){grid-column:span 5;padding-top:clamp(40px,8vw,130px)}
 .art-grid .art-card:nth-child(7n+4){padding-top:clamp(20px,4vw,70px)}
 .art-grid .art-card:nth-child(7n+6){grid-column:span 5;padding-top:clamp(30px,6vw,100px)}
 .art-grid .art-card:nth-child(7n+7){grid-column:span 7;width:91%;margin-left:9%}
 .art-grid .art-card:nth-child(7n+1) img,.art-grid .art-card:nth-child(7n+7) img{max-height:760px}
}
.photo-footer>button{border-bottom:1px solid #eeecdf55;transition:letter-spacing .3s}
.photo-footer>button:hover{color:var(--paper);letter-spacing:.17em}
.photo-stage>button{border:1px solid #eeecdf55;backdrop-filter:blur(4px)}
.photo-stage>button:hover{background:var(--paper);color:var(--black)}
.series-switch button{transition:color .25s,translate .3s}
.series-switch button:hover{translate:2px 0;color:var(--paper)}
.film-play>span{width:88px;height:88px;display:block}
.film-play svg{display:block;width:100%;height:100%;stroke:var(--paper);stroke-width:1.5;overflow:visible}
.play-offset{opacity:0;stroke-width:.7;transition:opacity .25s,translate .4s}
.film-play:hover .play-offset{opacity:.7;translate:-5px 2px}
.film-play:hover>span{transform:rotate(-4deg) scale(1.12)}
.film-play>small{transition:letter-spacing .4s}
.film-play:hover>small{letter-spacing:.65em}
.film-playing .films-word .glyph:nth-child(2n){translate:0 -5px;rotate:-1deg}
.keyframes{transition:opacity .3s}
.film-timeline:hover .keyframes{opacity:1}
.seek-preview{border:0;border-left:2px solid var(--blue);box-shadow:6px 6px 0 -5px var(--paper);padding:0}
.seek-preview>b{text-align:left;background:var(--paper);color:var(--black);padding:5px 8px;font-size:11px;font-weight:800}
.film-selection{gap:18px;padding-bottom:28px}
.film-selection button{transition:opacity .3s,translate .4s}
.film-selection button:nth-child(3n+2){padding-top:14px}
.film-selection button:hover{translate:0 -4px}
.film-selection button.selected:after{height:2px;transform:rotate(-2deg);transform-origin:left}
.film-selection button.selected span{border-bottom:1px solid var(--blue);padding-bottom:8px}
.tattoo-room{transition:background .8s}
.tattoo-room.studying{background:#061b83}
.tattoo-side{transition:transform .7s,translate .9s cubic-bezier(.16,1,.3,1),opacity .7s}
.studying .tattoo-side.left{translate:-7% -3%;opacity:.5}
.studying .tattoo-side.right{translate:7% 5%;opacity:.5}
.studying .tattoos-word .glyph:nth-child(2n){translate:0 -8px;rotate:2deg}
.studying .tattoos-word .glyph:nth-child(2n+1){translate:0 5px;rotate:-1deg}
.ink-stage{transition:box-shadow .6s}
.studying .ink-stage{box-shadow:0 0 0 1px var(--paper),12px 12px 0 -11px var(--paper)}
.tattoo-cross{transition:rotate .5s,scale .5s}
.studying .tattoo-cross{rotate:45deg;scale:.7}
.tattoo-index button:hover{color:var(--blue);text-decoration:none}
dialog[open] .index-title .glyph,dialog[open] .contact-layout h2 .glyph{animation:letter-arrive .6s cubic-bezier(.16,1,.3,1) backwards;animation-delay:calc(var(--glyph-index,0)*.025s)}
.dialog-bar button{padding:5px 0;border-bottom:1px solid currentColor;transition:letter-spacing .3s}
.dialog-bar button:hover{letter-spacing:.22em}
.contact-email{transition:letter-spacing .4s,border-color .3s}
.contact-email:hover{letter-spacing:.015em}

/* One coordinate. Changing the ornament cannot move its hotspot. */
.cursor{position:fixed;left:0;top:0;width:0;height:0;pointer-events:none;z-index:2147483647;opacity:0;color:var(--paper);transform:translate3d(-100px,-100px,0);isolation:isolate}
.cursor.visible{opacity:1}
.cursor-mark{position:absolute;width:64px;height:64px;left:-32px;top:-32px;overflow:visible}
.cursor-shape{display:none}
.cursor[data-world=home] .shape-home,.cursor[data-world=paintings] .shape-paintings,.cursor[data-world=photography] .shape-photography,.cursor[data-world=films] .shape-films,.cursor[data-world=tattoos] .shape-tattoos{display:block}
.cursor-ground{stroke:#080c0e;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round;opacity:.65}
.cursor-ink{stroke:#fffef4;stroke-width:.95;stroke-linecap:round;stroke-linejoin:round}
.cursor-hotspot{fill:#fffef4;stroke:#080c0e;stroke-width:.7}
.cursor-ornament{transform-box:view-box;transform-origin:50% 50%;transition:transform .3s cubic-bezier(.16,1,.3,1),opacity .3s;opacity:.75}
.cursor.hot .cursor-ornament{transform:scale(1.16);opacity:1}
.cursor.down .cursor-ornament{transform:scale(.85);opacity:.65}
.cursor-label{position:absolute;left:15px;top:13px;white-space:nowrap;font:italic 12px/1.2 'Bodoni Moda',serif;letter-spacing:.02em;color:#fffef4;text-shadow:0 1px 2px #080c0e,0 0 4px #080c0e;transition:opacity .25s;opacity:0}
.cursor.hot .cursor-label{opacity:.85}
.cursor-label:empty{display:none}
.cursor[data-edge-x=left] .cursor-label{left:auto;right:15px}
.cursor[data-edge-y=above] .cursor-label{top:auto;bottom:13px}
.cursor.down .cursor-label{opacity:0}
@media(any-hover:hover) and (any-pointer:fine){html.cursor-ready,html.cursor-ready *{cursor:none!important}}
@media(hover:none){.cursor{display:none}.painting-main{touch-action:none}}
@media(max-width:700px){
 .portal-video{width:130%;height:25%;bottom:7%;right:-45%}
 .lobby-footer{grid-template-columns:auto 1fr;text-align:right}
 .lobby-footer>span:first-child{text-align:left}
 .lobby-footer:after{display:none}
 .art-grid .art-card{padding-top:0}
 .art-grid .art-card:nth-child(even){padding-top:32px}
 .art-card .art-caption{font-size:9px;margin-top:10px;line-height:1.35}
 .art-grid{row-gap:38px}
 .film-play>span{width:58px;height:58px}
 .film-selection{gap:12px}
 .film-selection button:nth-child(3n+2){padding-top:8px}
 .photo-contact>.section-line,.tattoo-index>.section-line{margin-bottom:28px}
 .studying .tattoo-side.left{translate:-4% -3%}.studying .tattoo-side.right{translate:4% 5%}
 .tattoo-controls{column-gap:13px;row-gap:22px}
 .tattoo-controls #ink-mode,.tattoo-controls #tattoo-original{min-height:35px}
}
.motion-off .reveal-ready{opacity:1;translate:0 0}
@media(prefers-reduced-motion:reduce){.reveal-ready{opacity:1!important;translate:none!important}.cursor *{animation:none!important;transition:none!important}}

/* Fourth pass: quiet instruments, photographic cyanotypes, open contact sheet. */
.ink-stage{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;transition:box-shadow .65s,rotate .8s cubic-bezier(.16,1,.3,1)}
.blueprint-preview .ink-stage{box-shadow:0 0 0 1px #eeecdf66,9px 9px 0 -8px #eeecdf80}
.studying .ink-stage{rotate:0deg;box-shadow:0 0 0 1px #eeecdfaa,16px 16px 0 -15px #eeecdf88}
.ink-hint{transition:opacity .4s,letter-spacing .5s}
.blueprint-preview .ink-hint{letter-spacing:.24em}
.studying .ink-hint{opacity:.45}
.tattoo-side img{transition:filter .8s}
.studying .tattoo-side img{filter:grayscale(1) contrast(1.08)}
#cinema:focus-visible{outline:1px solid var(--paper);outline-offset:6px}
.film-play{background:linear-gradient(transparent,#00000018)}
.film-playing .film-echo{opacity:.18;transition:opacity 1s}
.film-echo{transition:opacity 1s}
.contact-layout{align-items:start;gap:5%}
.contact-layout>img{position:sticky;top:25px;filter:saturate(.72);box-shadow:9px 9px 0 -8px var(--blue)}
.contact-layout h2{margin-bottom:24px}
.contact-phone{display:block;font:500 20px/1.5 'Barlow Condensed',sans-serif;width:max-content;padding-bottom:8px}
.contact-location{display:block;font-size:11px;letter-spacing:.14em;margin:16px 0 26px}
.contact-socials{display:flex;flex-direction:column;border-top:1px solid #080c0e66}
.contact-socials a{display:grid;grid-template-columns:1fr 1.6fr auto;align-items:baseline;gap:15px;padding:15px 0;border-bottom:1px solid #080c0e44;transition:padding .4s,color .3s}
.contact-socials span{font:italic 22px/1.1 'Bodoni Moda',serif}
.contact-socials small{font:600 12px/1.25 'Barlow Condensed',sans-serif;letter-spacing:.06em}
.contact-socials b{font-weight:400;transition:transform .3s}
.contact-socials a:hover{color:var(--blue);padding-left:6px}
.contact-socials a:hover b{transform:translate(3px,-3px)}
@media(max-width:700px){.contact-layout>img{position:relative;top:auto;max-height:29svh;object-fit:cover;object-position:50% 35%}.contact-layout h2{margin-bottom:18px}.contact-socials a{gap:8px;padding:13px 0}.contact-socials span{font-size:19px}.contact-socials small{font-size:11px}.contact-phone{font-size:18px}.contact-location{margin:12px 0 22px}}

.contact-layout{grid-template-columns:44% minmax(0,1fr);gap:0;min-height:calc(100svh - 70px)}
.contact-layout>img{height:calc(100svh - 70px);top:0}
.contact-layout>div{padding:30px 7%;display:block;min-width:0}
.contact-layout h2{height:clamp(110px,18svh,170px);width:100%;margin:0 0 24px}
.contact-email{margin:0 0 6px;font-size:clamp(20px,2vw,31px);max-width:100%;overflow-wrap:anywhere}
.contact-socials{width:100%}
.contact-socials a{padding:11px 0}
.contact-location{margin:12px 0 22px}
.ink-stage{transition:box-shadow .65s,transform .8s cubic-bezier(.16,1,.3,1)}
.studying .ink-stage{transform:rotate(0deg)}
@media(max-width:700px){.contact-layout{display:block}.contact-layout>img{height:29svh;max-height:29svh}.contact-layout>div{padding:25px 18px 36px}.contact-layout h2{height:110px;margin-bottom:23px}.contact-socials a{padding:13px 0}.contact-email{font-size:22px}.contact-location{margin:12px 0 22px}}

.index-nav>button{font-size:12px;text-align:left;border-bottom:1px solid currentColor;width:max-content;padding-bottom:4px}
@media(max-width:700px){.index-nav>button{grid-column:1/-1;margin-top:5px}}

.contact-email{display:block;width:fit-content;line-height:1.35;padding-bottom:10px;margin-bottom:10px}
