@import url('https://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700');
@import url('https://fonts.googleapis.com/css?family=Coustard');
:root{--bg:#000;--ink:#fff;--muted:#bbb;--line:#333;--accent:#f00}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'Open Sans',sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}button,input{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid #fff;outline-offset:5px}h1,h2,h3{font-family:'Coustard',serif;font-weight:400;margin:0 0 24px;line-height:1.15;overflow-wrap:anywhere}h1{font-size:clamp(38px,5vw,72px)}h2{font-size:clamp(28px,4vw,55px)}p{margin:0 0 24px}header{padding:24px 5%;display:flex;justify-content:space-between;align-items:center;gap:30px;border-bottom:1px solid var(--line);position:relative;z-index:3;background:#000}.brand{font-family:'Coustard',serif;font-size:25px;letter-spacing:-1px}nav{display:flex;align-items:center;gap:28px;font-size:14px}nav [aria-current]{color:red}.subscribe-link{border:1px solid #777;padding:8px 14px}.menu-toggle{display:none}.skip{position:absolute;top:-100px;z-index:10;background:white;color:black;padding:16px}.skip:focus{top:12px}.home-page header{position:absolute;top:0;left:0;width:100%;background:#0009;border:0}.home-attractor{position:relative;min-height:100vh;min-height:100svh;isolation:isolate;display:flex;align-items:flex-end;padding:150px 6% 12vh;overflow:hidden;background:#000}#container{position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('../images/holycircuit-mark.png') no-repeat 75% 40%;background-size:min(50vw,500px)}#container.has-webgl{background:none}#container canvas{display:block;position:absolute;inset:0;width:100%!important;height:100%!important}.home-tagline{max-width:800px;width:100%;position:relative;z-index:1}.home-tagline h1{display:table;background:#f00;color:white;padding:4px 12px;font-size:clamp(42px,7vw,90px);margin-bottom:24px}.home-tagline>p{font-size:clamp(18px,2.1vw,28px);line-height:1.6;background:#000d;padding:8px 12px;margin:0;width:fit-content}.home-tagline a{text-decoration:underline}.home-tagline .explore-line{min-height:3.9em;width:100%}#exploration{display:block;color:#fff}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.listing-heading{padding:46px 5% 22px}.listing-heading h1{font-size:clamp(36px,5vw,70px)}.thumbnail-list{width:100%}.thumbnail{position:relative;display:flex;align-items:flex-end;width:100%;min-height:70vh;min-height:70svh;overflow:hidden;background:#111;border-bottom:1px solid #444;padding:5%;isolation:isolate;color:white}.thumbnail.fullscreen{min-height:100vh;min-height:100svh}.thumbnail>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.thumbnail:has(img):after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(transparent 20%,#000c 100%)}.thumbnail-caption{width:100%;max-width:1200px}.thumbnail-caption p{font-size:14px;letter-spacing:.06em;margin-bottom:16px}.thumbnail-caption h2{font-size:clamp(32px,5vw,76px);margin:0;text-shadow:0 2px 10px #0006;display:flex;align-items:flex-end;justify-content:space-between;gap:22px}.thumbnail-caption h2 span{font-family:'Open Sans',sans-serif;font-size:.65em}.thumbnail:hover{color:white}.thumbnail:hover .thumbnail-caption h2{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:8px}.no-artwork{background:#0c0c0c}.no-artwork h2{text-shadow:none}.page-intro{padding:75px 6% 35px;border-bottom:1px solid #333}.eyebrow{color:#bbb;font-size:12px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:24px}.lede{max-width:800px;font-size:20px;color:#bbb}.section{padding:50px 6%}.detail{min-height:320px}.detail>p{max-width:750px;color:#bbb}.detail h2{font-size:32px}.text-link{text-decoration:underline;text-underline-offset:5px}.edition-links{display:flex;gap:20px;margin-bottom:40px;flex-wrap:wrap}.edition-links a,.button,button{background:#000;color:white;border:1px solid #aaa;padding:12px 20px;display:inline-block;cursor:pointer}.archive-row{border-top:1px solid #333;padding-top:24px;margin-top:45px;display:flex;gap:35px;justify-content:space-between;flex-wrap:wrap}.signup{max-width:750px}.signup label{display:block;margin-bottom:12px}.input-row{display:flex}.signup input[type=email]{padding:14px;background:#111;border:1px solid #aaa;color:white;min-width:0;width:100%}.signup button{white-space:nowrap}.small{font-size:12px;color:#aaa;margin-top:12px}.honey{position:absolute;left:-5000px}footer{padding:28px 6%;border-top:1px solid #333;color:#aaa;font-size:12px;display:flex;justify-content:space-between;gap:25px}footer a{color:white}footer nav{font-size:12px;flex-wrap:wrap}.home-page footer{display:none}
@media(max-width:760px){header{flex-wrap:wrap;padding:20px 5%;gap:14px}.menu-toggle{display:block;padding:7px 12px;background:#000}header nav{display:none;flex-direction:column;width:100%;align-items:stretch;gap:5px}header nav.open{display:flex}header nav a{padding:10px;background:#000}.home-tagline h1{font-size:45px}.home-attractor{padding:150px 5% 10vh}.home-tagline>p{font-size:20px}.home-tagline .explore-line{min-height:5.8em}.thumbnail{padding:8% 5%;min-height:65svh}.thumbnail-caption h2{font-size:clamp(28px,7vw,50px)}.thumbnail-caption p{font-size:12px}.input-row{flex-direction:column;gap:10px}.input-row button{align-self:flex-start}footer{flex-direction:column;padding-right:80px}.page-intro{padding-top:50px}#container{background-position:65% 25%;background-size:70vw}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
/* Studio shell: fixed original WebGL scene with content floating above it. */
body{isolation:isolate;background:#000}#container{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;z-index:-1}#container canvas{height:100%!important}header,.home-page header{position:relative;top:auto;left:auto;width:100%;background:transparent;border:0;padding:24px 5%;align-items:center}header .brand{font-family:'Coustard',serif;color:#fff;white-space:nowrap}header nav a{font-family:'Coustard',serif;text-transform:uppercase;background:#f00;color:#fff!important;padding:7px 12px;border:0;line-height:1.4}header nav a:hover,header nav a:focus-visible{background:#b60000}header nav{gap:12px}.contact-link{min-width:8.5em;text-align:center}.home-attractor{background:none;isolation:auto;min-height:0;padding:36px 0 56px;display:block;overflow:visible}.home-tagline{max-width:none}.home-tagline>p{font-size:clamp(20px,2.1vw,30px)}.home-tagline .explore-line{min-height:3.6em}.home-features,.thumbnail-list{display:grid;gap:32px}.thumbnail,.thumbnail.fullscreen{min-height:75vh;min-height:75svh}.thumbnail.no-artwork{background:#000c}.thumbnail{border:0}.home-page main,.activism-page main,.originals-page main,.contact-page main,.subscribe-page main{width:75%;margin:0 auto}.activism-page main,.originals-page main,.contact-page main,.subscribe-page main{padding-top:36px}.page-intro,.section,.contact-panel{background:#000d}.contact-panel{padding:clamp(24px,5vw,72px)}.contact-panel>p{max-width:760px}.contact-panel h1{font-size:clamp(32px,5vw,64px)}#contact-form{display:grid;gap:20px}#contact-form label{display:block;margin-bottom:8px}#contact-form input,#contact-form textarea{width:100%;font:inherit;color:white;background:#111;border:1px solid #777;padding:12px}#contact-form textarea{resize:vertical}#contact-form button{justify-self:start;background:#f00;color:white;border:0;font-family:'Coustard',serif}#contact-form button:disabled{opacity:.6}.contact-direct{margin-top:35px;overflow-wrap:anywhere}.contact-direct a{text-decoration:underline}.form-status{border-left:3px solid #f00;padding:12px;background:#000}footer{width:75%;margin:36px auto 0;background:#000c;padding:20px;border:0}.home-page footer{display:flex}
@media(max-width:760px){header,.home-page header{padding:20px 5%}header nav{gap:8px}header nav a{background:#f00}.menu-toggle{font-family:'Coustard',serif;background:#f00;color:white;border:0}.home-attractor{padding:24px 0 40px}.home-tagline>p{font-size:18px}.home-tagline .explore-line{min-height:6em}.thumbnail-caption h2{font-size:clamp(24px,6vw,45px)}.thumbnail,.thumbnail.fullscreen{min-height:65svh}.thumbnail-caption h2 span{display:none}.contact-panel{padding:20px}.home-features,.thumbnail-list{gap:24px}}
/* Defined frames separate each work from the moving background. */
.thumbnail{border:1px solid #aaa;box-shadow:0 0 0 6px #080808,0 0 0 7px #444;outline-offset:10px}.thumbnail:before{content:'';position:absolute;inset:10px;border:1px solid #ffffff30;pointer-events:none;z-index:1}.thumbnail:hover,.thumbnail:focus-visible{border-color:#f00;box-shadow:0 0 0 6px #080808,0 0 0 7px #f00}.home-features,.thumbnail-list{gap:48px;margin-bottom:48px}
.rnd-page main,.products-page main{width:75%;margin:36px auto}.rnd-page .thumbnail-list,.products-page .thumbnail-list{margin-top:32px}.hire-patch{position:fixed;right:18px;bottom:28px;width:136px;height:136px;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:#ffef00;color:#000!important;transform:rotate(-12deg);font-family:'Coustard',serif;font-size:16px;line-height:1.3;text-align:center;filter:drop-shadow(3px 4px 0 #000);clip-path:polygon(50% 0,59% 10%,71% 4%,76% 17%,90% 15%,90% 30%,100% 36%,92% 49%,100% 62%,88% 68%,89% 83%,74% 82%,69% 96%,57% 90%,48% 100%,40% 89%,25% 95%,22% 81%,8% 81%,11% 66%,0 59%,8% 47%,0 34%,14% 29%,12% 14%,28% 17%,33% 3%,44% 10%)}.hire-patch:hover{background:#fff;transform:rotate(-7deg)}.hire-patch:focus-visible{filter:drop-shadow(0 0 6px white);outline:0}.hire-patch span{display:block}#exploration{transform-origin:left center}.glitch-out{animation:text-glitch-out .18s steps(3,end) both}.glitch-in{animation:text-glitch-in .35s steps(5,end) both}@keyframes text-glitch-out{0%{opacity:1;transform:translateX(0)}35%{text-shadow:-5px 0 #f00,5px 0 #0ff;transform:translateX(8px) skewX(8deg)}70%{clip-path:inset(35% 0 10%);transform:translateX(-12px)}100%{opacity:0;transform:translateY(-10px)}}@keyframes text-glitch-in{0%{opacity:0;transform:translateY(12px)}30%{opacity:1;text-shadow:5px 0 #f00,-5px 0 #0ff;clip-path:inset(15% 0 25%);transform:translateX(-8px)}65%{clip-path:inset(0);transform:translateX(4px);text-shadow:-2px 0 #f00,2px 0 #0ff}100%{opacity:1;transform:none;text-shadow:none;clip-path:inset(0)}}@media(min-width:761px) and (max-width:1050px){header,.home-page header{gap:12px;padding-left:3%;padding-right:3%}header nav{gap:7px;font-size:12px}header nav a{padding:7px 9px}.brand{font-size:21px}}@media(max-width:760px){.hire-patch{width:98px;height:98px;font-size:11px;right:8px;bottom:16px}.rnd-page main,.products-page main{margin-top:24px}}@media(prefers-reduced-motion:reduce){.glitch-in,.glitch-out{animation:none}}

.home-tagline .work-heading{margin-bottom:16px}.home-tagline .explore-line{min-height:2.6em}.recent-news{font-size:clamp(26px,3vw,40px);margin:0 0 24px;background:#000c;padding:12px}.studio-note{margin:40px 0;padding:28px;background:#000d}.studio-note p{margin:0}.studio-note a{text-decoration:underline}.apparitions-media{display:grid;gap:24px;padding:24px 0}.apparitions-media img{display:block;width:100%;height:auto}.apparitions-media video{display:block;width:100%;max-height:85svh;background:#000}.originals-page:has(.apparitions-media) .lede{max-width:1000px}

.event-poster{padding:24px 0}.event-poster img{display:block;width:100%;max-width:none;height:auto;margin:auto}

/* Catalogue cards: heading, complete image, then context. */
.thumbnail,.thumbnail.fullscreen{display:flex;flex-direction:column;align-items:stretch;min-height:0;padding:0;background:#080808ed;border-top:8px solid #eee;border-bottom:8px solid #eee;isolation:auto;overflow:hidden}
.thumbnail>img{position:static;inset:auto;z-index:auto;width:100%;height:auto;max-height:none;object-fit:contain;background:#000}
.thumbnail:has(img):after{display:none}
.thumbnail-title{font-size:clamp(28px,4.5vw,64px);line-height:1.15;padding:24px 28px;margin:0;overflow-wrap:anywhere}
.thumbnail-caption{padding:22px 28px;max-width:none}.thumbnail-caption p{margin:0;font-size:14px;line-height:1.65}.thumbnail-caption .thumbnail-description{margin-top:10px;color:#bbb;font-size:16px}.thumbnail-description:empty{display:none}
.thumbnail:hover .thumbnail-title{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:7px}
@media(max-width:760px){.thumbnail-title,.thumbnail-caption{padding:18px}.thumbnail,.thumbnail.fullscreen{min-height:0}}

/* Titles and categories sit directly in the frame rails. */
@font-face{font-family:FrameMono;src:url('../../selfvillance/assets/share-tech-mono.ttf') format('truetype');font-display:swap}
.thumbnail,.thumbnail.fullscreen{border:2px solid #f00;background:#090909;box-shadow:none}
.thumbnail::before{display:none}
.thumbnail-title{margin:0;padding:15px 20px;background:#f00;color:#fff;font:400 clamp(16px,1.6vw,22px)/1.3 FrameMono,'Courier New',monospace;letter-spacing:.055em;text-transform:uppercase}
.thumbnail-caption{margin:0;padding:12px 20px;background:#f00;color:#fff}
.thumbnail-caption p{margin:0;font:400 clamp(11px,1vw,14px)/1.4 FrameMono,'Courier New',monospace;letter-spacing:.06em;text-transform:uppercase}
.thumbnail:hover .thumbnail-title{text-decoration:none;background:#d90000}
@media(max-width:760px){.thumbnail-title{padding:13px 14px}.thumbnail-caption{padding:10px 14px}}

/* Compact entry frame bars. */
.thumbnail-title{padding:3px 20px;font-size:clamp(14px,1.4vw,18px);line-height:1.2}
.thumbnail-caption{padding:3px 20px}
.thumbnail-caption p{font-size:clamp(10px,.9vw,12px);line-height:1.2}
@media(max-width:760px){.thumbnail-title{padding:3px 14px}.thumbnail-caption{padding:3px 14px}}

/* Equal frame thickness and matching rail typography. */
.thumbnail,.thumbnail.fullscreen{--frame-size:24px;border-top:0;border-bottom:0;border-right:var(--frame-size) solid #f00}
.thumbnail-title,.thumbnail-caption{padding:4px 14px;min-height:var(--frame-size)}
.thumbnail-title,.thumbnail-caption p{font-size:12px;line-height:16px;letter-spacing:.06em}
@media(max-width:760px){.thumbnail-title,.thumbnail-caption{padding:4px 14px}}

.recent-news{color:#f00;font-weight:700;background:none;padding:0}

/* Fine entry frames and consistent catalogue/home interaction. */
.thumbnail,.thumbnail.fullscreen{border:1px solid #f00;box-shadow:none}
.thumbnail-title{background:#090909;color:#f00;font-weight:700;text-align:left}
.thumbnail-caption{background:#090909;color:#fff;text-align:right}
.thumbnail:hover,.thumbnail.fullscreen:hover,.thumbnail:focus-visible,.thumbnail.fullscreen:focus-visible{border-color:#f00;box-shadow:0 0 0 6px #080808,0 0 0 7px #f00}
.thumbnail:hover .thumbnail-title,.thumbnail:focus-visible .thumbnail-title{background:#090909;color:#f00}

/* Bar borders join the card's outer frame without doubling its edges. */
.thumbnail-title{border-bottom:1px solid #f00}
.thumbnail-caption{border-top:1px solid #f00;color:#f00}

/* Zero Signal Apparitions: the entity is the central identity. */
body:has(.apparitions-identity){background:#020405}
body:has(.apparitions-identity) #container{display:none}
.apparitions-identity{background:#020405;border:1px solid #284b50}
.apparitions-logo{display:block;width:100%;height:auto;max-width:1000px;margin:auto}
.apparitions-intro{padding:clamp(24px,5vw,72px);border-top:1px solid #284b50}
.apparitions-intro h2{font-family:FrameMono,'Courier New',monospace;color:#dcfcff;font-size:clamp(28px,4vw,52px);text-transform:uppercase}
.apparitions-intro .lede{font-size:clamp(17px,2vw,23px);line-height:1.7;color:#beced0}
.apparitions-intro .eyebrow{color:#78d5df}.apparitions-intro .button{border-color:#78d5df;font-family:FrameMono,monospace}
body:has(.apparitions-identity) .apparitions-media{gap:32px}body:has(.apparitions-identity) .apparitions-media>*{border:1px solid #284b50}

/* Molded CRT housings around each installation section. */
body:has(.apparitions-identity) .tv-bezel{position:relative;margin:0;padding:clamp(12px,2.5vw,32px);padding-bottom:clamp(42px,5vw,66px);border:3px solid #303434;border-top-color:#555b5c;border-left-color:#44494a;border-radius:22px;background:linear-gradient(145deg,#323737,#141718 35%,#080a0b 80%,#252a2a);box-shadow:inset 2px 2px 3px #7d868644,inset -3px -4px 6px #000,0 12px 26px #0009}
.tv-bezel:after{content:'';position:absolute;bottom:18px;right:25px;width:7px;height:7px;border-radius:50%;background:#85e3d4;box-shadow:0 0 8px #85e3d477}
.tv-bezel:before{content:'';position:absolute;bottom:16px;left:25px;width:76px;height:12px;background:repeating-linear-gradient(90deg,#020303 0 2px,#343939 2px 5px);border-radius:2px}
.tv-bezel>img,.tv-bezel>video{border:5px solid #030404;border-radius:12px;box-shadow:0 -2px 2px #000,0 2px 1px #62696966}
.apparitions-intro{background:#040708;border:0;border-radius:0 0 12px 12px;margin-top:16px}
body:has(.apparitions-identity) .apparitions-media video{width:100%;max-height:85svh;object-fit:contain}
.apparitions-enquiry{margin-bottom:48px!important}
@media(max-width:600px){body:has(.apparitions-identity) .tv-bezel{border-radius:14px}.tv-bezel>img,.tv-bezel>video{border-width:3px;border-radius:8px}}

.apparitions-screen{overflow:hidden;background:#000;border:5px solid #030404;border-radius:12px;box-shadow:0 -2px 2px #000,0 2px 1px #62696966}
.apparitions-screen .apparitions-logo{max-width:none}
.apparitions-screen .apparitions-intro{margin:0;background:#000;border:0;border-radius:0;padding-top:24px}
@media(max-width:600px){.apparitions-screen{border-width:3px;border-radius:8px}}

.contact-socials{display:flex;flex-wrap:wrap;gap:24px;margin-top:35px}.contact-socials a{color:#f00;text-decoration:underline;text-underline-offset:5px}

/* Editorial homepage introduction with the existing fast idea rotation. */
.home-tagline .intro-heading{display:block;background:#000d;color:#fff;padding:16px 20px;font-size:clamp(14px,1.75vw,25px);line-height:1.2;margin:0 0 22px;max-width:1100px}
.home-tagline .intro-copy{font-size:clamp(17px,1.8vw,24px);line-height:1.65;padding:16px 20px;max-width:1100px;width:100%;margin:0 0 24px}
.home-tagline .specialise-heading{font-size:clamp(22px,2.5vw,34px);color:#f00;margin:0 0 12px;padding:0 20px}
.home-tagline .explore-line{padding:8px 20px;min-height:3.6em;width:100%;font-size:clamp(20px,2.1vw,30px)}

/* White rental badge with a red edge following its starburst shape. */
.hire-patch,.hire-patch:hover{background:#f00;color:#000!important;isolation:isolate}
.hire-patch:before{content:'';position:absolute;inset:3px;background:#fff;clip-path:inherit;z-index:-1}
.hire-patch span{position:relative;color:#000}

.home-tagline .intro-heading a{text-decoration:underline;text-underline-offset:3px}
.hire-patch{animation:hire-breathe 4s ease-in-out infinite;transform-origin:center}
.hire-patch:hover,.hire-patch:focus-visible{animation-play-state:paused}
@keyframes hire-breathe{0%,100%{transform:rotate(-12deg) scale(.96)}50%{transform:rotate(-12deg) scale(1.04)}}
@media(prefers-reduced-motion:reduce){.hire-patch{animation:none}}
