[hidden]{display:none!important}
/* CPHR Studio · versione Semplice. Mondo unico: vetro fumé di notte (come la pagina dell'identità). */
:root{
  --bg:#0c0e11; --fumo:#161a1f; --card:#12161a; --acciaio:#3a424b; --muted:#8a95a0; --ink:#e9eef2; --luce:#ffffff;
  --line:rgba(220,232,242,.10); --glass-edge:rgba(220,232,242,.14);
  --radius:20px;
  --body:'Geist', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --display:'Michroma', 'Eurostile', 'Arial Black', sans-serif;
  --mono:'JetBrains Mono', ui-monospace, 'Cascadia Mono', monospace;
  --wrap:min(1180px, 100% - 2*clamp(16px, 4vw, 48px));
  color-scheme:dark;
}
*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:80px; background:var(--bg); }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } *{ transition:none !important; animation:none !important; } }
body{ margin:0; background:var(--bg); color:var(--ink); font:300 17px/1.6 var(--body); -webkit-font-smoothing:antialiased; padding-bottom:env(safe-area-inset-bottom); }
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; }
b, strong{ font-weight:500; }
:focus-visible{ outline:1px solid var(--ink); outline-offset:3px; border-radius:4px; }
.wrap{ width:var(--wrap); margin-inline:auto; }
.muted{ color:var(--muted); }
.skip{ position:absolute; left:-999px; top:8px; background:var(--ink); color:var(--bg); padding:8px 14px; border-radius:999px; z-index:99; }
.skip:focus{ left:12px; }
.label{ margin:0 0 14px; font:500 11px/1.3 var(--mono); letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }
h2.title, h1.title{ margin:0; font:400 clamp(17px, 2vw, 22px)/1.3 var(--display); letter-spacing:.06em; text-transform:uppercase; text-wrap:balance; }
.sec-head{ margin-bottom:clamp(22px, 3vw, 36px); }

/* vetro */
.glass{ position:relative; overflow:hidden; border-radius:28px; border:1px solid var(--glass-edge); background:linear-gradient(160deg, rgba(210,224,236,.07), rgba(210,224,236,.02) 60%); backdrop-filter:blur(24px) saturate(120%); -webkit-backdrop-filter:blur(24px) saturate(120%); box-shadow:inset 0 1px 0 rgba(255,255,255,.08), 0 40px 80px -40px rgba(0,0,0,.8); }
.glass::before{ content:''; position:absolute; inset:0; background:linear-gradient(115deg, transparent 38%, rgba(255,255,255,.05) 46%, transparent 54%); pointer-events:none; }
.glass-wrap{ position:relative; isolation:isolate; }
.behind{ position:absolute; inset:0; z-index:-1; overflow:hidden; }
.behind i{ position:absolute; border-radius:50%; filter:blur(60px); opacity:.55; }

/* marchio */
.letters path{ fill:none; stroke:var(--ink); stroke-width:12; stroke-linecap:square; stroke-linejoin:miter; }
.letters .leg{ fill:var(--ink); stroke:none; }
.glyph{ color:var(--luce); }
.glow{ filter:url(#glowf); }
@media (prefers-reduced-motion:no-preference){
  .pulse{ animation:pulse 4.8s ease-in-out infinite; }
  @keyframes pulse{ 0%, 86%, 100%{ opacity:1; } 90%{ opacity:.55; } 93%{ opacity:1; } 95%{ opacity:.7; } }
}

/* header */
.top{ position:sticky; top:0; z-index:20; display:flex; justify-content:space-between; align-items:center; gap:16px; padding:14px clamp(16px, 4vw, 48px); padding-top:calc(14px + env(safe-area-inset-top)); background:rgba(12,14,17,.72); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom:1px solid var(--line); }
.logo{ display:block; color:var(--ink); text-decoration:none; line-height:0; }
.wm{ height:22px; width:auto; overflow:visible; }
.k{ transform:translate(232px, 50px); transition:transform .8s cubic-bezier(.2,.8,.2,1); }
.kt{ transform:translate(0, -26px) rotate(0deg) translate(0, 26px); transition:transform .8s cubic-bezier(.2,.8,.2,1), opacity .8s ease; }
.logo:hover .k, .logo:focus-visible .k{ transform:translate(232px, 50px) rotate(-60deg); }
.logo:hover .kt, .logo:focus-visible .kt{ transform:translate(0, -26px) rotate(38deg) translate(0, 26px); opacity:.35; }
/* marchio C4: centro dell'asterisco e giunto delle punte con le misure nuove */
.wm .k{ transform:translate(194px, 41px); }
.wm .kt{ transform:translate(0, -21.5px) rotate(0deg) translate(0, 21.5px); }
.logo:hover .wm .k, .logo:focus-visible .wm .k{ transform:translate(194px, 41px) rotate(-60deg); }
.logo:hover .wm .kt, .logo:focus-visible .wm .kt{ transform:translate(0, -21.5px) rotate(38deg) translate(0, 21.5px); opacity:.35; }
.kamui .k{ transform:none; }
.top nav{ display:flex; align-items:center; gap:18px; }
.room-link{ font:500 11px var(--mono); letter-spacing:.16em; text-transform:uppercase; text-decoration:none; color:var(--muted); }
.room-link:hover{ color:var(--ink); }

/* passaggio verso la stanza */
.kgo{ position:fixed; inset:0; z-index:100; display:grid; place-items:center; pointer-events:none; background:rgba(12,14,17,0); transition:background .55s ease; color:#fff; }
.kgo svg{ width:120px; height:120px; opacity:0; }
.kgo.run{ background:#0c0e11; }
.kgo.run svg{ animation:kgo .9s cubic-bezier(.55,0,.25,1) forwards; }
.kgo.run .kt{ transform:translate(0, -26px) rotate(42deg) translate(0, 26px); opacity:.3; transition:transform .6s ease .1s, opacity .6s ease .1s; }
@keyframes kgo{ 0%{ transform:scale(7) rotate(0deg); opacity:0; } 35%{ opacity:1; } 100%{ transform:scale(0) rotate(-420deg); opacity:1; } }

/* pulsanti */
.btns{ display:flex; flex-wrap:wrap; gap:10px; }
.btn{ display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 24px; border-radius:999px; background:var(--ink); color:var(--bg); font:500 15px var(--body); text-decoration:none; border:1px solid var(--ink); transition:background .2s, color .2s, box-shadow .2s; }
.btn:hover{ background:var(--luce); box-shadow:0 0 28px rgba(200,230,255,.28); }
.btn-ghost{ background:rgba(200,214,226,.05); color:var(--ink); border-color:var(--glass-edge); }
.btn-ghost:hover{ background:rgba(200,214,226,.12); box-shadow:none; }
.btn-sm{ min-height:38px; padding:0 16px; font-size:14px; }

/* hero */
.hero-sec{ padding-block:clamp(20px, 5vh, 56px) 0; }
.hero{ padding:clamp(40px, 7vw, 96px) clamp(20px, 6vw, 80px) clamp(32px, 5vw, 64px); display:flex; flex-direction:column; align-items:center; text-align:center; }
.hero .mark{ width:min(460px, 86%); height:auto; margin-block:4px clamp(20px, 4vw, 36px); }
.hero h1{ margin:0; font:300 clamp(34px, 5.4vw, 68px)/1.04 var(--body); letter-spacing:-.035em; text-wrap:balance; }
.lead{ margin:18px auto 30px; max-width:40ch; font-size:clamp(17px, 1.7vw, 21px); line-height:1.45; color:var(--muted); text-wrap:pretty; }
.hero .btns{ justify-content:center; }
.room-card{ margin-top:16px; display:grid; grid-template-columns:minmax(120px, 240px) 1fr auto; align-items:center; gap:22px; padding:10px 24px 10px 10px; border:1px solid var(--line); border-radius:var(--radius); text-decoration:none; background:var(--card); transition:border-color .2s, transform .3s cubic-bezier(.2,.9,.25,1); }
.room-card:hover{ border-color:var(--glass-edge); transform:translateY(-2px); }
.room-card img{ aspect-ratio:16/9; object-fit:cover; object-position:50% 58%; border-radius:12px; width:100%; }
.room-card b{ display:block; font:400 14px var(--display); letter-spacing:.06em; text-transform:uppercase; }
.room-card small{ display:block; color:var(--muted); font-size:14.5px; margin-top:6px; line-height:1.4; }
.room-card .kamui{ width:26px; height:26px; color:var(--ink); }
.room-card:hover .kamui .kt{ transform:translate(0, -26px) rotate(38deg) translate(0, 26px); opacity:.35; }
@media (max-width:640px){ .room-card{ grid-template-columns:1fr; padding:10px 10px 18px; } .room-card > span{ padding-inline:8px; } .room-card .kamui{ display:none; } }

/* servizi */
.group{ padding-block:clamp(44px, 7vh, 80px) 0; }
.rows{ list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.rows li{ border-bottom:1px solid var(--line); }
.row{ display:grid; grid-template-columns:minmax(0, 1.2fr) minmax(0, 1fr) 16ch 28px; align-items:baseline; gap:20px; padding:22px 0; text-decoration:none; }
.row-t{ font:300 clamp(22px, 2.8vw, 36px)/1.1 var(--body); letter-spacing:-.03em; transition:transform .35s cubic-bezier(.2,.9,.25,1), text-shadow .35s; }
.row-d{ color:var(--muted); font-size:15px; line-height:1.45; }
.row-n{ font:500 11px var(--mono); letter-spacing:.12em; text-transform:uppercase; color:var(--muted); white-space:nowrap; text-align:right; }
.arr{ font-size:22px; color:var(--muted); transition:transform .35s cubic-bezier(.2,.9,.25,1), color .2s; justify-self:end; }
.row:hover .row-t{ transform:translateX(10px); text-shadow:0 0 24px rgba(200,230,255,.35); }
.row:hover .arr{ transform:translateX(4px); color:var(--ink); }
@media (max-width:760px){
  .row{ grid-template-columns:1fr 24px; gap:6px 12px; padding:18px 0; }
  .row-t{ grid-column:1; } .row-d{ grid-column:1; grid-row:2; } .row-n{ grid-column:1; grid-row:3; text-align:left; } .arr{ grid-column:2; grid-row:1; }
}

/* lavori in evidenza */
.featured{ padding-block:clamp(56px, 9vh, 100px) 0; }
.cards{ display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:16px; }
.card{ display:flex; flex-direction:column; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; text-decoration:none; background:var(--fumo); transition:border-color .2s, transform .3s cubic-bezier(.2,.9,.25,1); }
.card:hover{ border-color:var(--glass-edge); transform:translateY(-3px); }
.card-visual{ aspect-ratio:4/3; background:var(--bg); display:grid; place-items:center; overflow:hidden; }
.card-visual img{ width:100%; height:100%; object-fit:cover; }
.card-metric{ font:300 clamp(26px, 3vw, 38px) var(--body); letter-spacing:-.03em; padding:16px; text-align:center; }
.card-metric s{ color:var(--muted); text-decoration-thickness:2px; }
.card-metric b{ font-weight:400; color:var(--luce); text-shadow:0 0 24px rgba(200,230,255,.4); }
.card-txt{ padding:14px 16px 18px; }
.card-txt small{ display:block; font:500 10.5px var(--mono); letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.card-txt b{ display:block; font-weight:400; font-size:17px; margin-top:6px; letter-spacing:-.01em; }

/* fatti */
.facts{ display:grid; grid-template-columns:repeat(3, 1fr); gap:28px; padding-block:clamp(56px, 9vh, 100px) 0; }
.facts div{ border-top:1px solid var(--line); padding-top:16px; }
.facts b{ display:block; font:400 13px var(--display); letter-spacing:.06em; text-transform:uppercase; }
.facts p{ margin:8px 0 0; color:var(--muted); font-size:15.5px; }
@media (max-width:760px){ .facts{ grid-template-columns:1fr; gap:22px; } }

/* pagina servizio */
.svc-sec{ padding-block:clamp(20px, 4vh, 44px) 0; }
.back{ display:inline-block; margin-bottom:16px; font:500 11px var(--mono); letter-spacing:.14em; text-transform:uppercase; color:var(--muted); text-decoration:none; }
.back:hover{ color:var(--ink); }
.svc-head{ padding:clamp(32px, 6vw, 72px) clamp(20px, 5vw, 64px); }
.svc-head h1{ margin:0; font:300 clamp(34px, 5.6vw, 72px)/1.04 var(--body); letter-spacing:-.035em; text-wrap:balance; }
.svc-head .lead{ margin-left:0; }
.price{ margin:-12px 0 24px; color:var(--muted); }
.price b{ color:var(--ink); font-weight:400; font-size:22px; }
.room-inline{ display:inline-block; margin-top:22px; font:500 11px var(--mono); letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.room-inline:hover{ color:var(--ink); }
.works, .sib{ padding-block:clamp(48px, 8vh, 88px) 0; }
.chips{ display:flex; flex-wrap:wrap; gap:8px; }
.chip{ padding:10px 16px; border:1px solid var(--line); border-radius:999px; text-decoration:none; font-size:15px; background:var(--fumo); }
.chip:hover{ border-color:var(--glass-edge); background:rgba(200,214,226,.1); }

/* lavori */
.pj{ padding-block:clamp(26px, 4vh, 44px); max-width:880px; }
.pj + .pj{ border-top:1px solid var(--line); }
.pj header{ margin-bottom:20px; }
.pj h3{ margin:0; font:300 clamp(24px, 3vw, 36px)/1.1 var(--body); letter-spacing:-.03em; text-wrap:balance; }
.pj-meta{ margin:0 0 8px; font:500 11px var(--mono); letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.pj-sum{ margin:18px 0 0; max-width:62ch; color:var(--muted); }
.pj-empty{ padding:40px 16px; text-align:center; color:var(--muted); background:var(--fumo); border-radius:14px; margin:0; }
.pj-link{ display:inline-block; margin-top:10px; font-weight:400; }
.pj-quote{ margin:24px 0 0; padding:18px 22px; border-left:2px solid var(--ink); background:var(--fumo); border-radius:0 14px 14px 0; }
.pj-quote p{ margin:0; font-size:18px; line-height:1.5; }
.pj-quote cite{ display:block; margin-top:8px; color:var(--muted); font-style:normal; font:500 11px var(--mono); letter-spacing:.12em; text-transform:uppercase; }
.pj-metric{ display:flex; flex-wrap:wrap; align-items:baseline; gap:10px 16px; margin-bottom:24px; }
.pj-metric s{ font:300 clamp(28px, 4vw, 46px) var(--body); color:var(--muted); letter-spacing:-.03em; text-decoration-thickness:2px; }
.pj-metric span{ font-size:26px; color:var(--muted); }
.pj-metric b{ font:300 clamp(44px, 7vw, 84px)/1 var(--body); letter-spacing:-.05em; color:var(--luce); text-shadow:0 0 30px rgba(200,230,255,.45); }
.pj-metric small{ flex-basis:100%; font:500 11px var(--mono); letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.pj-steps{ margin:0; display:grid; grid-template-columns:repeat(3, 1fr); gap:12px; }
.pj-steps div{ padding:18px; background:var(--fumo); border:1px solid var(--line); border-radius:16px; }
.pj-steps dt{ font:500 10.5px var(--mono); letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }
.pj-steps dd{ margin:0; font-size:16px; line-height:1.5; }
.pj-steps div:last-child{ border-color:var(--glass-edge); }
.pj-steps div:last-child dt{ color:var(--ink); }
@media (max-width:760px){ .pj-steps{ grid-template-columns:1fr; } }
.pj-strip{ margin-top:14px; display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:10px; }
.pj-strip img{ border-radius:12px; aspect-ratio:4/3; object-fit:cover; width:100%; }
.pj-gallery{ display:grid; grid-template-columns:repeat(2, 1fr); gap:10px; margin-top:18px; }
.pj-gallery .g-item:first-child{ grid-column:1 / -1; }
.pj-gallery.n1 .g-item{ grid-column:1 / -1; }
.pj-gallery img{ width:100%; height:100%; object-fit:cover; border-radius:14px; aspect-ratio:4/3; }
.pj-gallery .g-item:first-child img{ aspect-ratio:16/10; }
.g-item{ display:block; cursor:zoom-in; }

/* prima / dopo */
.ba{ position:relative; overflow:hidden; border-radius:16px; background:var(--fumo); touch-action:pan-y; user-select:none; }
.ba-img img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.ba-before{ position:absolute; inset:0; clip-path:inset(0 calc(100% - var(--pos)) 0 0); }
.ba-range{ position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:ew-resize; }
.ba-handle{ position:absolute; top:0; bottom:0; left:var(--pos); width:2px; margin-left:-1px; background:#fff; box-shadow:0 0 14px rgba(200,230,255,.6); pointer-events:none; }
.ba-handle::after{ content:'↔'; position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); width:44px; height:44px; border-radius:50%; background:rgba(12,14,17,.7); backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,.5); color:#fff; display:grid; place-items:center; font-size:18px; }
.ba-range:focus-visible ~ .ba-handle::after{ outline:1px solid #fff; outline-offset:3px; }
.ba-tag{ position:absolute; top:12px; padding:5px 10px; border-radius:999px; background:rgba(12,14,17,.65); backdrop-filter:blur(6px); color:#fff; font:500 10.5px var(--mono); letter-spacing:.14em; text-transform:uppercase; pointer-events:none; }
.ba-tag-l{ left:12px; } .ba-tag-r{ right:12px; }

/* cornici */
.frame{ margin-inline:auto; background:#181c21; box-shadow:0 30px 60px -30px rgba(0,0,0,.8); }
.frame-browser{ border-radius:14px; overflow:hidden; border:1px solid var(--glass-edge); }
.frame-bar{ display:flex; align-items:center; gap:6px; padding:10px 12px; background:#1f242a; }
.frame-bar i{ width:10px; height:10px; border-radius:50%; background:#3a424b; }
.frame-bar span{ flex:1; margin-left:10px; padding:4px 12px; border-radius:999px; background:#12161a; color:var(--muted); font:400 12px var(--mono); overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.frame-screen img{ width:100%; }
.frame-phone{ position:relative; width:min(300px, 80%); padding:12px; border-radius:40px; border:1px solid var(--glass-edge); }
.frame-phone .frame-screen{ border-radius:30px; overflow:hidden; aspect-ratio:9/19.5; background:#000; }
.frame-phone .frame-screen img{ height:100%; object-fit:cover; object-position:top; }
.notch{ position:absolute; top:22px; left:50%; transform:translateX(-50%); width:22%; height:18px; border-radius:999px; background:#000; z-index:1; }

/* video */
.yt{ position:relative; margin-inline:auto; background:#000; border-radius:16px; overflow:hidden; border:1px solid var(--line); }
.yt-v{ width:min(360px, 100%); aspect-ratio:9/16; }
.yt-h{ aspect-ratio:16/9; }
.yt img{ width:100%; height:100%; object-fit:cover; opacity:.8; }
.yt iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.yt-play{ position:absolute; inset:0; margin:auto; width:72px; height:72px; border-radius:50%; border:1px solid rgba(255,255,255,.6); background:rgba(12,14,17,.55); backdrop-filter:blur(8px); cursor:pointer; }
.yt-play::after{ content:''; position:absolute; left:29px; top:22px; border-style:solid; border-width:14px 0 14px 22px; border-color:transparent transparent transparent #fff; }

/* lightbox */
.lb{ position:fixed; inset:0; z-index:50; background:rgba(8,10,12,.94); display:grid; place-items:center; padding:16px; cursor:zoom-out; }
.lb img{ max-height:92vh; width:auto; border-radius:10px; }

/* footer */
.foot{ margin-top:clamp(64px, 12vh, 140px); padding-block:clamp(56px, 10vh, 110px) calc(40px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:linear-gradient(180deg, rgba(210,224,236,.04), transparent 60%); }
.foot-big{ margin:0 0 30px; font:400 clamp(30px, 6vw, 80px)/1 var(--display); letter-spacing:.02em; text-transform:uppercase; }
.foot-info{ display:flex; flex-wrap:wrap; gap:14px 48px; margin-top:44px; font-size:15px; color:var(--muted); }
.foot-info p{ margin:0; }

/* whatsapp su telefono */
.fab{ position:fixed; right:16px; bottom:calc(16px + env(safe-area-inset-bottom)); z-index:30; width:58px; height:58px; border-radius:50%; display:none; place-items:center; color:var(--ink); background:linear-gradient(160deg, rgba(210,224,236,.16), rgba(210,224,236,.05)); border:1px solid var(--glass-edge); backdrop-filter:blur(18px) saturate(1.3); -webkit-backdrop-filter:blur(18px) saturate(1.3); box-shadow:0 10px 30px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.08); }
.fab:active{ transform:scale(.96); }
@media (max-width:760px){ .fab{ display:grid; } .top .btn-sm{ display:none; } }

/* pagine di testo (privacy, 404) */
.legal h1.title{ font-size:clamp(22px, 3vw, 30px); }
.prose{ max-width:68ch; }
.prose h2{ margin:34px 0 8px; font:400 13px var(--display); letter-spacing:.06em; text-transform:uppercase; }
.prose p{ margin:0 0 12px; color:var(--muted); }
.prose p b, .prose li b{ color:var(--ink); }
.prose ul{ margin:0 0 12px; padding-left:20px; color:var(--muted); }
.prose li{ margin:0 0 6px; }
.prose a:not(.btn){ color:var(--ink); }
.foot-info a{ color:var(--ink); }

/* Michroma: niente legature contestuali (evitano glifi alternativi nelle maiuscole) */
h1.title, h2.title, .prose h2, .facts b, .room-card b, .foot-big{ font-feature-settings:"liga" 0, "calt" 0, "dlig" 0; font-variant-ligatures:none; }

/* chi sono · domande */
.about, .faq{ padding-block:clamp(56px, 9vh, 100px) 0; }
.about-t{ margin:0; max-width:60ch; font-size:clamp(18px, 1.9vw, 23px); line-height:1.5; color:var(--ink); text-wrap:pretty; }
.faq details{ border-bottom:1px solid var(--line); }
.faq details:first-of-type{ border-top:1px solid var(--line); }
.faq summary{ list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:16px; padding:20px 0; font-size:clamp(17px, 1.8vw, 20px); }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:'+'; font:300 26px/1 var(--body); color:var(--muted); transition:transform .3s ease; }
.faq details[open] summary::after{ transform:rotate(45deg); color:var(--ink); }
.faq details p{ margin:0 0 22px; max-width:64ch; color:var(--muted); }
.faq summary:focus-visible{ outline:1px solid var(--ink); outline-offset:4px; }

/* recensioni */
.registro{ margin-top:28px; border:1px solid var(--glass-edge); border-radius:20px; padding:20px; background:linear-gradient(160deg, rgba(210,224,236,.05), transparent 60%); }
.registro .nums{ display:flex; flex-wrap:wrap; gap:26px 34px; margin-top:6px; }
.registro .nums b{ display:block; font:300 clamp(26px, 3.2vw, 34px)/1 var(--body); letter-spacing:-.02em; }
.registro .nums span{ display:block; margin-top:6px; font:500 10.5px var(--mono); letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.revs{ display:grid; grid-template-columns:repeat(auto-fill, minmax(320px, 1fr)); gap:16px; }
.rev{ border:1px solid var(--line); border-radius:20px; background:var(--fumo); padding:20px; }
.rev header{ display:flex; justify-content:space-between; align-items:flex-start; gap:14px; margin-bottom:12px; }
.rev header b{ display:block; font-weight:500; font-size:17px; }
.rev header small{ display:block; margin-top:2px; font:500 10.5px var(--mono); letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.seal{ display:flex; align-items:center; gap:8px; border:1px solid var(--glass-edge); border-radius:999px; padding:6px 12px 6px 8px; font:500 10px var(--mono); letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; }
.seal svg{ width:15px; height:15px; color:var(--luce); filter:drop-shadow(0 0 6px rgba(200,230,255,.55)); }
.rev-t{ margin:0 0 16px; color:#cdd5dc; }
.rev .facts{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; padding:0; }
.fact{ font:500 10.5px var(--mono); letter-spacing:.08em; text-transform:uppercase; border:1px solid var(--line); border-radius:999px; padding:5px 10px; color:var(--dim, #5d6670); opacity:.5; }
.fact.yes{ color:var(--ink); border-color:var(--glass-edge); opacity:1; }
.rev-foot{ display:flex; justify-content:space-between; align-items:center; gap:12px; border-top:1px solid var(--line); padding-top:12px; font:500 10.5px var(--mono); letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.fp{ display:flex; gap:3px; }
.fp svg{ width:11px; height:11px; }
.prose .fp svg{ width:20px; height:20px; }
/* modulo del cliente */
.rform{ display:grid; gap:16px; max-width:640px; margin-top:28px; }
.rform label{ display:grid; gap:6px; font-size:14.5px; }
.rform label small{ color:var(--muted); font-weight:300; }
.rform input[type=text], .rform textarea{ font:inherit; font-size:16px; padding:11px 13px; border-radius:12px; border:1px solid var(--line); background:var(--fumo); color:var(--ink); width:100%; }
.rform textarea{ min-height:150px; resize:vertical; }
.rform fieldset{ border:1px solid var(--line); border-radius:16px; padding:14px 16px; display:grid; gap:10px; }
.rform legend{ padding:0 6px; font:500 10.5px var(--mono); letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.rform .chk{ display:flex; align-items:flex-start; gap:10px; font-size:15px; }
.rform .chk input{ width:20px; height:20px; accent-color:#e9eef2; flex:none; margin-top:2px; }
.rform .req{ border:1px solid var(--glass-edge); border-radius:14px; padding:12px 14px; }
.rform button{ justify-self:start; }
.verify{ display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap; margin-top:22px; }
.verify label{ display:grid; gap:6px; font:500 10.5px var(--mono); letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.verify input{ font:inherit; font-size:15px; padding:10px 12px; border-radius:12px; border:1px solid var(--line); background:var(--fumo); color:var(--ink); min-width:220px; letter-spacing:.06em; }
.prose code{ font:12.5px var(--mono); color:var(--muted); word-break:break-all; }

/* disponibilità temporanea (viaggio, secondo lavoro) */
.away{ display:inline-block; margin:10px 0 0; padding:6px 12px; border:1px solid var(--line); border-radius:999px; font-size:13.5px; color:var(--ink); background:rgba(233,235,238,.06); }

/* avviso dal pannello */
.banner{ background:rgba(233,235,238,.08); border-bottom:1px solid var(--line); font-size:14.5px; color:var(--ink); }
.banner .wrap{ padding-block:10px; }
/* disponibilità indicativa (dall'agenda) */
.avail{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px 18px; margin:14px 0 0; font-size:13.5px; color:var(--muted); }
.avail b{ color:var(--ink); font-weight:500; }
/* masterclass */
.mc-sec{ padding-top:clamp(40px, 7vh, 72px); }
.credits{ list-style:none; margin:0; padding:0; display:grid; gap:0; }
.credits li{ padding:14px 0; border-bottom:1px solid var(--line); font-size:17px; }
.formats{ display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:24px; }
.formats div{ border-top:1px solid var(--line); padding-top:14px; }
.formats b{ display:block; font:400 13px var(--display); letter-spacing:.06em; text-transform:uppercase; }
.formats p{ margin:8px 0 0; color:var(--muted); }
.mc-terms{ color:var(--muted); max-width:62ch; margin:0 0 20px; }
.mc-form{ display:grid; gap:14px; max-width:560px; }
.mc-form label{ display:grid; gap:6px; font-size:14.5px; color:var(--muted); }
.mc-form input, .mc-form select{ font:inherit; color:var(--ink); background:rgba(233,235,238,.05); border:1px solid var(--line); border-radius:12px; padding:12px 14px; min-height:48px; }
.mc-form input:focus-visible, .mc-form select:focus-visible{ outline:2px solid var(--ink); outline-offset:2px; }
.mc-form .btn{ justify-self:start; }
.mc-note{ font-size:13px; margin:0; }
/* video ospitati sul sito */
.vid{ position:relative; border-radius:18px; overflow:hidden; background:#000; border:1px solid var(--line); margin:0 auto 18px; }
.vid.vid-v{ max-width:380px; aspect-ratio:9 / 16; }
.vid.vid-h{ aspect-ratio:16 / 9; }
.vid video{ width:100%; height:100%; display:block; object-fit:contain; background:#000; }
.vid-credit{ font-size:12.5px; color:var(--muted); text-align:center; margin:-8px 0 18px; }

/* asterisco d'atmosfera nelle intestazioni di vetro */
.svc-head{ position:relative; }
.svc-mark{ position:absolute; right:clamp(24px, 6vw, 90px); top:50%; width:min(30vw, 340px); height:auto; transform:translateY(-50%); color:var(--ink); opacity:.06; pointer-events:none; filter:drop-shadow(0 0 30px rgba(200,230,255,.35)); animation:mark-spin 90s linear infinite; }
.svc-head > :not(.svc-mark){ position:relative; }
@keyframes mark-spin{ from{ transform:translateY(-50%) rotate(0); } to{ transform:translateY(-50%) rotate(360deg); } }
@media (max-width:760px){ .svc-mark{ width:62vw; right:-18vw; top:34%; opacity:.045; } }
@media (prefers-reduced-motion:reduce){ .svc-mark{ animation:none; } }
.svc-head h1{ max-width:16ch; }
/* recensioni: intestazione in vetro e sei garanzie su tre colonne */
.rev-intro{ max-width:62ch; margin-top:18px; }
.rev-intro p:last-child{ margin-bottom:0; }
.cards.three{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
@media (max-width:900px){ .cards.three{ grid-template-columns:repeat(2, minmax(0, 1fr)); } }
@media (max-width:560px){ .cards.three{ grid-template-columns:1fr; } }
/* etichetta della zona su una riga anche sul telefono */
@media (max-width:420px){ .hero .label{ letter-spacing:.1em; font-size:10px; } }

/* Migliorie locali: gerarchia, leggibilità e navigazione. */
:root{--muted:#a6b2bd;--line:rgba(220,232,242,.15);--glass-edge:rgba(220,232,242,.23);--accent:#a5d4f4}
body{font-weight:400}
::selection{background:#a5d4f4;color:#0c0e11}
:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
#main:focus{outline:none}
.top{min-height:76px}
.top nav{gap:24px}
.room-link{font-size:12px;letter-spacing:.06em;min-height:44px;display:inline-flex;align-items:center}
.btn-sm{min-height:44px}
.menu-toggle{display:none;font:500 14px var(--body);color:var(--ink);background:var(--fumo);border:1px solid var(--glass-edge);border-radius:12px;min-height:44px;padding:0 16px;gap:14px;align-items:center}
.hero-sec{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(0,1fr);gap:22px;align-items:stretch;padding-top:40px}
.hero-sec:has(>.glass-wrap:only-child){grid-template-columns:1fr}
.hero{height:100%;align-items:flex-start;text-align:left;padding:48px 44px;background:radial-gradient(ellipse at 15% 0,rgba(165,212,244,.12),transparent 65%),linear-gradient(150deg,#181f26,#101418)}
.hero .label{font-size:11px;letter-spacing:.09em;max-width:100%;line-height:1.6}
.hero .mark{width:180px;margin:0 0 22px}
.hero h1{font-weight:500;font-size:clamp(38px,4.6vw,64px);line-height:1.08;max-width:12ch}
.hero .lead{margin:20px 0 26px;max-width:37ch;font-size:20px;line-height:1.6}
.hero .btns{justify-content:flex-start}
.explore{display:inline-flex;align-items:center;gap:18px;min-height:44px;margin-top:20px;text-underline-offset:5px;font-size:15px}
.explore span{color:var(--accent)}
.hero-note{margin:18px 0 0;color:var(--muted);font-size:13px}
.hero .avail{justify-content:flex-start}
.room-card{margin:0;padding:0;grid-template-columns:1fr;gap:0;align-content:start;overflow:hidden;border-radius:28px;background:linear-gradient(145deg,#17212a,#101418)}
.room-card img{width:100%;aspect-ratio:16/12;object-position:50% 55%;border-radius:0}
.room-card>span{padding:30px;display:block}
.room-card .room-eyebrow{font:500 10px/1.6 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0 0 12px}
.room-card b{font:500 24px/1.25 var(--body);text-transform:none;letter-spacing:-.02em}
.room-card small{font-size:16px;line-height:1.55;margin-top:10px}
.room-card .room-cta{display:flex;justify-content:space-between;margin-top:26px;font-size:15px;color:var(--ink)}
.room-card .kamui{display:none}
.service-directory{padding-top:76px;scroll-margin-top:100px}
.directory-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:22px}
.directory-head .sec-head{margin:0}
.service-search{width:min(340px,100%)}
.service-search label{display:block;font-size:13px;color:var(--muted);margin-bottom:8px}
.service-search input{width:100%;font:inherit;font-size:16px;min-height:48px;border:1px solid var(--glass-edge);background:#141b22;color:var(--ink);border-radius:12px;padding:10px 15px}
.service-search input::placeholder{color:var(--muted)}
.service-jumps .chip{font-size:14px;padding:10px 16px;display:inline-flex;gap:14px;align-items:center;min-height:44px}
.service-jumps .chip span{color:var(--accent)}
.search-status{padding:16px 20px;background:var(--fumo);border:1px solid var(--line);border-radius:12px;color:var(--muted);font-size:15px;margin:22px 0 0}
.group{padding-top:46px;scroll-margin-top:100px}
.group .sec-head{margin-bottom:20px}
.group .label{margin-bottom:8px}
.group .title{font-size:17px;line-height:1.5}
.row{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto 28px;align-items:center;padding:24px 12px;gap:24px;border-radius:12px;transition:background .2s}
.row-t{font-weight:400;font-size:clamp(22px,2.3vw,30px);line-height:1.2}
.row-d{font-size:16px;line-height:1.6}
.row:hover,.row:focus-visible{background:rgba(165,212,244,.055)}
.row:hover .row-t{transform:none;text-shadow:none}
.row-n:empty{display:none}
.row:has(.row-n:empty){grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 28px}
.arr{color:var(--accent)}
.facts{gap:18px;padding-top:64px}
.facts div{padding:26px;border:1px solid var(--line);border-radius:18px;background:var(--card)}
.facts b{font:500 17px/1.4 var(--body);letter-spacing:0;text-transform:none}
.facts p{line-height:1.7;margin-top:12px}
.process{padding-top:76px}
.process-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;list-style:none;padding:0;margin:0}
.process-grid li{border-top:1px solid var(--glass-edge);padding-top:22px}
.process-grid span{font:400 13px var(--mono);color:var(--accent)}
.process-grid h3{font-size:21px;font-weight:500;letter-spacing:-.02em;margin:18px 0 8px;line-height:1.4}
.process-grid p{color:var(--muted);margin:0;line-height:1.7;font-size:16px}
.about{display:grid;grid-template-columns:1fr 2fr;gap:40px}
.about .sec-head{margin:0}
.about-t{font-size:21px;line-height:1.7}
.foot{margin-top:86px;padding-top:64px}
.foot-big{font:500 clamp(38px,5vw,64px)/1.1 var(--body);text-transform:none;letter-spacing:-.04em}
.foot-info{gap:24px 36px;line-height:1.8;overflow-wrap:anywhere}
.foot-info a{display:inline-block;min-height:32px;text-underline-offset:4px}
.breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;color:var(--muted);margin-bottom:22px}
.breadcrumbs a{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:4px}
.service-note{font-size:14px;color:var(--muted);margin:18px 0 0;max-width:54ch}
.svc-head h1{font-weight:400;line-height:1.12}
.svc-head .lead{max-width:48ch;line-height:1.65}
.svc-head .room-inline{margin-right:24px;line-height:1.8;min-height:44px}
.lb{border:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:24px;background:#080a0c;color:var(--ink);overflow:auto}
.lb:not([open]){display:none}
.lb[open]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;cursor:auto}
.lb::backdrop{background:rgba(8,10,12,.94)}
.lb img{max-width:100%;max-height:80dvh;object-fit:contain;cursor:auto}
.lb-close{position:absolute;right:18px;top:18px;min-height:44px;min-width:44px;border:1px solid var(--glass-edge);border-radius:999px;padding:8px 16px;background:var(--fumo);color:var(--ink);font:inherit;cursor:pointer}
.lb-caption{margin:0;text-align:center;color:var(--muted);max-width:65ch}
.revs{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))}
.cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}
.pj,.rev,.prose{overflow-wrap:anywhere}
.verify input{width:100%;min-width:0}
@media(max-width:1020px){.top nav{gap:16px}.hero{padding:32px 28px}.hero .lead{font-size:18px}.room-card>span{padding:24px}.room-card img{aspect-ratio:1}.hero-sec{gap:16px}}
@media(max-width:760px){
  .top{min-height:68px;flex-wrap:wrap;gap:8px 16px}
  .menu-toggle:not([hidden]){display:inline-flex;margin-left:auto}
  .top nav{width:100%;flex-wrap:wrap;padding:12px 0 4px;gap:6px 18px}
  .top.nav-ready nav:not(.open){display:none}
  .top .btn-sm{display:inline-flex}
  .top.nav-ready nav.open{display:flex}
  .room-link{font-size:13px;letter-spacing:.04em}
  .hero-sec{grid-template-columns:1fr;padding-top:22px}
  .hero{padding:32px 24px}
  .hero h1{font-size:clamp(36px,9vw,52px);max-width:15ch}
  .hero .mark{width:146px;margin-bottom:18px}
  .hero .lead{font-size:18px;max-width:38ch}
  .hero-note{line-height:1.8}
  .hero .btns{width:100%}.hero .btn{padding-inline:20px}
  .room-card{grid-template-columns:112px minmax(0,1fr);align-items:center;border-radius:20px;padding:12px;gap:16px}
  .room-card img{border-radius:12px;aspect-ratio:1;height:100%;max-height:170px}
  .room-card>span{padding:8px 0}
  .room-card b{font-size:19px}
  .room-card small{font-size:14px;margin-top:6px;line-height:1.5}
  .room-card .room-eyebrow{display:none}
  .room-card .room-cta{margin-top:12px;font-size:13px}
  .service-directory,.process{padding-top:52px}
  .directory-head{display:block}
  .directory-head .sec-head{margin-bottom:22px}
  .service-search{width:100%}
  .service-jumps{gap:8px}.service-jumps .chip{font-size:13px;padding-inline:12px}
  .row,.row:has(.row-n:empty){grid-template-columns:minmax(0,1fr) 24px;gap:8px 12px;padding:22px 6px}
  .row-t{grid-column:1;font-size:24px}.row-d{grid-column:1;grid-row:2;font-size:15px}.row-n{grid-column:1;grid-row:3;white-space:normal}.arr{grid-column:2;grid-row:1}
  .facts{grid-template-columns:1fr;padding-top:48px}
  .process-grid{grid-template-columns:1fr;gap:26px}
  .about{grid-template-columns:1fr;gap:20px}.about-t{font-size:18px}
  .foot{padding-bottom:100px;margin-top:64px}
  .fab{background:#a5d4f4;color:#0c0e11;width:52px;height:52px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom))}
}
@media(max-width:380px){.room-card{grid-template-columns:82px minmax(0,1fr);gap:12px}.hero{padding:26px 20px}.hero .btn{width:100%}.service-jumps .chip{width:100%;justify-content:space-between}.title{overflow-wrap:anywhere}}

.review-proof{margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:12px;overflow-wrap:anywhere}.review-proof summary{cursor:pointer;min-height:44px;display:flex;align-items:center}.review-proof code{font-size:12px}

/* Le aree restano esplorabili con i dettagli nativi anche senza JavaScript. */
.service-area>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;cursor:pointer;padding:20px 0}
.service-area>summary::-webkit-details-marker{display:none}
.area-heading{display:grid;gap:6px}.area-heading .label{margin:0}.area-name{font-size:23px;line-height:1.3;letter-spacing:-.02em}.area-count{font-size:13px;color:var(--muted)}
.area-toggle{font-size:28px;color:var(--accent);font-weight:300;width:32px;text-align:center}.service-area[open] .area-toggle{transform:rotate(45deg)}
.service-area[open]>summary .area-count{display:none}
.service-detail{padding-top:42px}.detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:30px}.detail-columns>div{padding:26px;border:1px solid var(--line);border-radius:18px;background:var(--card)}
.detail-columns h2,.project-next h2{font-size:23px;font-weight:500;line-height:1.35;margin:0 0 18px}.detail-columns ul{padding-left:20px;color:var(--muted);margin:0;line-height:1.7}.detail-columns li+li{margin-top:10px}
.scope-note{margin:24px 0;padding-left:18px;border-left:2px solid var(--accent);color:var(--muted);line-height:1.7}.service-detail .faq{padding-top:24px}
.request-guide{padding-top:48px}.request-guide>details{border:1px solid var(--line);border-radius:18px;padding:22px 26px;background:var(--card)}.request-guide summary{cursor:pointer;display:flex;justify-content:space-between;gap:20px;align-items:center;list-style:none;min-height:44px;font-size:19px}.request-guide summary::-webkit-details-marker{display:none}.request-guide summary span{color:var(--accent)}
.request-guide form{display:grid;gap:10px;max-width:760px;margin-top:22px}.request-guide form[hidden]{display:none}.request-guide label{font-size:15px;margin-top:8px}.request-guide input,.request-guide select,.request-guide textarea{font:inherit;font-size:16px;color:var(--ink);background:#141b22;border:1px solid var(--glass-edge);padding:12px 14px;border-radius:12px;width:100%;min-height:48px}.request-guide textarea{resize:vertical}.request-guide .btn{justify-self:start}
.request-note{font-size:13px;color:var(--muted);line-height:1.6;margin:4px 0 12px}.request-preview{border-top:1px solid var(--line);padding-top:20px;margin-top:12px}.request-preview h3{font-size:18px;font-weight:500}.request-preview pre{font:inherit;font-size:15px;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted);padding:18px;background:#101418;border-radius:12px}
.portfolio h1,.project-page>h1{font-size:clamp(32px,5vw,58px);font-weight:400;line-height:1.15;letter-spacing:-.03em}.portfolio .lead{max-width:58ch}.portfolio .cards{margin-top:36px}.project-page .pj{margin-top:30px}.project-page .pj header h3{display:none}.project-story{margin-top:32px}.project-next{margin-top:42px;padding:28px;border:1px solid var(--line);border-radius:18px}.project-next p{color:var(--muted);line-height:1.7}.project-next .btns{justify-content:flex-start;margin-top:24px}
@media(min-width:761px){.area-count{display:none}.service-area>summary{padding-top:0}.area-name{font-size:20px}.area-toggle{font-size:24px}.featured .cards:has(>.card:nth-child(2):last-child),.portfolio .cards:has(>.card:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  .service-jumps{display:none}.group{padding-top:14px}.service-area{border:1px solid var(--glass-edge);border-radius:18px;background:var(--card);padding:0 18px}.service-area>summary{padding:20px 0}.service-area .rows{padding-bottom:8px}.area-name{font-size:21px}.area-heading .label{font-size:10px}.service-area .row-t{font-size:21px}.service-area .row{padding:18px 0}
  .hero{padding-block:26px}.hero .mark{width:116px;margin-bottom:14px}.hero .lead{margin:16px 0 20px}.hero .explore{margin-top:12px}.hero-note{margin-top:10px}.room-card small{display:none}.room-card .room-cta{display:flex;margin-top:8px}.room-card img{max-height:110px}.room-card{grid-template-columns:82px minmax(0,1fr)}
  .service-directory{padding-top:36px}.directory-head .sec-head{margin-bottom:16px}.featured{padding-top:42px}.facts{gap:12px;padding-top:36px}.facts div{padding:20px}.process{padding-top:42px}.process-grid{gap:20px}.process-grid li{padding-top:16px}.process-grid h3{margin-top:12px}.detail-columns{grid-template-columns:1fr;gap:16px}.detail-columns>div{padding:22px}.request-guide{padding-top:36px}.request-guide>details{padding:16px 20px}.request-guide summary{font-size:17px}.project-next{padding:22px}
}
.group-t{margin:0 0 16px;font:500 13px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.svc-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px}
.svc-card{display:flex;flex-direction:column;gap:10px;height:100%;padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--card);text-decoration:none;transition:border-color .2s,background .2s}
.svc-card:hover,.svc-card:focus-visible{border-color:var(--glass-edge);background:rgba(165,212,244,.055)}
.svc-card .row-t{font-size:22px;line-height:1.25}
.svc-card .row-d{font-size:15.5px;line-height:1.6;flex:1}
.svc-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:20px}
.svc-foot .row-n:empty{display:block}
.group{padding-top:34px}.group:first-child{padding-top:0}
.process-note{margin:26px 0 0;color:var(--muted);max-width:62ch;line-height:1.7}
.cta-band{padding-top:clamp(36px,6vh,64px);text-align:center}.cta-band .cta-t{font-size:clamp(22px,3vw,30px);font-weight:400;letter-spacing:-.02em;margin:0 0 20px}.cta-band .btns{justify-content:center}
.fab{transition:opacity .2s,transform .2s}.fab.fab-off{opacity:0;pointer-events:none;transform:scale(.9)}
@media(max-width:760px){.room-card{padding-right:72px}.foot{padding-bottom:calc(88px + env(safe-area-inset-bottom))}.cta-band .btn{width:100%}}
.contact-line{margin:14px 0 0;color:var(--muted);font-size:14px;line-height:1.7;overflow-wrap:anywhere}.contact-line a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.foot .contact-line{margin-top:18px}

.testimonial{padding-block:clamp(48px,8vh,88px) 0;display:grid;gap:clamp(32px,5vw,56px)}
.tq{margin:0;max-width:880px;margin-inline:auto;text-align:left}
.tq blockquote{margin:0}.tq blockquote p{margin:0;font-size:clamp(22px,3.4vw,36px);line-height:1.3;letter-spacing:-.025em;font-weight:400;text-wrap:pretty}
.tq blockquote p::before{content:"\201C"}.tq blockquote p::after{content:"\201D"}
.tq figcaption{margin-top:20px;font-size:15px;color:var(--muted);line-height:1.6}
.tq figcaption b{color:inherit;font-weight:600;color:var(--ink)}
.tq-link{margin-left:16px;color:inherit;text-decoration:underline;text-underline-offset:4px;white-space:nowrap}
.tq-stars{margin:0 0 14px;letter-spacing:.15em;font-size:16px}
.tq-sample{display:inline-block;margin:0 0 16px;padding:4px 10px;border:1px dashed currentColor;border-radius:999px;font-size:12px;letter-spacing:.04em;font-weight:600}
@media(max-width:760px){.tq-link{display:block;margin:8px 0 0;width:max-content}}

/* test /check */
.check .glass-wrap{margin-bottom:clamp(20px,3vw,32px)}
.ck{max-width:760px;margin-inline:auto}
.ck-bar{margin-bottom:18px}
.ck-track{height:6px;border-radius:999px;background:var(--line);overflow:hidden}
.ck-track i{display:block;height:100%;width:0;background:var(--ink);border-radius:999px;transition:width .25s}
.ck-step{margin:8px 0 0;font:500 11px/1.3 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.ck-q{border:0;margin:0 0 28px;padding:0;min-width:0}
.ck-q[hidden]{display:none!important}
.ck-q legend{padding:0;margin-bottom:6px;outline-offset:6px}
.ck-n{display:block;font:500 11px/1.3 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.ck-t{display:block;font-size:clamp(20px,3vw,26px);line-height:1.3;font-weight:400;letter-spacing:-.01em;text-wrap:balance}
.ck-hint{margin:8px 0 16px;color:var(--muted);font-size:15px}
.ck-opts{display:grid;gap:10px}
.ck-opt{position:relative;display:flex;align-items:center;gap:14px;min-height:56px;padding:12px 18px;border:1px solid var(--glass-edge);border-radius:16px;background:rgba(200,214,226,.04);cursor:pointer;overflow-wrap:anywhere}
.ck-opt:hover{background:rgba(200,214,226,.1)}
.ck-opt input{appearance:none;-webkit-appearance:none;flex:none;width:22px;height:22px;margin:0;border:1.5px solid var(--muted);border-radius:50%;display:grid;place-content:center;background:transparent}
.ck-opt input::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--bg);transform:scale(0)}
.ck-opt input:checked{background:var(--ink);border-color:var(--ink)}
.ck-opt input:checked::after{transform:scale(1)}
.ck-opt:has(input:checked){border-color:var(--ink);background:rgba(200,214,226,.12)}
.ck-opt:has(input:focus-visible){outline:1px solid var(--ink);outline-offset:3px}
.ck-nav{margin-top:6px}
.ck-nav .btn[disabled]{opacity:.4;cursor:not-allowed;box-shadow:none}
.ck-result{margin-top:8px;padding:clamp(22px,4vw,36px);border:1px solid var(--glass-edge);border-radius:var(--radius);background:var(--fumo);outline-offset:4px;scroll-margin-top:100px}
.ck-level{margin:10px 0 12px;font:400 clamp(18px,3vw,24px)/1.3 var(--display);letter-spacing:.06em;text-transform:uppercase;outline:none}
.ck-tips-t{margin:26px 0 12px;font-size:18px;font-weight:500}
.ck-tips{list-style:none;margin:0;padding:0;display:grid;gap:12px;counter-reset:t}
.ck-tip{counter-increment:t;position:relative;padding:16px 18px 16px 56px;border:1px solid var(--line);border-radius:16px;background:var(--card)}
.ck-tip::before{content:counter(t);position:absolute;left:18px;top:16px;font:500 14px var(--mono);color:var(--muted)}
.ck-tip p{margin:0 0 10px}
.ck-tip h3{margin:0 0 12px;font-size:19px;line-height:1.4}
.ck-tip .ck-demo{display:flex}
.ck-link{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:4px;overflow-wrap:anywhere}
.ck-restart{margin-top:20px}
.commission-steps{padding-left:24px}.commission-steps li{padding-left:8px;margin-bottom:28px}.commission-steps li::marker{color:var(--muted);font-family:var(--mono)}
.ck-cta{margin-top:36px;padding-top:28px;border-top:1px solid var(--line)}
.ck-cta-t{margin:0 0 8px;font-size:clamp(20px,3vw,26px);font-weight:400;letter-spacing:-.01em;text-wrap:balance}
.ck-cta .btns{margin-top:16px}
.ck-note{margin:16px 0 0;font-size:14px;color:var(--muted)}
.check-card{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;padding:18px 22px;min-height:64px;border:1px solid var(--glass-edge);border-radius:var(--radius);background:rgba(200,214,226,.04);text-decoration:none;overflow-wrap:anywhere}
.check-card:hover{background:rgba(200,214,226,.1)}
.check-card b{font-weight:500}
.ciao-check{display:flex;width:fit-content;align-items:center;min-height:44px;margin-top:16px;font-size:15px;text-underline-offset:4px}.ciao-check+.ciao-check{margin-top:2px}
.ciao .glass-wrap+.cards{margin-top:24px}
@media(max-width:760px){.ck-nav .btn{flex:1}}

/* Rifinitura: meno modelli, più scelte. Vetro solo sull'apertura della home; raggi piccoli; niente aloni né sollevamenti. */
:root{--radius:10px}
.btn{border-radius:10px}
.btn:hover{box-shadow:none}
.skip{border-radius:6px}
.chip{border-radius:8px}
.top{background:rgba(12,14,17,.96);backdrop-filter:none;-webkit-backdrop-filter:none}
.menu-toggle{border-radius:8px}
.hero{border-radius:20px}
.glass{border-radius:20px}
.hero-note{font-size:15px}
.away{border-radius:6px}

/* le pagine interne non sono vetro: intestazione piana, niente macchie sfocate né asterisco che gira */
.glass.svc-head{background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;overflow:visible;padding:clamp(16px,3vw,32px) 0 clamp(28px,4vw,48px)}
.glass.svc-head::before{display:none}
.glass-wrap:has(.svc-head) .behind{display:none}
.svc-mark{display:none}
.svc-head .lead{margin-bottom:26px}
.check .glass-wrap{margin-bottom:clamp(24px,4vw,40px)}

/* stanza: scheda piana, senza sollevamento */
.room-card{border-radius:14px}
.room-card:hover{transform:none;border-color:var(--ink)}
.room-card img{border-radius:0}
.room-card .room-cta{display:inline-block;margin-top:20px;color:var(--ink);text-decoration:underline;text-underline-offset:5px}
.card{border-radius:10px}
.card:hover{transform:none;border-color:var(--ink)}
.card-metric b,.pj-metric b{text-shadow:none}

/* servizi: elenco, non schede */
.service-directory{padding-top:clamp(64px,10vh,110px)}
.group-t{margin:0 0 6px;font:400 15px/1.4 var(--body);letter-spacing:0;text-transform:none;color:var(--muted)}
.group{padding-top:36px}
.svc-cards{display:block;gap:0;border-top:1px solid var(--line)}
.svc-card{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.2fr) 80px;align-items:baseline;gap:8px 28px;height:auto;padding:22px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none}
.svc-card:hover,.svc-card:focus-visible{background:none;border-color:var(--glass-edge)}
.svc-card .row-t{font-size:clamp(22px,2.4vw,30px);text-decoration:underline;text-decoration-color:transparent;text-underline-offset:6px;text-decoration-thickness:1px;transition:text-decoration-color .2s}
.svc-card:hover .row-t,.svc-card:focus-visible .row-t{text-decoration-color:var(--ink)}
.svc-card .row-d{flex:none}
.svc-card .row-n{font:400 14px var(--body);letter-spacing:0;text-transform:none;text-align:right}
.svc-card .row-n:empty{display:block}
@media(max-width:760px){.svc-card{grid-template-columns:1fr;padding:18px 0}.svc-card .row-n{text-align:left;grid-row:3}.svc-card .row-n:empty{display:none}}
.check-card{display:block;margin:30px 0 0;padding:0;min-height:0;border:0;border-radius:0;background:none;color:var(--muted);font-size:17px}
.check-card a{color:var(--ink);text-underline-offset:4px}
.check-card:hover{background:none}

/* come lavoro: due paragrafi, senza numeri né griglia */
.process{padding-top:clamp(64px,10vh,110px)}
.process .title{margin-bottom:22px}
.process-t{max-width:56ch}
.process-t p{margin:0 0 14px;font-size:clamp(18px,1.8vw,21px);line-height:1.6;color:var(--ink)}
@media(min-width:761px){.about{grid-template-columns:1fr 2fr}}
.foot{background:none;margin-top:clamp(64px,10vh,110px)}
.explore{margin-top:22px;color:var(--ink);text-underline-offset:5px}

/* pagina servizio: due colonne di testo, non due riquadri */
.detail-columns>div{padding:0;border:0;border-top:1px solid var(--glass-edge);border-radius:0;background:none;padding-top:20px}
.detail-columns h2,.project-next h2{font-size:21px}
.scope-note{border-left-color:var(--glass-edge)}
.request-guide>details{border-radius:10px;background:none}
.request-guide summary span{color:var(--muted)}
.request-guide input,.request-guide select,.request-guide textarea,.mc-form input,.mc-form select,.rform input[type=text],.rform textarea,.verify input,.service-search input{border-radius:8px}
.request-preview pre{border-radius:8px}

/* progetti: Obiettivo / Realizzazione / Risultato come righe */
.pj-steps{display:block}
.pj-steps div{display:grid;grid-template-columns:150px 1fr;gap:6px 24px;padding:16px 0;background:none;border:0;border-top:1px solid var(--line);border-radius:0}
.pj-steps div:last-child{border-color:var(--line)}
.pj-steps dt{font:500 15px/1.5 var(--body);letter-spacing:0;text-transform:none;color:var(--ink);margin:0}
.pj-steps div:last-child dt{color:var(--ink)}
@media(max-width:760px){.pj-steps div{grid-template-columns:1fr}}
.project-next{border:0;border-top:1px solid var(--line);border-radius:0;padding:28px 0 0}
.pj-quote{border-radius:0}
.pj-gallery img,.pj-strip img,.ba,.vid,.yt{border-radius:8px}
.frame-browser{border-radius:8px}
.ba-handle{box-shadow:none}

/* recensioni e test */
.registro{border-radius:10px;background:none}
.reg-t{margin:0 0 6px;font:500 17px var(--body)}
.rev,.ck-opt,.ck-tip,.ck-result{border-radius:10px}
.rev .seal,.fact{border-radius:6px}
.plain{display:grid;gap:18px;max-width:62ch}
.plain .c p{display:inline;margin:0;color:var(--muted)}
.plain .c b{font-weight:500}
.ck-track,.ck-track i{border-radius:0}
.ck-step{font:400 14px/1.3 var(--body);letter-spacing:0;text-transform:none}
.ck-n{font:400 14px/1.3 var(--body);letter-spacing:0;text-transform:none}
.tq-sample{border-radius:6px}

/* Percorsi principali e servizi di supporto: stessa identità, priorità leggibili. */
.offer-paths{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.offer-paths li{min-width:0}.offer-paths a{display:flex;flex-direction:column;height:100%;padding:22px 0;border-block:1px solid var(--glass-edge);text-decoration:none}
.offer-paths h3{font-size:clamp(22px,2.4vw,29px);font-weight:500;line-height:1.25;margin:0 0 12px}
.offer-paths p{color:var(--muted);line-height:1.6;margin:0 0 18px;flex:1}.offer-paths span{font-size:14px;text-decoration:underline;text-underline-offset:5px}
.offer-paths a:hover h3,.offer-paths a:focus-visible h3{color:var(--accent)}
.support-services{margin-top:28px;border-bottom:1px solid var(--line);padding-bottom:18px}.support-services>summary{cursor:pointer;font-size:18px;padding:12px 0}.support-services[open]>summary{margin-bottom:12px}.support-services .group{padding-top:20px}
.service-paths{margin-bottom:36px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.service-paths article{scroll-margin-top:110px;border-top:1px solid var(--glass-edge);padding-top:20px}.service-paths h2{font-size:24px;font-weight:500;line-height:1.3;margin:0 0 16px}.service-paths p{color:var(--muted);line-height:1.7;margin:0}.service-paths .path-outcome{margin-top:16px;font-size:15px;line-height:1.6}.path-outcome strong{display:block;color:var(--ink);font-weight:500;margin-bottom:4px}
@media(max-width:760px){.offer-paths,.service-paths{grid-template-columns:1fr;gap:0}.offer-paths a{padding:18px 0;border-top:0}.offer-paths li:first-child a{border-top:1px solid var(--glass-edge)}.offer-paths h3{font-size:23px;margin-bottom:8px}.offer-paths p{margin-bottom:10px}.service-paths{gap:26px}.support-services{margin-top:20px}}

/* Demo di un piccolo strumento: stessi materiali del sito, dati solo in memoria. */
.activity-demo{padding-block:32px 60px;max-width:1100px}
.activity-demo h1{font-size:clamp(32px,5vw,56px);font-weight:400;line-height:1.12;letter-spacing:-.025em;margin:20px 0}
.activity-demo>.lead{margin:16px 0 24px;max-width:56ch}
.activity-eyebrow{font:12px var(--mono);letter-spacing:.08em;color:var(--muted);margin-top:32px}
.activity-demo input,.activity-demo textarea{width:100%;min-width:0;font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--glass-edge);border-radius:10px;padding:12px}
.activity-demo label{display:flex;flex-direction:column;gap:8px;font-size:14px}
.activity-period{max-width:360px;margin:28px 0 18px}
.activity-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) 100px auto;gap:14px;align-items:end;min-width:0;margin:0 0 14px;padding:16px;border:1px solid var(--glass-edge);border-radius:12px}
.activity-row legend{padding-inline:6px;font-size:13px;color:var(--muted)}
.activity-remove{padding-inline:16px}
.activity-actions{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0}
.activity-status{color:var(--muted);min-height:1.5em;line-height:1.5}
.activity-result{padding:24px;border:1px solid var(--glass-edge);border-radius:var(--radius);background:var(--card);margin-bottom:28px}
.activity-result[hidden]{display:none}
.activity-result h2{font-size:28px;font-weight:400;margin:0 0 14px}
.activity-result table{width:100%;border-collapse:collapse;margin:24px 0;table-layout:fixed;font-size:15px}
.activity-result caption{text-align:left;font-size:14px;color:var(--muted);padding-bottom:12px}
.activity-result th,.activity-result td{text-align:left;overflow-wrap:anywhere;padding:12px 8px;border-bottom:1px solid var(--glass-edge)}
.activity-result th:first-child{width:50%}
.activity-result textarea{margin-top:10px;font-size:14px;line-height:1.6;resize:vertical}
.activity-explanation{padding-block:18px;border-block:1px solid var(--glass-edge);line-height:1.7}
.activity-explanation summary{cursor:pointer}.activity-explanation p{color:var(--muted)}
@media(max-width:760px){.activity-row{grid-template-columns:minmax(0,1fr) 100px;gap:12px}.activity-row label:nth-of-type(2){grid-column:1/-1;grid-row:2}.activity-row .activity-remove{grid-column:1/-1;justify-self:start}.activity-result{padding:18px 14px}.activity-actions .btn{flex:1 1 180px}.activity-result th,.activity-result td{padding-inline:4px;font-size:14px}}


/* Effetti delle pagine interne (16 ottobre 2026): schede con una riga di descrizione, luce che segue il cursore sulle schede,
   sezioni che compaiono scorrendo, riflesso sui pulsanti principali. Senza JavaScript, in stampa o con meno movimento tutto resta fermo e visibile. */
.card-sum{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; margin-top:8px; font-size:14px; line-height:1.5; color:var(--muted); }
.works .explore{ margin-top:22px; }
.card{ position:relative; --mx:50%; --my:-20%; }
.card::after{ content:''; position:absolute; inset:0; border-radius:inherit; pointer-events:none; opacity:0; transition:opacity .35s ease; background:radial-gradient(380px circle at var(--mx) var(--my), rgba(165,212,244,.11), transparent 62%); }
.card:hover::after, .card:focus-visible::after{ opacity:1; }
.card-visual img{ transition:transform .9s cubic-bezier(.2,.9,.25,1); }
.card:hover .card-visual img{ transform:scale(1.035); }
@media (prefers-reduced-motion:no-preference){
  /* senza trasparenza: il testo resta sempre leggibile (anche per i lettori di schermo e i controlli di contrasto), entra salendo e mettendosi a fuoco */
  html.rv .rv-in{ transform:translateY(26px); filter:blur(7px); transition:transform .9s cubic-bezier(.2,.9,.25,1), filter .7s ease; transition-delay:var(--rv-d, 0ms); }
  html.rv .rv-in.rv-on{ transform:none; filter:none; }
  .btn:not(.btn-ghost){ position:relative; overflow:hidden; isolation:isolate; }
  .btn:not(.btn-ghost)::before{ content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(110deg, transparent 32%, rgba(255,255,255,.6) 50%, transparent 68%); transform:translateX(-120%); transition:transform .75s ease; }
  .btn:not(.btn-ghost):hover::before, .btn:not(.btn-ghost):focus-visible::before{ transform:translateX(120%); }
}
@media print{ html.rv .rv-in{ filter:none !important; transform:none !important; } }
/* Pagine dei servizi su schermo largo: l'asterisco CP*R diventa la figura a destra del titolo, con un alone di luce
   e un leggero spostamento che segue il mouse (variabili --px/--py da site.js). Sul telefono resta il segno tenue di sempre. */
@media (min-width:1021px){
  .svc-head{ --px:0; --py:0; }
  .svc-head::after{ content:''; position:absolute; z-index:0; right:clamp(0px, 4vw, 70px); top:50%; width:min(34vw, 460px); aspect-ratio:1; transform:translate(calc(var(--px) * 10px), calc(-50% + var(--py) * 10px)); border-radius:50%; pointer-events:none;
    background:radial-gradient(closest-side, rgba(165,212,244,.16), rgba(165,212,244,.05) 55%, transparent 72%); transition:transform .6s cubic-bezier(.2,.9,.25,1); }
  .svc-head .svc-mark{ display:block; z-index:1; right:clamp(50px, 8vw, 140px); width:min(22vw, 300px); opacity:.2; filter:drop-shadow(0 0 22px rgba(200,230,255,.55)) drop-shadow(0 0 60px rgba(165,212,244,.25));
    translate:calc(var(--px) * -18px) calc(var(--py) * -18px); transition:translate .6s cubic-bezier(.2,.9,.25,1); }   /* la rotazione resta su transform (mark-spin) */
}
@media (min-width:1021px) and (prefers-reduced-motion:no-preference){
  .svc-head .svc-mark{ animation:mark-spin 90s linear infinite, mark-breath 7s ease-in-out infinite; }
  @keyframes mark-breath{ 0%,100%{ opacity:.17; } 50%{ opacity:.26; } }
}
.portfolio .lead{ margin-left:0; }   /* allineato al titolo «Progetti» (prima era centrato e sembrava rientrato) */
/* Telefono, pagine dei servizi: i progetti diventano una fila da sfogliare di lato (la scheda dopo si intravede), invece di nove schede in colonna */
@media (max-width:760px){
  .works .cards{ display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; margin-inline:calc(-1 * clamp(16px, 4vw, 48px)); padding:4px clamp(16px, 4vw, 48px) 14px; scroll-padding-inline:clamp(16px, 4vw, 48px); scrollbar-width:thin; }
  .works .cards > .card{ flex:0 0 min(78vw, 320px); scroll-snap-align:start; }
  .works .cards > .card:hover{ transform:none; }
}
.ck-tip .ck-brief{ margin-left:20px; color:var(--ink); }   /* dalla guida al briefing già impostato sul servizio suggerito */
.project-next .project-brief{ margin:22px 0 0; }.project-next .project-brief + .btns{ margin-top:12px; }
.pf-filter{ display:flex; flex-wrap:wrap; gap:8px; margin:28px 0 -8px; }
.pf-filter[hidden]{ display:none; }
.pf-filter .chip{ font:inherit; font-size:14px; cursor:pointer; color:var(--ink); min-height:40px; }
.pf-filter .chip span{ margin-left:4px; opacity:.7; }
.pf-filter .chip[aria-pressed="true"]{ background:var(--ink); color:var(--bg); border-color:var(--ink); }
.cards > .card[hidden]{ display:none; }

/* Passaggio tra le pagine del sito: dissolvenza breve invece del cambio a scatto (browser che supportano le transizioni tra documenti;
   gli altri cambiano pagina come sempre). La testata resta ferma, cambia solo il contenuto. */
@media(prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  header.top{view-transition-name:testata}
  ::view-transition-old(root){animation:vt-out .18s ease-in both}
  ::view-transition-new(root){animation:vt-in .32s cubic-bezier(.2,.8,.2,1) both}
}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0;transform:translateY(10px)}}

/* guida /check con JavaScript: il numero della domanda è già sopra la barra; nella legenda resta per i lettori di schermo */
#ck.is-js .ck-n{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

.testi-next{margin-top:40px;max-width:760px}
.portfolio .pf-group{font-size:clamp(20px,2.4vw,26px);font-weight:400;letter-spacing:-.01em;margin:48px 0 0}
.portfolio .pf-group+.cards{margin-top:20px}
.portfolio .pf-note{max-width:58ch;margin-top:8px;font-size:15px}

/* ====================== Sistema comune CPHR (versione finale, 23 ottobre 2026) ======================
   Stessi valori della galleria 3D (galleria.css): acciaio brunito con filo chiaro, spigoli quasi vivi, azioni in Michroma maiuscolo.
   Comandi 4 px, finestre e schede 8 px; nessuna pillola tonda, nessun alone o sollevamento. Stati: riposo, passaggio, fuoco, premuto,
   selezionato, disattivato, in corso (aria-busy), riuscito / errore (messaggi). Aree di tocco almeno 44×44 px sul telefono. */
:root{
  --void:#0c0e11; --graphite:#161a1f; --steel:#3a424b; --ice:#e9eef2; --line-s:#e9eef224;
  --fill:linear-gradient(180deg,#2b333c,#181d22); --ring:linear-gradient(180deg,#f4f8fbd9,#e9eef26b 60%,#e9eef2a6);
  --fillH:linear-gradient(180deg,#f6f9fb,#d2dce4); --ringH:linear-gradient(#f6f9fb,#f6f9fb);
  --fillP:linear-gradient(180deg,#1b2128,#12161a);
  --r:4px; --rw:8px; --radius:8px; --ok:#9fe0b4; --err:#ffb4a8; --focus:#edf6ff;
}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:2px}
/* azione principale: cornice d'acciaio, scritta Michroma; al passaggio si accende (acciaio chiaro, scritta scura) */
.btn{min-height:48px;padding:0 22px;gap:10px;border:1px solid transparent;border-radius:var(--r);background:var(--fill) padding-box,var(--ring) border-box;color:var(--ice);font:400 11px/1.2 var(--display);letter-spacing:.12em;text-transform:uppercase;box-shadow:none;transition:background .2s,color .2s}
@media(hover:hover){.btn:hover{background:var(--fillH) padding-box,var(--ringH) border-box;color:var(--void);box-shadow:none}}
.btn:active{background:var(--fillP) padding-box,var(--ring) border-box;color:var(--ice)}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;pointer-events:none}
.btn[aria-busy="true"]{cursor:progress;opacity:.75}
.btn-sm{min-height:44px;padding:0 16px}
/* azione secondaria: solo testo, come «studio@cphr.it» nella galleria */
.btn-ghost{min-height:48px;padding:0 6px;border:0;border-radius:var(--r);background:none;color:#c9d3db;font:500 15px/1.2 var(--body);letter-spacing:0;text-transform:none;text-decoration:underline;text-decoration-color:#c9d3db66;text-underline-offset:5px}
@media(hover:hover){.btn-ghost:hover{background:none;color:var(--ice);text-decoration-color:var(--ice)}}
.btn-ghost:active{background:none;color:var(--ice)}
/* scelte e filtri */
.chip,.pf-filter .chip,.service-jumps .chip{border-radius:var(--r);border:1px solid var(--line-s);background:none;min-height:44px}
@media(hover:hover){.chip:hover{border-color:#e9eef299;background:none}}
.pf-filter .chip[aria-pressed="true"]{background:var(--ice);color:var(--void);border-color:var(--ice)}
.menu-toggle{border-radius:var(--r);background:var(--fill) padding-box,var(--ring) border-box;border:1px solid transparent}
/* campi */
input:not([type=radio]):not([type=checkbox]),select,textarea{border-radius:var(--r)!important}
input:not([type=radio]):not([type=checkbox]):focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--ice)!important}
input[aria-invalid="true"],textarea[aria-invalid="true"],select[aria-invalid="true"]{border-color:var(--err)!important}
.form-ok,[data-state="ok"]{color:var(--ok)}.form-err,[data-state="error"]{color:var(--err)}
/* finestre e schede */
.hero,.glass,.card,.room-card,.request-guide>details,.registro,.rev,.ck-opt,.ck-tip,.ck-result,.check-card,.lb img{border-radius:var(--rw)}
.skip{border-radius:var(--r)}
/* pulsante di contatto fisso del telefono: cornice d'acciaio, non una bolla */
.fab{border-radius:var(--r);background:var(--fill) padding-box,var(--ring) border-box;border:1px solid transparent;color:var(--ice)}
@media(max-width:760px){.fab{background:var(--fill) padding-box,var(--ring) border-box;color:var(--ice)}}
/* aree di tocco sul telefono */
@media(pointer:coarse){
  .logo{display:inline-flex;align-items:center;min-height:44px}
  .foot-info a,.foot a,.tq-link,.pj-link,.back,.ciao a,.breadcrumbs a,nav[aria-label] a{display:inline-flex;align-items:center;min-height:44px}
  .breadcrumbs a{min-width:44px;justify-content:center}
  .tq-link{display:flex;width:max-content}
  .path-outcome>a:only-child{display:inline-flex;align-items:center;min-height:44px}
  input:not([type=radio]):not([type=checkbox]),select{min-height:44px}
}
/* in corso: filo luminoso che scorre sotto la scritta (fermo con «riduci movimento») */
.btn{position:relative}
.btn[aria-busy="true"]::after{content:'';position:absolute;left:14px;right:14px;bottom:7px;height:1px;background:linear-gradient(90deg,transparent,var(--ice),transparent);background-size:50% 100%;background-repeat:no-repeat;animation:cphr-busy 1.1s linear infinite}
@keyframes cphr-busy{from{background-position:-50% 0}to{background-position:150% 0}}
@media(prefers-reduced-motion:reduce){.btn[aria-busy="true"]::after{animation:none;background-size:100% 100%}}
.btn-ghost:active{color:#9fb0bf;text-decoration-color:#9fb0bf;text-decoration-thickness:2px}

/* ---------- recensioni riscontrabili (25 ottobre 2026): pagina dell'autore /r/ e archivio /recensioni ---------- */
.rv .rform{ max-width:720px; }
.rv .row2{ display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:16px; }
.rv-ok, .rv-err{ max-width:720px; margin:16px 0 0; padding:12px 14px; border-radius:12px; border:1px solid var(--glass-edge); background:var(--fumo); }
.rv-err{ border-color:rgba(255,138,122,.5); }
.rv-box{ max-width:720px; margin-top:20px; padding:16px 18px; border:1px solid var(--line); border-radius:16px; background:var(--card); }
.rv-box summary{ cursor:pointer; min-height:44px; display:flex; align-items:center; }
.rv-h{ margin:40px 0 0; font:500 13px var(--mono); letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.rv-q{ display:grid; gap:6px; padding:6px 0; border-bottom:1px solid var(--line); }
.rv-q:last-child{ border-bottom:0; }
.rv-q > span{ font-size:15px; }
.rv-q .chk{ font-size:14px; }
.rform input[type=email], .rform select{ font:inherit; font-size:16px; padding:11px 13px; border-radius:12px; border:1px solid var(--line); background:var(--fumo); color:var(--ink); width:100%; }
.rv-out{ margin-top:24px; }
.rv-out .linkbtn{ background:none; border:0; color:var(--muted); font:inherit; text-decoration:underline; cursor:pointer; min-height:44px; }
.rv .danger{ color:#ffb3a8; }
/* il personaggio: anteprima piccola accanto a pochi controlli */
.rv-omino-grid{ display:grid; grid-template-columns:minmax(200px, 260px) 1fr; gap:18px; align-items:start; }
@media (max-width:620px){ .rv-omino-grid{ grid-template-columns:1fr; } }
.rv-stage{ position:relative; aspect-ratio:4/5; border:1px solid var(--glass-edge); border-radius:14px; background:linear-gradient(180deg, #1a2129, #0f1317); overflow:hidden; touch-action:pan-y; cursor:grab; }
.rv-stage:focus-visible{ outline:2px solid var(--ink); outline-offset:3px; }
.rv-stage canvas{ position:absolute; inset:0; width:100% !important; height:100% !important; }
.rv-fallback{ position:absolute; inset:12% 30%; fill:#4d6070; }
.rv-stage.is-3d .rv-fallback{ display:none; }
.rv-rot{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.rv-rot .btn{ min-height:44px; min-width:44px; justify-content:center; }
.rv-desc{ margin-top:8px; font-size:14px; }
.rv-sel{ display:grid; gap:12px; }
/* archivio */
.rv-card .rev-t p{ margin:0 0 10px; }
.rv-risp{ list-style:none; margin:8px 0 0; padding:0; font-size:14px; color:var(--muted); display:grid; gap:4px; }
.rv-date{ margin:12px 0 0; font-size:13px; color:var(--muted); }
.rv-reply{ margin-top:14px; padding:12px 14px; border-left:2px solid var(--glass-edge); background:rgba(200,214,226,.04); border-radius:0 12px 12px 0; }
.rv-reply .label{ margin:0 0 6px; }
.rv-reply p{ margin:0; font-size:15px; }
.rv-how{ margin-top:14px; font-size:14px; }
.rv-how summary{ cursor:pointer; min-height:44px; display:flex; align-items:center; font:500 11px var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.rv-how p{ margin:6px 0 0; }
.rv-prog{ margin:10px 0 0; font-size:14px; }
.rv-dom{ margin:16px 0 0; padding-left:18px; font-size:14px; color:var(--muted); display:grid; gap:4px; }
.rv-sim{ margin-top:16px; padding:10px 14px; border:1px dashed var(--glass-edge); border-radius:12px; font-size:14px; }
.rv-testi .seal{ padding:6px 12px; }
.rv-card:target{ border-color:var(--ink); }
