/* =========================================================================
   KYKLOS · una bizzarria in 37 cortometraggi
   Pagina autonoma: nessun legame grafico con il resto del sito.
   Nero, oro, porpora. Caratteri propri.
   ========================================================================= */

@font-face{font-family:"GFS Didot";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/didot-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"GFS Didot";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/didot-greek.woff2") format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}
@font-face{font-family:"GFS Didot";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/didot-greek-ext.woff2") format("woff2");unicode-range:U+1F00-1FFF}
@font-face{font-family:"EB Garamond";font-style:normal;font-weight:400 600;font-display:swap;src:url("fonts/garamond-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"EB Garamond";font-style:normal;font-weight:400 600;font-display:swap;src:url("fonts/garamond-greek.woff2") format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}
@font-face{font-family:"EB Garamond";font-style:normal;font-weight:400 600;font-display:swap;src:url("fonts/garamond-greek-ext.woff2") format("woff2");unicode-range:U+1F00-1FFF}
@font-face{font-family:"EB Garamond";font-style:italic;font-weight:400 600;font-display:swap;src:url("fonts/garamond-italic-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"EB Garamond";font-style:italic;font-weight:400 600;font-display:swap;src:url("fonts/garamond-italic-greek.woff2") format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}
@font-face{font-family:"EB Garamond";font-style:italic;font-weight:400 600;font-display:swap;src:url("fonts/garamond-italic-greek-ext.woff2") format("woff2");unicode-range:U+1F00-1FFF}
@font-face{font-family:"Kyklos Sans";font-style:normal;font-weight:300 800;font-stretch:75% 100%;font-display:swap;src:url("fonts/opensans-cond-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

@property --dim{syntax:"<number>";inherits:true;initial-value:1}

/* ---------- base ---------- */
:root{
  --k-ink:#efe7d6;
  --k-dim:#a89f8c;
  --k-mute:#6f6857;
  --k-gold:#c9a45c;
  --k-gold-hi:#f1dca2;
  --k-gold-lo:#7a5c27;
  --k-red:#8f220d;
  --k-red-hi:#c43b1f;
  --k-line:rgba(201,164,92,.22);
  --k-didot:"GFS Didot","Didot","Bodoni 72","Bodoni MT",serif;
  --k-gar:"EB Garamond",Garamond,"Times New Roman",serif;
  --k-cond:"Kyklos Sans","Arial Narrow",sans-serif;
  --gut:clamp(20px,4.2vw,64px);
  --ease:cubic-bezier(.2,.7,.2,1);
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;background:#000}
body.k-body{background:#000;color:var(--k-ink);font-family:var(--k-gar);font-size:19px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
body.k-body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:900;opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:256px 256px}
body.is-locked{overflow:hidden}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--k-red);color:#fff}
:focus-visible{outline:1px solid var(--k-gold-hi);outline-offset:4px}
.k-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.k{position:relative;padding-bottom:0}
.k-caption__num,.k-tile__num,.k-viewer__num,.k-viewer__ext,.k-def__src,.k-screen figcaption{font-family:var(--k-cond);font-stretch:75%;font-variation-settings:"wdth" 75}

/* ---------- il mosaico d'oro ---------- */
.k-mosaic{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;transition:opacity .5s linear}
.k>section{position:relative;z-index:1}

/* ---------- icone rotanti ---------- */
.k-turn{display:inline-block;width:1.2em;height:1.2em;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.28em;flex:none}
.k-turn--cw{animation:k-cw 14s linear infinite}
.k-turn--ccw{animation:k-ccw 14s linear infinite}
@keyframes k-cw{to{transform:rotate(360deg)}}
@keyframes k-ccw{to{transform:rotate(-360deg)}}

/* ---------- la ruota: prima cosa della pagina ---------- */
.k-wheel{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(18px,3.5vh,44px) var(--gut) clamp(64px,9vh,96px)}
.k-stage{position:relative;width:min(1060px,94vw,calc(100svh - 190px));aspect-ratio:1;flex:none;touch-action:manipulation}
.k-ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible;animation:k-cw 320s linear infinite}
.k-ring text{font-family:var(--k-didot);font-size:20px;fill:var(--k-gold);opacity:.72}
.k-disc{position:absolute;inset:7%;--lx:50%;--ly:50%;transition:--dim .9s ease}
.k-disc::before{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(closest-side,#000 96%,rgba(0,0,0,0) 100%);box-shadow:0 0 120px 30px rgba(0,0,0,.85)}
.k-stage.is-lit .k-disc{--dim:.26}
.k-disc__img{
  position:relative;width:100%;height:100%;object-fit:contain;clip-path:circle(50% at 50.4% 50.2%);
  -webkit-mask-image:radial-gradient(circle at var(--lx) var(--ly),#000 0,#000 17%,rgba(0,0,0,var(--dim)) 42%);
  mask-image:radial-gradient(circle at var(--lx) var(--ly),#000 0,#000 17%,rgba(0,0,0,var(--dim)) 42%);
  animation:k-wheel-in 3s cubic-bezier(.2,.7,.1,1) both;
}
@keyframes k-wheel-in{from{opacity:0;transform:rotate(-30deg) scale(.9)}to{opacity:1;transform:none}}
.k-medal{
  position:absolute;left:var(--cx);top:var(--cy);width:29%;aspect-ratio:1;border-radius:50%;overflow:hidden;pointer-events:none;
  transform:translate(-50%,-50%) scale(.82);opacity:0;
  box-shadow:0 0 0 1px rgba(241,220,162,.8),0 0 0 7px #000,0 0 0 8px rgba(201,164,92,.38),0 0 90px 18px rgba(201,164,92,.16);
  transition:opacity .45s ease,transform .9s cubic-bezier(.2,.8,.2,1);background:#070504;
}
.k-medal img{width:100%;height:100%;object-fit:cover;filter:sepia(.28) contrast(1.08) saturate(1.05) brightness(.95)}
.k-medal::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,transparent 55%,rgba(0,0,0,.55) 100%)}
.k-medal.is-on{opacity:1;transform:translate(-50%,-50%) scale(1)}
.k-map{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.k-spoke polygon{fill:url(#k-glow);filter:url(#k-feather);opacity:0;transition:opacity 1.1s cubic-bezier(.4,0,.2,1)}
.k-spoke circle{fill:rgba(0,0,0,0);stroke:rgba(241,220,162,0);stroke-width:5;transition:stroke 1s ease}
.k-spoke:hover polygon,.k-spoke:focus-visible polygon,.k-spoke.is-on polygon{opacity:1;transition-duration:.6s}
.k-spoke:hover circle,.k-spoke:focus-visible circle,.k-spoke.is-on circle{stroke:rgba(241,220,162,.4)}
.k-spoke:focus{outline:none}
.k-radius{stroke:#e2c682;stroke-width:3.5;stroke-linecap:round;opacity:0;stroke-dasharray:1;stroke-dashoffset:1;pointer-events:none;filter:drop-shadow(0 0 8px rgba(241,220,162,.65))}
.k-radius.is-drawn{opacity:.9;stroke-dashoffset:0;transition:stroke-dashoffset .9s cubic-bezier(.3,.7,.1,1),opacity .3s}
.k-spark{fill:#fff3cf;opacity:0;pointer-events:none;filter:drop-shadow(0 0 16px rgba(241,220,162,1))}
.k-spark.is-on{opacity:1;animation:k-pulse 1.8s ease-in-out infinite}
@keyframes k-pulse{50%{opacity:.45}}
.k-light{position:absolute;left:0;top:0;width:40%;aspect-ratio:1;border-radius:50%;pointer-events:none;opacity:0;
  background:radial-gradient(circle,rgba(243,222,166,.2) 0%,rgba(201,164,92,.07) 38%,transparent 70%);
  transform:translate(calc(var(--px,0px) - 50%),calc(var(--py,0px) - 50%));mix-blend-mode:screen;transition:opacity .6s ease}
.k-stage.is-lit .k-light{opacity:1}
.k-caption{margin-top:12px;text-align:center;max-width:900px;animation:k-rise 2.6s .9s both}
.k-caption__num{display:flex;justify-content:center;align-items:center;gap:14px;min-height:22px;font-size:14px;letter-spacing:.36em;color:var(--k-gold);text-transform:uppercase}
.k-caption__num i{font-style:normal;opacity:.55}
.k-caption__num .k-turn{width:18px;height:18px}
.k-caption__title{display:block;margin-top:8px;min-height:1.15em;font-family:var(--k-didot);font-size:clamp(26px,3.1vw,44px);line-height:1.12;color:var(--k-ink);text-wrap:balance}
@keyframes k-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.k-down{position:absolute;left:50%;bottom:18px;width:1px;height:56px;overflow:hidden;transform:translateX(-50%)}
.k-down__line{display:block;width:1px;height:100%;background:linear-gradient(transparent,var(--k-gold));animation:k-drip 2.8s ease-in-out infinite}
@keyframes k-drip{0%{transform:translateY(-100%)}60%{transform:translateY(0)}100%{transform:translateY(100%)}}

/* ---------- sezioni di testo ---------- */
.k-sec{padding:clamp(100px,13vw,200px) var(--gut) 0}
.k-head{max-width:920px;margin:0 auto clamp(44px,6vw,90px);text-align:center}
.k-h2{font-family:var(--k-didot);font-weight:400;font-size:clamp(40px,5.8vw,90px);line-height:1.02;letter-spacing:.005em;text-wrap:balance}
.k-h2--small{font-size:clamp(34px,4vw,60px);text-align:center}
.k-lead{font-style:italic;font-size:clamp(21px,2.2vw,29px);line-height:1.45;color:var(--k-dim);margin-top:26px;text-wrap:balance}

/* ---------- trailer, Anabasis, Katabasis ---------- */
.k-screen{max-width:1100px;margin:0 auto}
.k-play{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:#000;cursor:pointer;
  box-shadow:0 0 0 1px var(--k-line),0 50px 140px -50px rgba(201,164,92,.28)}
.k-play img{width:100%;height:100%;object-fit:cover;filter:brightness(.58) sepia(.22) contrast(1.05);transition:transform 1.6s var(--ease),filter .9s}
.k-play:hover img{transform:scale(1.03);filter:brightness(.82) sepia(0)}
.k-play__btn{position:absolute;left:50%;top:50%;width:96px;height:96px;margin:-48px 0 0 -48px;border-radius:50%;border:1px solid rgba(241,220,162,.75);display:grid;place-items:center;transition:transform .7s cubic-bezier(.2,.8,.2,1),background .7s,box-shadow .7s}
.k-play__btn::before{content:"";border-style:solid;border-width:13px 0 13px 21px;border-color:transparent transparent transparent var(--k-gold-hi);margin-left:7px}
.k-play:hover .k-play__btn{transform:scale(1.08);background:rgba(201,164,92,.12);box-shadow:0 0 50px rgba(201,164,92,.3)}
.k-play iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.k-screen figcaption{text-align:center;margin-top:20px;font-size:14px;letter-spacing:.34em;text-transform:uppercase;color:var(--k-dim)}
.k-diptych{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4.5vw,72px);max-width:1300px;margin:clamp(64px,9vw,130px) auto 0}
.k-panel__name{margin-top:24px;display:flex;align-items:center;gap:16px;font-family:var(--k-didot);font-size:clamp(28px,3vw,46px);line-height:1.05}
.k-panel--ccw .k-panel__name{justify-content:flex-end;text-align:right}
.k-panel__name .k-turn{width:.8em;height:.8em;color:var(--k-gold)}
.k-screen--small{width:min(480px,78%);margin:clamp(72px,9vw,128px) auto 0}
.k-screen--small .k-play__btn{width:72px;height:72px;margin:-36px 0 0 -36px}
.k-screen--small .k-play__btn::before{border-width:10px 0 10px 16px;margin-left:5px}
.k-screen .k-screen__name{margin-top:22px;font-family:var(--k-didot);font-size:clamp(24px,2.4vw,34px);line-height:1.1;letter-spacing:.01em;text-transform:none;font-stretch:normal;font-variation-settings:normal;color:var(--k-ink)}

/* ---------- proiezioni ---------- */
.k-proj__list{max-width:760px;margin:36px auto 0;border-top:1px solid var(--k-line)}
.k-proj__list li{padding:18px 0;border-bottom:1px solid var(--k-line);text-align:center;font-size:clamp(20px,2vw,25px);color:var(--k-ink)}

/* ---------- per altrui parole ---------- */
.k-defs{max-width:860px;margin:0 auto}
.k-def{position:relative;padding:clamp(56px,7vw,96px) 0;text-align:center}
.k-def+.k-def{border-top:1px solid var(--k-line)}
.k-def+.k-def::before{content:"";position:absolute;top:0;left:50%;width:9px;height:9px;background:var(--k-gold);transform:translate(-50%,-50%) rotate(45deg);box-shadow:0 0 18px rgba(201,164,92,.55)}
.k-def__label{font-family:var(--k-didot);font-weight:400;font-size:clamp(40px,5.2vw,76px);line-height:1.02;letter-spacing:.005em}
.k-def__quote{margin:34px auto 0;max-width:36em;font-size:clamp(20px,1.95vw,24px);line-height:1.62;color:#ddd4c2;text-align:justify;hyphens:auto;-webkit-hyphens:auto}
.k-def__quote::first-letter{float:left;font-family:var(--k-didot);font-size:3.5em;line-height:.82;padding:.08em .1em 0 0;color:var(--k-gold)}
.k-def__quote strong{font-weight:500;color:var(--k-gold-hi)}
.k-def__src{margin-top:22px;font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--k-mute)}
.k-def__src em{font-style:normal;color:var(--k-dim)}

/* ---------- che cosa non è ---------- */
.k-nots{display:flex;flex-direction:column;align-items:center;text-align:center}
.k-nots li{font-family:var(--k-didot);font-size:clamp(46px,8.4vw,136px);line-height:1.08;color:var(--k-ink)}
.k-nots li span{position:relative;display:inline-block;transition:color 1.2s ease .9s}
.k-nots li span::after{content:"";position:absolute;left:-5%;right:-5%;top:56%;height:max(2px,.045em);background:var(--k-red-hi);
  box-shadow:0 0 20px rgba(196,59,31,.6);transform:scaleX(0);transform-origin:left center;transition:transform 1.15s cubic-bezier(.75,0,.2,1) .35s}
.k-nots li:nth-child(even) span::after{transform-origin:right center}
.k-js .k-nots li.is-in span::after{transform:scaleX(1)}
.k-js .k-nots li.is-in span{color:var(--k-mute)}
html:not(.k-js) .k-nots li span::after{transform:scaleX(1)}

/* ---------- istruzioni ---------- */
.k-steps{max-width:880px;margin:0 auto;counter-reset:s}
.k-steps li{counter-increment:s;display:grid;grid-template-columns:96px 1fr;gap:18px;align-items:baseline;padding:20px 0;border-bottom:1px solid rgba(201,164,92,.13)}
.k-steps li:first-child{border-top:1px solid rgba(201,164,92,.13)}
.k-steps__n::before{content:counter(s,upper-roman);font-family:var(--k-didot);font-size:27px;color:var(--k-red-hi);letter-spacing:.04em}
.k-steps__t{font-size:clamp(20px,2.05vw,26px);line-height:1.45}
.k-steps__t strong{font-weight:500;color:var(--k-gold-hi)}

/* ---------- invito ---------- */
.k-invite__sheet{max-width:1100px;margin:0 auto 22px;box-shadow:0 0 0 1px var(--k-line),0 40px 120px -60px rgba(201,164,92,.3)}
.k-zoom{display:block;cursor:zoom-in}

/* ---------- i 37 a mosaico ---------- */
.k-tiles{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:3px;grid-auto-flow:dense}
.k-tile a{position:relative;display:block;aspect-ratio:1;overflow:hidden;background:#0b0906;isolation:isolate}
.k-tile img{width:100%;height:100%;object-fit:cover;--z:1;transform:scale(var(--z));filter:grayscale(1) sepia(.6) brightness(.46) contrast(1.18);transition:filter .8s ease,transform 1.4s var(--ease)}
.k-tile img.is-lb{--z:1.34}
.k-tile a:hover img,.k-tile a:focus-visible img{filter:none;transform:scale(calc(var(--z) * 1.07))}
.k-tile__cap{position:absolute;inset:0;z-index:3;pointer-events:none}
.k-tile a::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(201,164,92,0);transition:box-shadow .6s;z-index:2}
.k-tile a:hover::after,.k-tile a:focus-visible::after{box-shadow:inset 0 0 0 1px rgba(241,220,162,.7)}
.k-tile__num{position:absolute;left:9px;top:8px;font-size:11.5px;letter-spacing:.16em;color:var(--k-gold-hi);text-shadow:0 1px 8px #000}
.k-tile__num i{font-style:normal;margin:0 .35em;opacity:.55}
.k-tile__title{position:absolute;inset:auto 0 0 0;padding:34px 10px 9px;font-size:15.5px;line-height:1.18;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;background:linear-gradient(transparent,rgba(0,0,0,.92));opacity:0;transform:translateY(8px);transition:opacity .5s,transform .6s}
.k-tile a:hover .k-tile__title,.k-tile a:focus-visible .k-tile__title{opacity:1;transform:none}
.k-tile--center{grid-column:4 / span 2;grid-row:2 / span 2}
.k-tile--center img{filter:grayscale(1) sepia(.7) brightness(.36) contrast(1.2)}
.k-tile--center .k-tile__num{left:50%;top:46%;transform:translate(-50%,-50%);font-family:var(--k-didot);font-size:clamp(64px,8vw,132px);letter-spacing:0;line-height:1;color:var(--k-gold-hi);text-shadow:0 0 40px rgba(201,164,92,.65)}
.k-tile--center .k-tile__title{opacity:1;transform:none;text-align:center;font-family:var(--k-didot);font-size:clamp(20px,1.8vw,26px);background:none;padding-bottom:18px}

/* tessere irregolari: la forma di ogni tessera la calcola kyklos.js */
.k-tiles.is-mosaic{display:block;position:relative;gap:0}
.is-mosaic .k-tile{position:absolute;transform-origin:var(--gx) var(--gy);transition:transform .9s cubic-bezier(.2,.8,.2,1),filter .6s ease}
.is-mosaic .k-tile a{position:absolute;inset:0;aspect-ratio:auto;clip-path:var(--clip);-webkit-clip-path:var(--clip)}
.is-mosaic .k-tile a::after{inset:0;box-shadow:none;background:radial-gradient(circle at var(--gx) var(--gy),rgba(0,0,0,.6) 0,rgba(0,0,0,0) 62%);opacity:0;transition:opacity .6s}
.is-mosaic .k-tile a:hover::after,.is-mosaic .k-tile a:focus-visible::after{box-shadow:none;opacity:1}
.is-mosaic .k-tile a:focus-visible{outline:none}
.is-mosaic .k-tile:hover,.is-mosaic .k-tile:focus-within{z-index:4;filter:drop-shadow(0 0 1px rgba(241,220,162,.9)) drop-shadow(0 0 18px rgba(201,164,92,.32))}
.k-tiles.is-mosaic{background:#120e08}
.k-tile__edge{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:visible}
.k-tile__edge polygon{fill:none;stroke:rgba(226,198,130,.34);stroke-width:2.2;vector-effect:non-scaling-stroke;transition:stroke .6s ease}
.is-mosaic .k-tile a:hover .k-tile__edge polygon,.is-mosaic .k-tile a:focus-visible .k-tile__edge polygon{stroke:rgba(241,220,162,.95)}
.is-mosaic .k-tile img{filter:grayscale(1) sepia(.6) brightness(.54) contrast(1.16)}
.is-mosaic .k-tile--center img{filter:grayscale(1) sepia(.7) brightness(.4) contrast(1.2)}
.is-mosaic .k-tile a:hover img,.is-mosaic .k-tile a:focus-visible img{filter:none}
.is-mosaic .k-tile__cap{inset:auto;left:var(--tx,var(--gx));top:var(--gy);width:var(--cw);transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center}
.is-mosaic .k-tile__num{position:static;display:block;font-size:12px;text-shadow:0 0 6px #000,0 1px 12px #000}
.is-mosaic .k-tile__title{position:static;width:100%;padding:0;background:none;transform:translateY(6px);hyphens:auto;-webkit-hyphens:auto;text-shadow:0 0 4px #000,0 1px 14px #000,0 0 30px rgba(0,0,0,.8)}
.is-mosaic .k-tile a:hover .k-tile__title,.is-mosaic .k-tile a:focus-visible .k-tile__title{transform:none}
.is-mosaic .k-tile--center .k-tile__num{position:static;transform:none;font-size:clamp(60px,7.4vw,124px)}
.is-mosaic .k-tile--center .k-tile__cap{gap:0}
.is-mosaic .k-tile--center .k-tile__title{transform:none;padding:0}

/* ---------- sigillo finale ---------- */
.k-seal{min-height:78vh;display:grid;place-items:center;padding:clamp(80px,12vw,160px) var(--gut)}
.k-seal__name{font-family:var(--k-didot);font-weight:400;font-size:clamp(64px,14vw,230px);line-height:.95;letter-spacing:.16em;margin-right:-.16em;text-align:center}
.k-seal__name span{
  background:linear-gradient(105deg,#6e5222 0%,#b58e45 16%,#f4e2ae 27%,#fff6d8 31%,#d7b46a 38%,#8c6a2e 55%,#c9a45c 72%,#f0da9c 82%,#7a5c27 100%);
  background-size:260% 100%;background-position:100% 0;
  -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
  animation:k-shine 11s ease-in-out infinite;filter:drop-shadow(0 0 42px rgba(201,164,92,.16));
}
@keyframes k-shine{0%,100%{background-position:100% 0}50%{background-position:0% 0}}

/* ---------- comparsa discreta ---------- */
.k-js [data-reveal]{opacity:0;transform:translate3d(0,22px,0);transition:opacity 1s var(--ease),transform 1.2s var(--ease)}
.k-js [data-reveal].is-in{opacity:1;transform:none}

/* ---------- visore dei cortometraggi ---------- */
.k-viewer,.k-lb{position:fixed;inset:0;z-index:500;display:grid;place-items:center;padding:64px var(--gut) 28px;background:#000;opacity:0;transition:opacity .45s ease}
.k-viewer[hidden],.k-lb[hidden]{display:none}
.k-viewer.is-open,.k-lb.is-open{opacity:1}
.k-viewer__close{position:absolute;top:12px;right:12px;width:52px;height:52px;display:grid;place-items:center;color:var(--k-dim);z-index:2}
.k-viewer__close:hover{color:var(--k-ink)}
.k-viewer__body{width:min(1140px,100%,calc((100svh - 280px) * 16 / 9))}
.k-viewer__frame{position:relative;aspect-ratio:16/9;background:#050403;box-shadow:0 0 0 1px var(--k-line),0 0 140px -30px rgba(201,164,92,.3)}
.k-viewer__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.k-viewer__num{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:24px;font-size:13.5px;letter-spacing:.36em;color:var(--k-gold)}
.k-viewer__num i{font-style:normal;opacity:.55}
.k-viewer__num .k-turn{width:17px;height:17px}
.k-viewer__title{text-align:center;font-family:var(--k-didot);font-weight:400;font-size:clamp(28px,3.4vw,48px);line-height:1.08;margin-top:8px;text-wrap:balance}
.k-viewer__nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:22px;margin-top:26px}
.k-viewer__go{display:inline-flex;align-items:center;gap:14px;justify-self:start;color:var(--k-dim);font-size:18px;text-align:left;line-height:1.2;transition:color .3s}
.k-viewer__go--cw{justify-self:end;text-align:right}
.k-viewer__go .k-turn{width:36px;height:36px;color:var(--k-gold);transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.k-viewer__go:hover{color:var(--k-ink)}
.k-viewer__go:hover .k-turn{transform:rotate(-140deg)}
.k-viewer__go--cw:hover .k-turn{transform:rotate(140deg)}
.k-viewer__ext{font-size:11.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--k-mute);border-bottom:1px solid var(--k-line);padding-bottom:4px;white-space:nowrap}
.k-viewer__ext:hover{color:var(--k-gold)}
.k-lb img{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 0 0 1px var(--k-line)}

/* ---------- schermi medi e piccoli ---------- */
@media (max-width:980px){
  .is-mosaic .k-tile__title{font-size:14px;line-height:1.14}
  .k-tiles{grid-template-columns:repeat(6,minmax(0,1fr))}
  .k-tile--center{grid-column:3 / span 2;grid-row:2 / span 2}
}
@media (max-width:700px){
  body.k-body{font-size:18px}
  .k-stage{width:min(96vw,calc(100svh - 200px))}
  .k-ring text{font-size:24px}
  .k-diptych{grid-template-columns:1fr}
  .k-panel--ccw .k-panel__name{justify-content:flex-start;text-align:left}
  .k-steps li{grid-template-columns:52px 1fr}
  .k-tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:2px}
  .k-tile--center{grid-column:2 / span 2;grid-row:3 / span 2}
  .k-tile__title{opacity:1;transform:none;font-size:12px;padding:22px 6px 6px;-webkit-line-clamp:2}
  .k-tile__num{font-size:10px;left:6px;top:5px}
  .is-mosaic .k-tile__num{font-size:10px}
  .is-mosaic .k-tile__cap{gap:3px}
  .is-mosaic .k-tile__title{font-size:12px;line-height:1.1;-webkit-line-clamp:2}
  .k-def__quote{text-align:left}
  .k-seal__name{letter-spacing:.1em;margin-right:-.1em}
  .k-viewer__nav{grid-template-columns:1fr 1fr}
  .k-viewer__ext{grid-column:1 / -1;grid-row:2;justify-self:center}
  .k-viewer__go{font-size:15px}
}
@media (hover:none){
  .k-tile__title{opacity:1;transform:none}
  .is-mosaic .k-tile__title{transform:none;-webkit-line-clamp:2}
  .k-tile img{filter:grayscale(.4) sepia(.3) brightness(.62) contrast(1.1)}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .k-js [data-reveal]{opacity:1;transform:none}
  .k-js .k-nots li span::after{transform:scaleX(1)}
}
