
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
:root{--bg:#020207;--fg:#ede6d3;--laser:#3dff12;--cyan:#00d4ff;--amber:#ff9500;--red:#ff2800;--violet:#bf5fff;--ca-off:0px;--ca-op-tony:0;--ca-op-mac:0}
body.home{cursor:none}body{background:var(--bg);color:var(--fg);font-family:'Syne',sans-serif;overflow-x:hidden}
::selection{background:var(--laser);color:var(--bg)}

#intro{position:fixed;inset:0;background:var(--bg);z-index:9000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;pointer-events:none;transition:opacity 1.6s}
#intro.gone{opacity:0}
.i-line{font-family:'Bebas Neue',sans-serif;letter-spacing:.6em;text-transform:uppercase;color:rgba(237,230,211,0);animation:iReveal 3.2s ease forwards}
.i-line:nth-child(1){font-size:.9rem}.i-line:nth-child(2){font-size:.48rem;animation-delay:.25s}
@keyframes iReveal{0%{color:rgba(237,230,211,0)}35%{color:rgba(237,230,211,.25)}75%{color:rgba(237,230,211,.1)}100%{color:rgba(237,230,211,0)}}

#lightbox{position:fixed;inset:0;z-index:8000;background:rgba(2,2,7,.96);display:none;align-items:center;justify-content:center;cursor:pointer}
#lightbox.open{display:flex}
#lightbox img{max-width:92vw;max-height:88vh;object-fit:contain;pointer-events:none}
#lightbox-close{position:absolute;top:1.5rem;right:2rem;color:rgba(237,230,211,.4);font-size:1.5rem;font-family:'Bebas Neue',sans-serif;letter-spacing:.1em;cursor:pointer;transition:color .2s}
#lightbox-close:hover{color:var(--fg)}

#mainCanvas{position:fixed;inset:0;pointer-events:none;z-index:600}
#laserCanvas{position:absolute;inset:0;pointer-events:none;z-index:1}
#contactCanvas{position:absolute;inset:0;pointer-events:none;z-index:0}

#cur{position:fixed;width:5px;height:5px;background:var(--laser);border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:width .15s,height .15s,background .6s,box-shadow .6s;box-shadow:0 0 5px var(--laser),0 0 14px var(--laser),0 0 30px var(--laser),0 0 60px rgba(61,255,18,.18)}
#cur.xl{width:15px;height:15px}
#cur.amber-mode{background:var(--amber);box-shadow:0 0 5px var(--amber),0 0 14px var(--amber),0 0 30px var(--amber)}
#cur.paint-mode{width:20px;height:20px;background:transparent;border:1px solid var(--laser);box-shadow:0 0 12px var(--laser)}

#progress{position:fixed;right:2rem;top:50%;transform:translateY(-50%);z-index:700;display:flex;flex-direction:column;gap:.8rem}
.prog-dot{width:5px;height:5px;border-radius:50%;border:1px solid rgba(237,230,211,.18);transition:all .4s;cursor:pointer;mix-blend-mode:difference}
.prog-dot.active{background:var(--laser);border-color:var(--laser);transform:scale(1.7)}

#audioHint{position:fixed;bottom:2rem;right:2rem;z-index:900;font-size:.4rem;letter-spacing:.25em;text-transform:uppercase;color:rgba(237,230,211,.16);display:flex;align-items:center;gap:.6rem;cursor:pointer;transition:color .3s;padding:.5rem;font-family:'DM Mono',monospace}
#audioHint:hover{color:rgba(237,230,211,.5)}
.ah-dot{width:4px;height:4px;background:var(--laser);border-radius:50%;opacity:.35;animation:ahBlink 2s ease-in-out infinite}
@keyframes ahBlink{0%,100%{opacity:.35}50%{opacity:.1}}
#audioHint.active .ah-dot{opacity:1;box-shadow:0 0 8px var(--laser)}

nav{position:fixed;top:0;left:0;right:0;z-index:820;padding:1.3rem 3vw;display:flex;justify-content:space-between;align-items:center;mix-blend-mode:difference}
.n-logo{font-family:'Bebas Neue',sans-serif;font-size:1rem;letter-spacing:.22em;color:var(--fg);text-decoration:none;opacity:.55}
nav ul{list-style:none;display:flex;gap:2.5rem}
nav a{color:var(--fg);text-decoration:none;font-size:.5rem;letter-spacing:.28em;text-transform:uppercase;opacity:.28;transition:opacity .25s,color .25s;font-family:'DM Mono',monospace}
nav a:hover{opacity:1;color:var(--laser)}

/* HERO */
#hero{min-height:100vh;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:0 5vw 10vh}
.mag-letter{display:inline-block;font-family:'Bebas Neue',sans-serif;font-size:clamp(6.5rem,19vw,18rem);line-height:.88;letter-spacing:-.01em;will-change:transform;transition:transform .5s cubic-bezier(.34,1.56,.64,1)}
.tony-l{color:var(--fg);text-shadow:calc(-1 * var(--ca-off)) 0 rgba(255,32,0,var(--ca-op-tony)),var(--ca-off) 0 rgba(0,212,255,var(--ca-op-tony))}
.mac-l{color:transparent;-webkit-text-stroke:1.2px rgba(237,230,211,.3);filter:drop-shadow(calc(-3 * var(--ca-off)) 0 rgba(255,32,0,var(--ca-op-mac))) drop-shadow(calc(3 * var(--ca-off)) 0 rgba(0,212,255,var(--ca-op-mac)));animation:macShimmer 5s ease-in-out infinite}
@keyframes macShimmer{0%,100%{-webkit-text-stroke:1.2px rgba(237,230,211,.26)}50%{-webkit-text-stroke:1.2px rgba(237,230,211,.44)}}
.h-line{display:block;overflow:visible;line-height:.88}
.h-tony-line{transform:translateX(-1.5vw)}
.h-mac-line{text-align:right;padding-right:2vw}
#nameRoot{position:relative;z-index:2;pointer-events:none;user-select:none;overflow:visible}
.h-bottom{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:flex-end;margin-top:3.5rem;pointer-events:auto;gap:3rem}
.h-bio{font-family:'Syne',sans-serif;font-size:clamp(1rem,1.6vw,1.3rem);font-weight:500;line-height:1.75;color:rgba(237,230,211,.55);max-width:440px;border-left:1px solid rgba(61,255,18,.25);padding-left:1.6rem}
.h-bio em{color:var(--fg);font-style:normal;font-weight:600}
.h-roles{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;flex-shrink:0}
.h-role{font-size:clamp(.6rem,1vw,.82rem);letter-spacing:.28em;text-transform:uppercase;color:rgba(237,230,211,.22);font-family:'DM Mono',monospace}
.h-role:nth-child(odd){color:rgba(61,255,18,.45)}
.h-scroll{position:absolute;bottom:3vh;left:50%;transform:translateX(-50%);font-size:.43rem;letter-spacing:.4em;text-transform:uppercase;color:rgba(237,230,211,.14);z-index:2;display:flex;flex-direction:column;align-items:center;gap:.8rem;pointer-events:none;font-family:'DM Mono',monospace}
.h-scroll::after{content:'';width:1px;height:40px;background:linear-gradient(to bottom,var(--laser),transparent);animation:sPulse 2.2s ease-in-out infinite}
@keyframes sPulse{0%,100%{opacity:1}50%{opacity:.15}}
@keyframes hintPulse{0%,100%{opacity:.3}50%{opacity:.08}}

/* STATS */
#stats{padding:8vh 5vw;border-top:1px solid rgba(237,230,211,.04);display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(237,230,211,.04)}
.stat-item{background:var(--bg);padding:3rem 2.5rem;cursor:default;transition:background .3s}
.stat-item:hover{background:rgba(255,255,255,.018)}
.stat-num{font-family:'Bebas Neue',sans-serif;font-size:clamp(3.5rem,7vw,6.5rem);line-height:1;color:var(--sc,var(--laser));margin-bottom:.5rem;transition:text-shadow .3s}
.stat-item:hover .stat-num{text-shadow:0 0 25px var(--sc,var(--laser))}
.s1{--sc:var(--laser)}.s2{--sc:var(--cyan)}.s3{--sc:var(--amber)}.s4{--sc:var(--violet)}
.stat-label{font-size:.52rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(237,230,211,.25);font-family:'DM Mono',monospace}

/* MANIFESTO — bigger + portrait */
#manifesto{padding:12vh 5vw 14vh;position:relative;overflow:hidden;border-top:1px solid rgba(237,230,211,.04)}
.mf-ghost{font-family:'Bebas Neue',sans-serif;font-size:clamp(6rem,16vw,15rem);line-height:.9;color:rgba(237,230,211,.018);position:absolute;right:-2vw;top:50%;transform:translateY(-50%);pointer-events:none;user-select:none;white-space:nowrap}
.mf-eyebrow{font-size:clamp(.55rem,.85rem,.85rem);letter-spacing:.45em;text-transform:uppercase;color:var(--laser);opacity:.65;margin-bottom:3rem;font-family:'DM Mono',monospace}
.mf-inner{display:grid;grid-template-columns:1fr 420px;gap:6vw;align-items:start}
.mf-text{
  font-family:'Syne',sans-serif;
  font-size:clamp(1.2rem,2.2vw,1.8rem);   /* BIGGER */
  font-weight:400;line-height:1.8;
  color:rgba(237,230,211,.58);
}
.mf-text strong{color:var(--fg);font-weight:700}
.mf-text em{color:rgba(61,255,18,.85);font-style:normal;font-weight:600}
/* PORTRAIT */
.mf-portrait{position:relative;flex-shrink:0}
.mf-portrait img{
  width:100%;aspect-ratio:3/4;object-fit:cover;
  filter:grayscale(20%) contrast(1.05);
  border:1px solid rgba(237,230,211,.08);
  display:block;transition:filter .5s;
}
.mf-portrait:hover img{filter:grayscale(0%) contrast(1.1)}
.mf-portrait::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to bottom,transparent 55%,rgba(2,2,7,.6));
  pointer-events:none;
}
.mf-portrait-placeholder{
  width:100%;aspect-ratio:3/4;
  background:rgba(255,255,255,.03);
  border:1px dashed rgba(237,230,211,.12);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:.8rem;color:rgba(237,230,211,.18);font-size:.5rem;letter-spacing:.22em;
  text-transform:uppercase;font-family:'DM Mono',monospace;text-align:center;padding:2rem;
}

/* SECTION HEAD — much bigger */
.s-head{padding:10vh 5vw 5rem;display:flex;justify-content:space-between;align-items:flex-start;border-top:1px solid rgba(237,230,211,.04)}
.s-act{font-size:clamp(.55rem,.75rem,.75rem);letter-spacing:.45em;text-transform:uppercase;color:var(--laser);opacity:.55;margin-bottom:.8rem;font-family:'DM Mono',monospace}
.s-title{
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(5rem,12vw,11rem);   /* MUCH BIGGER */
  letter-spacing:.02em;line-height:.85
}
.s-count{font-size:.52rem;letter-spacing:.3em;color:rgba(237,230,211,.14);font-family:'DM Mono',monospace;padding-top:.5rem}

/* WORKS */
#works{padding-bottom:4vh}
.wk{display:grid;grid-template-columns:4rem 1fr auto auto 2rem;gap:0 2.5rem;align-items:center;padding:2rem 5vw;border-top:1px solid rgba(237,230,211,.032);position:relative;overflow:hidden;cursor:pointer;transition:background .3s}
.wk:last-of-type{border-bottom:1px solid rgba(237,230,211,.032)}
.wk:hover{background:rgba(255,255,255,.014)}
.wk::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--wc,var(--laser));box-shadow:0 0 10px var(--wc,var(--laser));transform:scaleY(0);transform-origin:bottom;transition:transform .38s cubic-bezier(.34,1.56,.64,1)}
.wk:hover::before,.wk.open::before{transform:scaleY(1)}
.wk:hover .wk-title,.wk.open .wk-title{color:var(--wc);text-shadow:0 0 18px var(--wc)}
.wk-n{font-size:.47rem;color:rgba(237,230,211,.09);font-style:italic;font-family:'DM Mono',monospace}
.wk-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(1.6rem,3vw,2.8rem);letter-spacing:.04em;transition:color .3s,text-shadow .3s}
.wk-type{font-size:clamp(.62rem,.95vw,.82rem);letter-spacing:.14em;text-transform:uppercase;color:rgba(237,230,211,.45);font-family:'DM Mono',monospace;text-align:right}
.wk-dir{font-size:clamp(.65rem,1vw,.88rem);color:rgba(237,230,211,.38);text-align:right;font-family:'Syne',sans-serif;font-weight:600}
.wk-toggle{font-size:.7rem;color:rgba(237,230,211,.18);transition:transform .3s,color .3s;justify-self:center;font-family:'DM Mono',monospace}
.wk:hover .wk-toggle,.wk.open .wk-toggle{color:var(--wc)}
.wk.open .wk-toggle{transform:rotate(45deg)}
.wk-detail{display:none;padding:0 5vw 3rem 5vw;border-bottom:1px solid rgba(237,230,211,.06);animation:detailIn .4s ease forwards}
.wk-detail.open{display:block}
.wk-detail-inner{padding:2.5rem 0 1.5rem calc(4rem + 2.5rem);display:flex;flex-direction:column;gap:2.2rem}
.wk-detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;flex-wrap:wrap}
.wk-detail-bigtitle{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.8rem,6vw,6rem);letter-spacing:.04em;line-height:.88;color:var(--wc,var(--laser));text-shadow:0 0 40px var(--wc,var(--laser))}
.wk-detail-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.6rem;flex-shrink:0}
.wk-detail-type{font-size:clamp(.72rem,1.1vw,.95rem);letter-spacing:.18em;text-transform:uppercase;color:var(--wc,var(--laser));font-family:'DM Mono',monospace;opacity:.85}
.wk-detail-dir{font-size:clamp(.8rem,1.3vw,1.1rem);color:rgba(237,230,211,.65);font-family:'Syne',sans-serif;font-weight:600;text-align:right}
.wk-detail-text{font-family:'Syne',sans-serif;font-size:clamp(.95rem,1.4vw,1.15rem);font-weight:400;line-height:1.9;color:rgba(237,230,211,.5);max-width:760px}
.wk-detail-text strong{color:rgba(237,230,211,.8);font-weight:600}
.wk-media{display:grid;gap:6px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.wk-media.solo{grid-template-columns:1fr;max-width:680px}
.wk-media.duo{grid-template-columns:1fr 1fr}
.wk-media-item{position:relative;overflow:hidden;background:rgba(255,255,255,.03);border:1px solid rgba(237,230,211,.05);transition:border-color .3s;aspect-ratio:16/9}
.wk-media-item:hover{border-color:rgba(237,230,211,.14)}
.wk-media-item img{width:100%;height:100%;object-fit:cover;opacity:.78;transition:opacity .4s,transform .6s;display:block}
.wk-media-item:hover img{opacity:1;transform:scale(1.03)}
.wk-media-item iframe{width:100%;height:100%;border:none;display:block}
.video-badge{position:absolute;top:.6rem;left:.6rem;font-size:.38rem;letter-spacing:.22em;text-transform:uppercase;background:rgba(2,2,7,.75);color:var(--wc,var(--laser));padding:.25rem .6rem;border:1px solid var(--wc,var(--laser));pointer-events:none;font-family:'DM Mono',monospace}
.img-expand{position:absolute;inset:0;cursor:zoom-in}
/* Lightbox nav */
#lb-prev,#lb-next{position:absolute;top:50%;transform:translateY(-50%);background:none;border:1px solid rgba(237,230,211,.18);color:rgba(237,230,211,.5);font-size:1.2rem;width:3rem;height:3rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;font-family:'DM Mono',monospace;z-index:10}
#lb-prev{left:2rem}#lb-next{right:2rem}
#lb-prev:hover,#lb-next:hover{border-color:var(--laser);color:var(--laser)}
#lb-prev:disabled,#lb-next:disabled{opacity:.15;cursor:default}
#lb-counter{position:absolute;bottom:1.5rem;left:50%;transform:translateX(-50%);font-size:.42rem;letter-spacing:.2em;color:rgba(237,230,211,.3);font-family:'DM Mono',monospace}
@keyframes detailIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}

/* INSTALLATIONS */
#installations{padding-bottom:4vh}
.inst-grid{margin:0 5vw;display:grid;grid-template-columns:1fr 1fr;gap:3px;align-items:start}
.inst-card{background:rgba(255,255,255,.014);border:1px solid rgba(237,230,211,.04);padding:2.5rem;cursor:default;transition:background .3s,border-color .3s;position:relative;overflow:hidden}
.inst-card:hover{background:rgba(255,255,255,.025);border-color:rgba(237,230,211,.09)}
.inst-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--fc,var(--laser));box-shadow:0 0 10px var(--fc,var(--laser));transform:scaleY(0);transform-origin:bottom;transition:transform .38s cubic-bezier(.34,1.56,.64,1)}
.inst-card:hover::before{transform:scaleY(1)}
.inst-img{width:100%;height:160px;object-fit:cover;opacity:.6;margin-bottom:1.5rem;display:block;transition:opacity .3s}
.inst-card:hover .inst-img{opacity:.88}
.inst-tech{font-size:.42rem;letter-spacing:.22em;text-transform:uppercase;color:var(--fc,var(--laser));opacity:.6;margin-bottom:.6rem;font-family:'DM Mono',monospace}
.inst-name{font-family:'Bebas Neue',sans-serif;font-size:clamp(1.6rem,2.8vw,2.4rem);letter-spacing:.04em;transition:color .3s;margin-bottom:.7rem;line-height:.92}
.inst-card:hover .inst-name{color:var(--fc,var(--laser))}
.inst-desc{font-size:clamp(.82rem,1.1vw,.95rem);line-height:1.85;color:rgba(237,230,211,.58);font-family:'Syne',sans-serif}
.inst-link{display:inline-block;margin-top:.8rem;font-size:.38rem;letter-spacing:.22em;text-transform:uppercase;color:var(--fc,var(--laser));opacity:.4;text-decoration:none;border:1px solid currentColor;padding:.28rem .75rem;transition:opacity .2s;font-family:'DM Mono',monospace}
.inst-link:hover{opacity:1}
.inst-card.open{border-color:rgba(237,230,211,.15);background:rgba(255,255,255,.03)}
.inst-card.open::before{transform:scaleY(1)}

/* MAPPING */
#mapping{padding-bottom:4vh}
.mp-list{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin:0 5vw}
.mp{background:rgba(255,255,255,.01);border:1px solid rgba(237,230,211,.04);padding:0;position:relative;overflow:hidden;transition:border-color .3s}
.mp:hover{border-color:rgba(237,230,211,.1)}
.mp-video{width:100%;aspect-ratio:16/9;display:block;border:none;background:#000}
.mp-thumb-wrap{width:100%;aspect-ratio:16/9;position:relative;overflow:hidden;cursor:pointer}
.mp-thumb-wrap img{width:100%;height:100%;object-fit:cover;opacity:.6;transition:opacity .4s,transform .6s;display:block}
.mp-thumb-wrap:hover img{opacity:.85;transform:scale(1.03)}
.mp-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.mp-play-btn{width:2.8rem;height:2.8rem;border:1px solid rgba(237,230,211,.4);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.9rem;color:rgba(237,230,211,.6);background:rgba(2,2,7,.4);transition:all .3s}
.mp-thumb-wrap:hover .mp-play-btn{border-color:var(--mc,var(--amber));color:var(--mc,var(--amber));background:rgba(2,2,7,.6);transform:scale(1.1)}
.mp-info{padding:1rem 1.4rem;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.mp-t{font-family:'Bebas Neue',sans-serif;font-size:clamp(1rem,1.6vw,1.5rem);letter-spacing:.04em;color:var(--fg);transition:color .3s;line-height:.95}
.mp:hover .mp-t{color:var(--mc,var(--amber))}
.mp-d{font-size:clamp(.55rem,.75vw,.7rem);line-height:1.7;color:rgba(237,230,211,.25);font-family:'Syne',sans-serif;margin-top:.3rem}
.mp-tag{font-size:.4rem;letter-spacing:.25em;text-transform:uppercase;color:rgba(237,230,211,.12);font-family:'DM Mono',monospace;flex-shrink:0;padding-top:.3rem}
.mp-no-video{width:100%;aspect-ratio:16/9;background:rgba(255,255,255,.02);display:flex;align-items:center;justify-content:center;color:rgba(237,230,211,.06);font-size:.45rem;letter-spacing:.3em;text-transform:uppercase;font-family:'DM Mono',monospace}

/* SPECTACOLE */
#spectacole{padding-bottom:6vh}
.spec-note{margin:0 5vw 2.5rem;padding:1.6rem 2rem;border:1px solid rgba(237,230,211,.07);background:rgba(255,255,255,.012);font-size:clamp(.78rem,1.1vw,.92rem);line-height:1.9;color:rgba(237,230,211,.35);font-family:'Syne',sans-serif}
.spec-note strong{color:rgba(237,230,211,.65);font-weight:600}
.spec-note em{color:rgba(237,230,211,.28);font-style:italic}
.spec-grid{margin:0 5vw;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1px;background:rgba(237,230,211,.03)}
.sp{background:var(--bg);padding:2.5rem 2.5rem;cursor:default;transition:background .3s,padding-left .3s;position:relative}
.sp:hover{background:rgba(255,255,255,.025);padding-left:3rem}
.sp::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--red);opacity:0;transition:opacity .3s}
.sp:hover::before{opacity:1}
.sp:hover .sp-n{color:var(--red)}
.sp-n{font-family:'Bebas Neue',sans-serif;font-size:clamp(1.4rem,2.2vw,2.2rem);letter-spacing:.04em;transition:color .3s;margin-bottom:.6rem;line-height:.92}
.sp-type{font-size:.52rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(237,230,211,.25);margin-bottom:.4rem;font-family:'DM Mono',monospace}
.sp-d{font-size:clamp(.75rem,1vw,.92rem);line-height:1.75;color:rgba(237,230,211,.45);font-family:'Syne',sans-serif;font-weight:500}
.sp a{color:var(--red);text-decoration:none;opacity:.5;transition:opacity .2s}
.sp a:hover{opacity:1}

/* CONTACT */
#contact{min-height:92vh;display:flex;flex-direction:column;justify-content:center;padding:12vh 5vw;border-top:1px solid rgba(237,230,211,.04);position:relative;overflow:hidden}
.ct-pool{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 55% 45% at 28% 65%,rgba(61,255,18,.04) 0%,transparent 70%);animation:poolBreath 9s ease-in-out infinite}
@keyframes poolBreath{0%,100%{opacity:1}50%{opacity:.4}}
.ct-hint{font-size:.45rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(237,230,211,.15);margin-bottom:2rem;position:relative;z-index:1;font-family:'DM Mono',monospace}
.ct-inner{display:grid;grid-template-columns:1fr auto;gap:6vw;align-items:center;position:relative;z-index:1}
.ct-left{pointer-events:none;user-select:none}
.ct-pre{font-size:.55rem;letter-spacing:.4em;text-transform:uppercase;color:var(--laser);opacity:.6;margin-bottom:2rem;font-family:'DM Mono',monospace}
.ct-big{font-family:'Bebas Neue',sans-serif;font-size:clamp(4.5rem,13vw,13rem);line-height:.85}
.ct-lets{color:var(--fg);display:block}
.ct-make{
  position:relative;color:transparent;
  -webkit-text-stroke:1px rgba(237,230,211,.16);
  display:block;margin-left:5vw;
  background-image:radial-gradient(circle at -999px -999px, var(--amber) 0%, transparent 0%);
  -webkit-background-clip:text;background-clip:text;
}
.ct-light{color:var(--laser);display:block;margin-left:-1vw;animation:ctPulse 4s ease-in-out infinite}
@keyframes ctPulse{0%,100%{text-shadow:0 0 40px rgba(61,255,18,.28),0 0 80px rgba(61,255,18,.1)}50%{text-shadow:0 0 60px rgba(61,255,18,.52),0 0 120px rgba(61,255,18,.22)}}
.ct-right{display:flex;flex-direction:column;gap:.8rem;flex-shrink:0;min-width:280px}
.ct-a{text-decoration:none;display:flex;flex-direction:column;gap:.3rem;padding:1.2rem 1.8rem;border:1px solid rgba(237,230,211,.08);color:var(--fg);position:relative;overflow:hidden;transition:color .35s,border-color .35s}
.ct-a::before{content:'';position:absolute;inset:0;background:var(--lc);transform:scaleX(0);transform-origin:left;transition:transform .38s cubic-bezier(.16,1,.3,1);z-index:0}
.ct-a:hover::before{transform:scaleX(1)}
.ct-a:hover{color:var(--bg);border-color:var(--lc)}
.ct-a>*{position:relative;z-index:1}
.ct-lbl{font-size:.38rem;letter-spacing:.3em;text-transform:uppercase;opacity:.35;font-family:'DM Mono',monospace}
.ct-val{font-size:clamp(.85rem,1.3vw,1.1rem);font-family:'Syne',sans-serif;font-weight:600;letter-spacing:.04em}
.ca-1{--lc:var(--laser)}.ca-2{--lc:var(--red)}.ca-3{--lc:var(--cyan)}.ca-4{--lc:var(--violet)}

.loading-row{padding:2rem 5vw;font-size:.45rem;letter-spacing:.3em;color:rgba(237,230,211,.18);text-transform:uppercase;animation:loadPulse 1.5s ease-in-out infinite;font-family:'DM Mono',monospace}
@keyframes loadPulse{0%,100%{opacity:.18}50%{opacity:.5}}
footer{padding:2rem 5vw;border-top:1px solid rgba(237,230,211,.04);display:flex;justify-content:space-between;font-size:.42rem;letter-spacing:.18em;color:rgba(237,230,211,.09);font-family:'DM Mono',monospace}
.r{opacity:0;transform:translateY(14px);transition:opacity .65s ease,transform .65s ease}
.r.on{opacity:1;transform:translateY(0)}
@media(max-width:900px){
  /* hide desktop-only elements */
  #progress{display:none}
  #mainCanvas{display:none}
  #cur{display:none}
  #audioHint{display:none}

  /* nav */
  nav ul{gap:1.2rem}
  nav a{font-size:.38rem;letter-spacing:.18em}

  /* hero */
  #hero{padding:0 4vw 12vh}
  .mag-letter{font-size:clamp(4.5rem,18vw,7rem)}
  .h-bottom{flex-direction:column;gap:1.5rem}
  .h-bio{font-size:.88rem;max-width:100%;border-left:none;border-top:1px solid rgba(61,255,18,.2);padding-left:0;padding-top:1rem}
  .h-roles{align-items:flex-start;flex-direction:row;flex-wrap:wrap;gap:.4rem}
  .h-role{font-size:.42rem}

  /* stats */
  #stats{grid-template-columns:1fr 1fr}
  .stat-item{padding:2rem 1.5rem}

  /* manifesto */
  #manifesto{padding:8vh 5vw 10vh}
  .mf-inner{grid-template-columns:1fr}
  .mf-portrait{display:block;max-width:260px;margin:2rem auto 0}
  .mf-text{font-size:1rem}

  /* section heads */
  .s-head{padding:7vh 5vw 3rem;flex-direction:column;gap:.5rem}
  .s-title{font-size:clamp(3rem,15vw,6rem)}

  /* works */
  .wk{grid-template-columns:2.5rem 1fr 1.5rem;padding:1.4rem 4vw}
  .wk-type,.wk-dir{display:none}
  .wk-detail-inner{padding:1.5rem 0}
  .wk-media,.wk-media.duo,.wk-media.solo{grid-template-columns:1fr}
  .wk-detail-bigtitle{font-size:clamp(2rem,8vw,3.5rem)}

  /* installations */
  .inst-grid{grid-template-columns:1fr;margin:0 4vw}
  .inst-card{padding:1.8rem}

  /* mapping */
  .mp-list{grid-template-columns:1fr;margin:0 4vw}

  /* lightbox */
  #lb-prev{left:.5rem;width:2.5rem;height:2.5rem;font-size:1rem}
  #lb-next{right:.5rem;width:2.5rem;height:2.5rem;font-size:1rem}

  /* contact */
  #contact{padding:10vh 5vw}
  .ct-big{font-size:clamp(3.5rem,18vw,7rem)}
  .ct-inner{grid-template-columns:1fr}
  .ct-right{min-width:unset}

  /* footer */
  footer{flex-direction:column;gap:.5rem}
}

@media(max-width:480px){
  nav ul{gap:.8rem}
  nav a{font-size:.32rem}
  .mag-letter{font-size:clamp(3.5rem,20vw,5.5rem)}
  .stat-item{padding:1.5rem 1rem}
  .stat-num{font-size:clamp(2.5rem,10vw,4rem)}
  .inst-card{padding:1.4rem}
  .mp-list{margin:0 3vw}
  .wk{padding:1.2rem 3vw}
}

h1#nameRoot{margin:0;padding:0;font-size:inherit;font-weight:400;line-height:inherit;letter-spacing:normal}
h2.s-title{margin:0;font-weight:400}
a.h-role{text-decoration:none}
a.h-role:hover{color:var(--laser)}
.wk-title a,.inst-name a,.mp-t a,.sp-n a{color:inherit;text-decoration:none}
.f-nav{display:flex;gap:1.1rem;flex-wrap:wrap;justify-content:center}
.f-nav a{color:inherit;text-decoration:none}
.f-nav a:hover{color:var(--laser)}
.doc{padding:12vh 5vw 10vh;position:relative;z-index:2}
.doc-kicker{font-family:'DM Mono',monospace;font-size:.55rem;letter-spacing:.4em;text-transform:uppercase;color:var(--laser);opacity:.7;margin-bottom:1.2rem}
.doc h1{font-family:'Bebas Neue',sans-serif;font-size:clamp(3.4rem,9vw,8rem);line-height:.88;letter-spacing:.02em;font-weight:400;margin:0 0 1.6rem;max-width:16ch}
.doc-lead{font-family:'DM Mono',monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(237,230,211,.45);margin-bottom:2rem}
.doc-prose{max-width:740px;font-size:clamp(1rem,1.3vw,1.12rem);line-height:1.9;color:rgba(237,230,211,.66)}
.doc-prose p{margin:0 0 1.15rem}
.doc-prose strong{color:var(--fg);font-weight:600}
.doc-prose a{color:var(--laser);text-decoration:none}
.doc-prose a:hover{text-decoration:underline}
.doc-related{margin-top:3.5rem;max-width:900px}
.doc-related h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(2rem,4vw,3.2rem);font-weight:400;letter-spacing:.04em;margin-bottom:1rem}
.rel{display:grid;grid-template-columns:1fr auto;gap:.4rem 1.5rem;padding:1rem 0;border-top:1px solid rgba(237,230,211,.08);color:inherit;text-decoration:none}
.rel:hover .rel-t{color:var(--laser)}
.rel-t{font-family:'Bebas Neue',sans-serif;font-size:clamp(1.3rem,2vw,1.8rem);letter-spacing:.04em}
.rel-m{font-family:'DM Mono',monospace;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(237,230,211,.4);text-align:right}
.doc-figure{margin:0 0 1rem}
.doc-figure img{width:100%;max-height:78vh;object-fit:cover;border:1px solid rgba(237,230,211,.08);display:block}
.doc-links{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.2rem 0 2rem}
.doc-links a{font-family:'DM Mono',monospace;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--laser);text-decoration:none;border:1px solid rgba(61,255,18,.35);padding:.45rem .8rem}
.doc-video{margin:0 0 1rem;aspect-ratio:16/9;background:#000;border:1px solid rgba(237,230,211,.08)}
.doc-video iframe{width:100%;height:100%;border:0;display:block}
@media(max-width:900px){
  .doc{padding:11vh 5vw 8vh}
  .rel{grid-template-columns:1fr}
  .rel-m{text-align:left}
  footer .f-nav{justify-content:flex-start}
}
