/* caratteri serviti da questo dominio (Tektur, Hanken Grotesk, Martian Mono: SIL Open Font License 1.1) */
@font-face{font-family:"Tektur";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/tektur-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Tektur";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/tektur-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Tektur";font-style:normal;font-weight:900;font-display:swap;src:url(/fonts/tektur-latin-900-normal.woff2) format("woff2")}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/hanken-grotesk-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/hanken-grotesk-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Hanken Grotesk";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/hanken-grotesk-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Martian Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/martian-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Martian Mono";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/martian-mono-latin-500-normal.woff2) format("woff2")}
/* layout: a 440vh stage whose sticky canvas is the city in the rain; the page opens on the avenue, scrolling up climbs to the sky and the head of the tower, scrolling down descends to the wet street; sections below are the lit shop window on black */
:root{--bg:#06080E;--ink:#E8EEF5;--ink2:#8D98A8;--ink3:#515C6B;--red:#FF2244;--cyan:#39E6FF;--mag:#FF4FD8;--line:rgba(232,238,245,.12);--disp:"Tektur",system-ui,sans-serif;--body:"Hanken Grotesk",system-ui,sans-serif;--mono:"Martian Mono",ui-monospace,monospace;color-scheme:dark}
html,body{background:var(--bg);color:var(--ink)}
body{margin:0;font-family:var(--body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:var(--ink);text-decoration:none;border-bottom:1px solid rgba(232,238,245,.3)}
a:hover{border-color:var(--cyan)}
a:focus-visible,button:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}

/* boot */
.boot{position:fixed;inset:0;z-index:50;background:#000;display:flex;align-items:center;justify-content:center;transition:opacity .8s ease;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.boot.off{opacity:0;pointer-events:none}
.boot pre{font:500 12.5px/2 var(--mono);color:var(--ink);letter-spacing:.08em;margin:0;text-align:center;white-space:pre-wrap;min-height:8em}
.boot pre b{color:var(--red);font-weight:500;text-shadow:0 0 12px rgba(255,34,68,.9)}
.boot .cur{display:inline-block;width:.55em;height:1em;background:var(--cyan);vertical-align:-.15em;animation:blink 1s steps(2) infinite}
@keyframes blink{to{opacity:0}}
.skip{position:absolute;left:50%;bottom:max(26px,env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:none;border:1px solid rgba(232,238,245,.25);color:var(--ink2);font:400 10.5px var(--mono);letter-spacing:.2em;text-transform:uppercase;padding:8px 16px;border-radius:99px;cursor:pointer;opacity:0;transition:opacity .4s}
.boot.ready .skip{opacity:1}

/* stage */
.stage{height:440vh;position:relative}
.sticky{position:sticky;top:0;height:100vh;height:100dvh;overflow:hidden;background:var(--bg)}
canvas{display:block;width:100%;height:100%}
.hud{position:absolute;inset:0;pointer-events:none;display:grid;grid-template-rows:auto 1fr auto;grid-template-columns:1fr minmax(0,auto) 1fr;padding-top:max(26px,env(safe-area-inset-top,0px));padding-bottom:max(22px,env(safe-area-inset-bottom,0px));padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.mark{grid-column:2;grid-row:1;font:700 11.5px var(--disp);letter-spacing:.46em;padding-left:.46em;text-align:center;color:var(--ink);text-shadow:0 0 14px rgba(57,230,255,.5);opacity:0;transition:opacity 1.4s ease .6s}
.on .mark{opacity:1}
.rd{grid-row:3;font:400 10.5px/1.75 var(--mono);color:var(--ink2);letter-spacing:.06em;align-self:end;font-variant-numeric:tabular-nums;opacity:0;transition:opacity 1.4s ease .9s}
.on .rd{opacity:1}
.rd b{color:var(--cyan);font-weight:500}
.rd.l{grid-column:1;text-align:left}.rd.r{grid-column:3;text-align:right}
.reveal{grid-column:2;grid-row:2;align-self:end;justify-self:center;text-align:center;max-width:min(80vw,720px);padding-bottom:2.5vh;opacity:0;transform:translateY(10px);transition:opacity 1.2s ease 1.6s,transform 1.2s ease 1.6s}
.on .reveal{opacity:1;transform:none}
.reveal h1{font:900 clamp(30px,6vw,76px)/1 var(--disp);letter-spacing:.12em;padding-left:.12em;margin:0 0 14px;color:#fff;text-shadow:0 0 6px rgba(255,34,68,.9),0 0 22px rgba(255,34,68,.75),0 0 60px rgba(255,34,68,.45);text-wrap:balance}
.reveal p{margin:0;font:400 clamp(14px,1.5vw,19px)/1.5 var(--body);color:var(--ink2);text-wrap:balance;letter-spacing:.02em}
.nogl canvas{display:none}
.nogl .mark,.nogl .rd,.nogl .reveal{opacity:1;transform:none}

/* sections */
.after{position:relative;background:linear-gradient(180deg,#06080E,#040508 30%);padding-block:6vh 5vh;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.sec{max-width:1080px;margin:0 auto;text-align:center;padding-block:7vh}
.eyebrow{font:400 10.5px var(--mono);letter-spacing:.32em;color:var(--cyan);text-transform:uppercase;margin:0 0 14px;text-shadow:0 0 10px rgba(57,230,255,.5)}
h2{font:700 clamp(22px,3.2vw,38px)/1.1 var(--disp);letter-spacing:.06em;margin:0 0 10px;text-wrap:balance}
.lede{max-width:56ch;margin:0 auto;color:var(--ink2);font-size:clamp(15px,1.3vw,18px)}
.volumi{display:flex;justify-content:center;align-items:stretch;gap:clamp(14px,3vw,36px);flex-wrap:wrap;padding-block:34px;margin-top:10px}
.vol{position:relative;width:clamp(118px,15vw,172px);aspect-ratio:17/24.4;max-width:100%;border:1px solid rgba(57,230,255,.45);box-shadow:0 0 0 1px rgba(0,0,0,.6) inset,0 0 18px rgba(57,230,255,.25),0 24px 40px rgba(0,0,0,.6);background:linear-gradient(180deg,#0b0f18,#05070b);display:flex;flex-direction:column;justify-content:space-between;padding:14px 12px;box-sizing:border-box;text-align:left;transition:box-shadow .4s,transform .4s}
.vol:hover,.vol:focus-visible{box-shadow:0 0 0 1px rgba(0,0,0,.6) inset,0 0 34px rgba(57,230,255,.5),0 24px 40px rgba(0,0,0,.6);transform:translateY(-4px)}
.vol .t{font:900 clamp(15px,1.7vw,22px)/1 var(--disp);letter-spacing:.06em;color:#fff;text-shadow:0 0 10px rgba(255,34,68,.8),0 0 26px rgba(255,34,68,.5)}
.vol .s{font:400 9.5px/1.55 var(--mono);color:var(--ink2);letter-spacing:.06em}
.vol .k{font:900 22px/1 var(--disp);color:var(--cyan);text-shadow:0 0 12px rgba(57,230,255,.9)}
.vol .row{display:flex;justify-content:space-between;align-items:flex-end}
.vol.ghost{border-style:dashed;border-color:rgba(232,238,245,.22);box-shadow:none;background:none}
.vol.ghost .t{color:var(--ink2);text-shadow:none}
.vol.ghost .k{color:var(--ink3);text-shadow:none}
.vol.ghost:hover{transform:none}
footer{max-width:1080px;margin:0 auto;padding-block:7vh 2vh;text-align:center;border-top:1px solid var(--line)}
footer p{margin:0 0 10px;font:400 11px/1.9 var(--mono);color:var(--ink3);letter-spacing:.04em}
footer .colophon{color:var(--ink2);font-size:12px}
footer .colophon b{color:var(--ink);font-weight:500}
@media (prefers-reduced-motion:reduce){.vol{transition:none}.boot .cur{animation:none}}
@media (max-width:640px){.rd{font-size:9.5px}.reveal{max-width:92vw;padding-bottom:9vh}}

/* le copertine nelle card */
.vol{padding:0;overflow:hidden;aspect-ratio:5/8;background:#05070b}
.vol img{display:block;width:100%;height:100%;object-fit:cover}
.vol.ghost{aspect-ratio:2/3;border-style:solid;border-color:rgba(232,238,245,.14)}
.vol.ghost img{opacity:.55;filter:saturate(.5)}
/* pagine di testo: privacy, note legali, 404 */
.page{max-width:720px;margin:0 auto;padding:max(10vh,80px) max(16px,env(safe-area-inset-left,0px)) 8vh max(16px,env(safe-area-inset-right,0px))}
.page .eyebrow{text-align:left}
.page h1{font:700 clamp(26px,4vw,44px)/1.1 var(--disp);letter-spacing:.06em;margin:0 0 18px;text-wrap:balance}
.page h2{font:700 clamp(17px,2vw,22px)/1.3 var(--disp);letter-spacing:.04em;margin:34px 0 8px;text-wrap:balance}
.page p,.page li{color:var(--ink2);font-size:16px}
.page ul{padding-left:1.2em}
.page .back{display:inline-block;margin-top:36px;font:400 11px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink2)}
.page footer{border-top:1px solid var(--line);margin-top:8vh;padding-top:4vh}
.page .mark{position:static;display:block;margin:0 0 6vh;text-align:left;opacity:1;padding-left:0}
