:root{--bg:#0c100e;--panel:#0d1a14;--ink:#edf0de;--muted:#b7c2ad;--acid:#e4ff54;--button:#e2ff5b;--label:#def94e;--dark-ink:#162014;--nav-height:76px;color-scheme:dark;background:var(--bg);color:var(--ink);font:400 16px/1.45 'Workbench',monospace}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-bottom:150px}
body{margin:0;isolation:isolate;overflow-x:clip}
[hidden]{display:none!important}
figure,p,h1,h2,h3{margin:0}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-underline-offset:5px}
button,a{touch-action:manipulation}
:where(button,a.action){font:inherit;letter-spacing:inherit;color:inherit;border:0;border-radius:0;background:transparent;min-height:44px;padding:10px 14px}
button{cursor:pointer}
button:disabled{opacity:.55;cursor:wait}
a.action{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
:where(button,a):focus-visible{outline:3px solid var(--acid);outline-offset:5px}
:where(button,a){scroll-margin-block:24px 180px}
button:hover,a.action:hover{color:var(--acid)}
.art{width:100%;height:100%;object-fit:cover}
.dot{font-family:'Doto',monospace;font-weight:900;line-height:1.05;letter-spacing:-.045em}
.acid{color:var(--acid)}
.small{font-size:.875rem;letter-spacing:.025em}
.paper-button{background:var(--panel);color:var(--ink)}
.red-button{background:var(--acid);color:var(--dark-ink)}
.red-button:hover{background:var(--ink);color:var(--dark-ink)}
.wordmark{position:relative;display:block;aspect-ratio:1401/154;overflow:hidden}
.wordmark img{position:absolute;display:block;width:108.565%;max-width:none;height:auto;left:-4.283%;top:-38.961%;filter:brightness(0) invert(1)}
.skip-link{position:fixed;left:16px;top:-100px;z-index:100;background:var(--acid);color:var(--dark-ink);padding:15px}
.skip-link:focus{top:16px}
.live-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Fuga di segnale: original near-black green, acid yellow and white. */
.site-shell{max-width:1800px;margin-inline:auto}
body:not([data-page=home]) main{max-width:1440px;margin-inline:auto}
.crumbs{display:flex;align-items:center;gap:4px;flex-wrap:wrap;min-height:74px;padding:12px clamp(16px,4vw,60px);font-size:.875rem;color:var(--muted)}
.crumbs .action{padding:8px;color:var(--acid)}
.crumb-label{padding:8px;overflow-wrap:anywhere}
.signal-rail{position:fixed;z-index:40;left:50%;bottom:20px;transform:translateX(-50%);width:min(92%,1440px);padding:8px 12px;display:flex;justify-content:space-between;align-items:center;gap:2px 6px;flex-wrap:wrap;background:#0d1a14;box-shadow:0 5px 25px #0006;font:900 1.0625rem/1.2 'Doto',monospace}
.signal-rail .action{padding:12px 10px;min-height:44px}
.signal-rail a::before{content:'[';margin-right:3px}.signal-rail a::after{content:']';margin-left:3px}
.signal-rail a[aria-current=page]{background:var(--acid);color:var(--dark-ink)}
.signal-rail a:hover{background:#203124;color:var(--acid)}
.signal-rail a[aria-current=page]:hover{background:var(--ink);color:var(--dark-ink)}
.site-footer{padding:80px 4% 140px}
.site-footer .logo-button{display:block;padding:0;margin:0 0 28px;max-width:900px;width:100%}
.site-footer .wordmark{width:100%}
.footer-note{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.8125rem;color:var(--muted)}
body[data-page=home] .site-footer{padding:25px 4% 130px}
body[data-page=home] .site-footer .logo-button{display:none}
/* Cover: the image remains the interface; offset bands echo the original study. */
.signal-stage{position:relative;isolation:isolate;height:100svh;min-height:700px;max-height:1250px;overflow:hidden;background:var(--bg)}
.signal-picture,.sig-bands{position:absolute;inset:0}
.signal-picture:focus-visible{outline-offset:-8px}
.signal-picture .art,.sig-bands .art{object-position:50% 45%}
.sig-bands{pointer-events:none;overflow:hidden}
.sig-bands img{position:absolute;inset:0}
.sig-bands img:nth-child(1){clip-path:inset(25% 0 63%);transform:translateX(4%);filter:saturate(.4) contrast(1.4)}
.sig-bands img:nth-child(2){clip-path:inset(53% 0 39%);transform:translateX(-8%);filter:hue-rotate(24deg)}
.sig-bands img:nth-child(3){clip-path:inset(76% 0 20%);transform:translateX(13%)}
.sig-top{position:absolute;top:30px;left:25px;right:35px;display:flex;justify-content:space-between;gap:20px;align-items:center;pointer-events:none}
.sig-top p{max-width:260px;padding:8px 12px;background:var(--label);color:#171d0f;font:900 1.0625rem/1.25 'Doto',monospace}
.signal-meta{padding:6px 10px;background:#0c120f;color:var(--ink);font-size:.8125rem}
.sig-retune{position:absolute;right:5%;top:39%;background:var(--button);color:var(--dark-ink);font:900 clamp(1.5rem,2.1vw,2rem)/1.15 'Doto',monospace;transform:rotate(-4deg);box-shadow:8px 7px 0 #10221c;padding:13px 18px}
.sig-retune:hover{background:var(--ink);color:var(--dark-ink)}
.sig-retune:active{translate:2px 2px}
.signal-brand{position:absolute;left:4%;bottom:157px;width:88%;filter:drop-shadow(3px 4px 0 #0d221a);pointer-events:none}
.sig-phrase{position:absolute;left:4%;bottom:107px;max-width:92%;background:var(--label);color:#182111;padding:6px 11px;font:900 clamp(.9375rem,1.5vw,1.25rem)/1.3 'Doto',monospace}
/* Image browsing: a single clean image, with tuning as a deliberate action. */
.gallery-heading,.project-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;padding:22px 4% 36px}
.gallery-heading h1,.project-heading h1,.information h1,.section-heading{font:900 clamp(3rem,6.7vw,6rem)/1.02 'Doto',monospace;letter-spacing:-.055em;color:var(--acid);overflow-wrap:anywhere}
.gallery-heading h1{max-width:950px}
.gallery-heading>.action,.media-tabs .action{background:var(--panel);font:900 1.125rem 'Doto',monospace}
.index-label{font-size:.8125rem;color:var(--muted);margin-bottom:20px;letter-spacing:.08em}
.image-deck{margin:0 4%;background:#080e0b;overflow:hidden}
.signal-readout{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;background:var(--panel);color:var(--acid);font-size:.8125rem}
.deck-enter.action{display:block;position:relative;padding:0;width:100%;height:clamp(360px,65vh,790px)}
.deck-enter .art{object-fit:contain}
.deck-enter span{position:absolute;right:20px;bottom:20px;padding:12px 15px;background:var(--acid);color:var(--dark-ink);font:900 1.0625rem 'Doto',monospace}
.deck-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 4% 24px;color:var(--muted)}
.deck-arrows{display:flex;gap:10px;font:900 1.0625rem 'Doto',monospace}
.image-index{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 18px;padding:0 4% 35px}
.image-thumb{padding:0;text-align:left;min-width:0}
.thumb-image{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--panel)}
.image-thumb img{transition:transform .25s ease}
.image-thumb:hover img{transform:translateX(3px)}
.image-thumb>span:last-child{display:block;padding:10px 0 0;font-size:.8125rem;color:var(--muted)}
.image-thumb[aria-pressed=true] .thumb-image{outline:3px solid var(--acid);outline-offset:-3px}
.image-thumb[aria-pressed=true]>span:last-child{color:var(--acid)}
.image-thumb[aria-pressed=true]>span:last-child::after{content:' / IN VIEW'}
.project-heading{align-items:flex-start}
.project-heading h1{max-width:1000px}
.project-kind{flex:0 0 auto;max-width:175px;color:var(--muted);font-size:.8125rem;text-align:right;padding-top:10px}
.image-room{margin:0 4%;background:#080e0b}
.whole-image{display:block;width:100%;height:min(80vh,1000px);min-height:360px;object-fit:contain}
.whole-image.detail-crop{object-fit:cover;object-position:50% 38%}
.image-options{display:flex;justify-content:space-between;align-items:center;gap:28px;padding:22px 4% 40px}
.image-options p{font:400 1rem/1.6 Arial,sans-serif;max-width:550px;color:var(--muted)}
.image-options button{font:900 1.0625rem 'Doto',monospace;background:var(--panel);flex-shrink:0;color:var(--acid)}
/* Film and text pages use the same signal language without disrupting the work. */
.film-index{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;padding:0 4% 50px}
.film-entry{text-decoration:none;min-width:0}
.film-cover{position:relative;display:block;aspect-ratio:9/14;overflow:hidden;background:var(--panel);margin-bottom:18px}
.film-cover img{height:100%;object-fit:cover;transition:transform .3s ease}
.film-entry:hover .film-cover img{transform:scale(1.025)}
.film-title{display:block;font:900 clamp(1.7rem,3vw,2.7rem)/1.05 'Doto',monospace;color:var(--acid);letter-spacing:-.035em}
.film-entry .small{display:block;color:var(--muted);margin-top:14px}
.film-room{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:6%;margin:0 4% 35px;align-items:center}
.film-screen{width:100%;max-width:470px;margin-inline:auto;aspect-ratio:9/16;background:#080e0b}
.film-screen video{width:100%;height:100%;object-fit:contain;display:block}
.film-side .dot{font-size:clamp(2.8rem,5vw,5rem);color:var(--acid)}
.film-copy{font:400 1.125rem/1.65 Arial,sans-serif;max-width:410px;margin:28px 0}
.frame-heading{display:flex;justify-content:space-between;gap:20px;padding:28px 4% 16px;font-size:.875rem;color:var(--muted)}
.film-stills{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:0 4% 40px}
.frame-select{padding:0;text-align:left}
.frame-select img{width:100%;aspect-ratio:9/13;object-fit:cover}
.frame-select span{display:block;padding:12px 0;color:var(--acid);font-size:.8125rem}
.project-next{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5%;align-items:center;padding:35px 4%}
.project-next p{font-size:clamp(3rem,6vw,5.5rem);color:var(--acid)}
.next-work.action{display:block;padding:0;min-width:0;position:relative;background:var(--panel);overflow:hidden}
.next-work span{display:block;padding:12px 16px;font-size:.875rem;color:var(--acid)}
.next-work img{width:100%;height:220px;object-fit:cover}
.archive-page{padding:22px 4% 40px}
.archive-intro{max-width:990px;margin-bottom:60px}
.section-heading{margin:0 0 28px}
.archive-intro>p:not(.index-label){font:400 1.125rem/1.65 Arial,sans-serif;max-width:680px}
.archive-nav{display:flex;gap:14px 26px;flex-wrap:wrap;margin:30px 0 0;font:900 1.0625rem 'Doto',monospace;color:var(--acid)}
.archive-nav a{min-height:44px;display:flex;align-items:center}
.archive-group{margin:45px 0 60px;scroll-margin-top:25px}
.archive-group h2,.bio-activity h2{font:900 clamp(2.2rem,4.2vw,3.8rem)/1.1 'Doto',monospace;letter-spacing:-.03em;color:var(--acid);margin-bottom:32px}
.record{display:grid;grid-template-columns:110px minmax(0,1fr);gap:28px;padding:28px 24px;margin-bottom:16px;background:var(--panel)}
.record:nth-of-type(even){background:#111c16}
.record:not(:has(.record-year)){grid-template-columns:1fr}
.record-year{font-size:.875rem;color:var(--acid);padding-top:8px}
.record h3{font:900 clamp(1.65rem,2.8vw,2.6rem)/1.13 'Doto',monospace;margin-bottom:14px;overflow-wrap:anywhere}
.record p{font:400 1.0625rem/1.65 Arial,sans-serif;max-width:900px}
.record .record-meta{font:400 .8125rem/1.6 'Workbench',monospace;color:var(--muted);margin-bottom:12px}
.record-link{display:inline-flex;align-items:center;min-height:44px;margin-top:14px;color:var(--acid);font:900 1.0625rem 'Doto',monospace}
.information{padding:22px 4% 40px}
.information h1{margin-bottom:40px}
.information-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6%;align-items:center}
.information-art{background:var(--panel)}
.information-art img{width:100%;max-height:720px;object-fit:cover}
.information-copy{font:400 1.125rem/1.7 Arial,sans-serif}
.information-copy p+p{margin-top:24px}
.contact-address{font:900 clamp(1.125rem,2.5vw,2rem)/1.5 'Doto',monospace;overflow-wrap:anywhere;color:var(--acid)}
.contact-links{display:flex;flex-wrap:wrap;gap:14px 24px;margin-top:25px;font:900 1.0625rem 'Doto',monospace;color:var(--acid)}
.contact-links a{display:inline-flex;align-items:center;min-height:44px}
.bio-activity{margin-top:80px}
.image-dialog{border:0;padding:20px;background:var(--panel);color:var(--ink);max-width:min(94vw,1300px);max-height:94dvh;overflow:auto}
.image-dialog::backdrop{background:#050b08ed}
.image-dialog img{max-width:100%;max-height:72dvh;width:auto;height:auto;object-fit:contain;margin:auto}
.image-dialog p{font-size:.875rem;margin-top:16px}
.dialog-close{display:block;margin:0 0 16px auto;background:var(--acid);color:var(--dark-ink);font:900 1rem 'Doto',monospace}
.dialog-close:hover{background:var(--ink);color:var(--dark-ink)}
.not-found{padding:80px 4%}
.not-found h1{font:900 clamp(3rem,7vw,6rem) 'Doto',monospace;color:var(--acid);margin-bottom:24px}
.not-found .action{margin-top:25px}
/* A short entrance works across documents without depending on View Transitions support. */
body:not([data-page=home]) main{animation:signal-in .38s cubic-bezier(.18,.76,.16,1) both}
@keyframes signal-in{from{transform:translateX(12px);opacity:.65}55%{transform:translateX(-3px);opacity:.95}to{transform:translateX(0);opacity:1}}
@media(max-width:900px){.signal-rail{font-size:.9375rem;gap:2px;justify-content:center}.signal-rail .action{padding:10px 9px}.signal-brand{bottom:200px}.sig-phrase{bottom:150px}.project-heading{display:block}.project-kind{text-align:left;max-width:none;margin-top:16px}.film-index{gap:18px}.film-title{font-size:1.8rem}.gallery-heading h1{font-size:clamp(2.8rem,8vw,5rem)}}
@media(max-width:620px){
 :root{--nav-height:128px}
 .signal-rail{width:calc(100% - 24px);bottom:12px;padding:6px;gap:0 2px;justify-content:flex-start;font-size:.9375rem}
 .signal-rail .action{padding:10px 7px}
 .signal-stage{height:100svh;min-height:700px;max-height:none}
 .sig-top{top:20px;left:17px;right:100px;display:block}
 .sig-top p{font-size:.9375rem;max-width:225px}
 .signal-meta{display:none}
 .sig-retune{top:36%;right:6%;font-size:1.5rem}
 .signal-brand{left:5%;bottom:248px;width:90%}
 .sig-phrase{left:5%;bottom:190px;max-width:90%;font-size:.9375rem;line-height:1.35}
 .site-footer{padding:50px 4% 180px}
 body[data-page=home] .site-footer{padding-bottom:180px}
 .footer-note{gap:12px;font-size:.75rem}
 .crumbs{padding:8px 8px;min-height:62px;font-size:.8125rem}
 .crumb-label{max-width:65%}
 .gallery-heading{display:block;padding:18px 4% 26px}
 .gallery-heading h1,.project-heading h1,.information h1,.section-heading{font-size:clamp(2.6rem,10vw,3.9rem);letter-spacing:-.055em}
 .gallery-heading>.action,.media-tabs{margin-top:20px}
 .index-label{font-size:.75rem;margin-bottom:15px}
 .image-deck{margin:0 3%}
 .signal-readout{padding:12px 10px;font-size:.6875rem;gap:8px}
 .deck-enter.action{height:440px;max-height:63svh;min-height:290px}
 .deck-enter span{right:12px;bottom:12px;font-size:.9375rem;padding:11px 13px}
 .deck-controls{align-items:flex-start;gap:8px;padding:18px 4%}
 .deck-controls>.small{max-width:100px;font-size:.75rem;padding-top:8px}
 .deck-arrows{gap:6px;font-size:.9375rem}
 .deck-arrows button{padding:10px 12px}
 .image-index{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px;padding:8px 4% 25px}
 .image-thumb>span:last-child{font-size:.6875rem}
 .project-heading{padding:15px 4% 25px}
 .project-kind{font-size:.75rem;margin-top:14px}
 .whole-image{height:auto;min-height:0;max-height:75svh;object-fit:contain}
 .whole-image.detail-crop{height:500px;object-fit:cover}
 .image-options{display:block;padding:20px 4% 28px}
 .image-options button{margin-top:18px}
 .film-index{grid-template-columns:1fr;gap:40px;padding:0 5% 35px}
 .film-cover{aspect-ratio:4/5;margin-bottom:16px}
 .film-title{font-size:2.25rem}
 .film-room{grid-template-columns:1fr;gap:32px;margin:0 5% 25px}
 .film-screen{max-width:400px}
 .film-side .dot{font-size:3rem}
 .film-copy{font-size:1.0625rem;margin:22px 0}
 .frame-heading{font-size:.75rem;padding-top:25px}
 .film-stills{gap:12px;padding-bottom:25px}
 .frame-select span{font-size:.6875rem}
 .project-next{grid-template-columns:1fr;gap:26px;padding-top:28px}
 .project-next p{font-size:3.2rem}
 .next-work img{height:180px}
 .archive-page,.information{padding-top:18px}
 .archive-intro{margin-bottom:38px}
 .archive-intro>p:not(.index-label){font-size:1.0625rem}
 .archive-nav{font-size:1rem;gap:6px 22px}
 .archive-group h2,.bio-activity h2{font-size:2.25rem;overflow-wrap:anywhere}
 .record{grid-template-columns:1fr;gap:12px;padding:22px 17px;margin-bottom:12px}
 .record-year{padding:0}
 .record h3{font-size:1.8rem}
 .record p{font-size:1rem}
 .record .record-meta{font-size:.75rem}
 .information h1{margin-bottom:28px}
 .information-body{grid-template-columns:1fr;gap:28px}
 .information-art img{max-height:510px}
 .information-copy{font-size:1.0625rem}
 .bio-activity{margin-top:50px}
 .contact-address{font-size:1.2rem}
 .image-dialog{padding:12px}
}
@media(max-width:350px){.sig-phrase{bottom:185px}.signal-brand{bottom:250px}.signal-rail{font-size:.875rem}.signal-stage{min-height:720px}.deck-arrows button{padding-inline:9px}}
@media(prefers-reduced-motion:reduce){body:not([data-page=home]) main{animation:none!important}}

/* Reserve the actual wrapped menu height, including after web fonts load. */
.sig-phrase{bottom:max(var(--copy-floor,107px),var(--dock-clearance,107px))}
.signal-brand{bottom:calc(max(var(--copy-floor,107px),var(--dock-clearance,107px)) + var(--copy-height,32px) + 18px)}
.site-footer,body[data-page=home] .site-footer{padding-bottom:max(140px,calc(var(--rail-height,76px) + 56px))}
@media(max-width:900px){:root{--copy-floor:150px}}
@media(max-width:620px){:root{--copy-floor:190px}.site-footer,body[data-page=home] .site-footer{padding-bottom:max(180px,calc(var(--rail-height,128px) + 56px))}}
@media(max-width:350px){:root{--copy-floor:185px}}
