:root{--nero: #1a1a1a;--nero-soft: #232220;--panna: #f4f1ec;--panna-dim: #e7e2d8;--ottone: #8b6f47;--ottone-chiaro: #b08c5c;--ottone-glow: rgba(139, 111, 71, .22);--bg: var(--nero);--bg-elev: var(--nero-soft);--testo: var(--panna);--testo-dim: rgba(244, 241, 236, .62);--testo-faint: rgba(244, 241, 236, .34);--accento: var(--ottone-chiaro);--linea: rgba(244, 241, 236, .12);--serif: "Cormorant Garamond", Georgia, serif;--sans: "Inter", system-ui, sans-serif;--raggio: 2px;--raggio-lg: 4px;--gutter: clamp(1.25rem, 6vw, 2.5rem);--t-fast: .18s;--t-mid: .42s;--ease: cubic-bezier(.22, .61, .36, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--testo);font-family:var(--sans);font-weight:300;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior:none}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background-image:radial-gradient(circle at 22% 18%,var(--ottone-glow),transparent 38%),radial-gradient(circle at 82% 88%,rgba(139,111,71,.1),transparent 42%);opacity:.9}#root{position:relative;z-index:1}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.08;letter-spacing:.005em}h1{font-size:clamp(2.6rem,11vw,4rem)}h2{font-size:clamp(1.8rem,7vw,2.4rem)}h3{font-size:1.35rem}.eyebrow{font-family:var(--sans);font-size:.72rem;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--accento)}.lead{color:var(--testo-dim);font-size:1.02rem;max-width:34ch}.screen{min-height:100dvh;display:flex;flex-direction:column;padding:max(env(safe-area-inset-top),1.5rem) var(--gutter) max(env(safe-area-inset-bottom),1.5rem)}.screen--center{justify-content:center}.screen__top{display:flex;align-items:center;justify-content:space-between;gap:1rem}.stack{display:flex;flex-direction:column;gap:1.25rem}.spacer{flex:1}.btn{font-family:var(--sans);font-size:.92rem;font-weight:500;letter-spacing:.04em;padding:1rem 1.5rem;border:1px solid transparent;border-radius:var(--raggio);cursor:pointer;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),color var(--t-fast) var(--ease);width:100%;text-align:center}.btn:active{transform:scale(.985)}.btn--primary{background:var(--panna);color:var(--nero)}.btn--primary:hover{background:#fff}.btn--ghost{background:transparent;color:var(--testo);border-color:var(--linea)}.btn--ghost:hover{border-color:var(--accento);color:var(--accento)}.btn--text{background:none;border:none;width:auto;padding:.5rem 0;color:var(--testo-dim)}.btn--text:hover{color:var(--accento)}.tags{display:flex;gap:.75rem;align-items:stretch}.tag-dot{flex:1;border:1px solid var(--linea);border-radius:var(--raggio);padding:1rem .5rem;text-align:center;background:var(--bg-elev);transition:border-color var(--t-mid) var(--ease),background var(--t-mid) var(--ease);position:relative}.tag-dot__num{font-family:var(--serif);font-size:1.6rem;color:var(--testo-faint);transition:color var(--t-mid) var(--ease)}.tag-dot__label{display:block;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--testo-faint);margin-top:.35rem}.tag-dot.is-active{border-color:var(--accento);background:linear-gradient(180deg,rgba(139,111,71,.16),transparent)}.tag-dot.is-active .tag-dot__num{color:var(--accento)}.tag-dot.is-done{border-color:#b08c5c80}.tag-dot.is-done .tag-dot__num,.tag-dot.is-done .tag-dot__label{color:var(--panna)}.tag-dot.is-active:after{content:"";position:absolute;inset:-1px;border:1px solid var(--accento);border-radius:var(--raggio);animation:pulse 1.6s var(--ease) infinite}.panel{border:1px solid var(--linea);border-radius:var(--raggio-lg);background:var(--bg-elev);padding:1.25rem}.kv{display:flex;justify-content:space-between;padding:.6rem 0;border-bottom:1px solid var(--linea);font-size:.92rem}.kv:last-child{border-bottom:none}.kv__k{color:var(--testo-dim)}.kv__v{color:var(--testo);font-variant-numeric:tabular-nums}.camera-frame{position:relative;flex:1;border-radius:var(--raggio-lg);overflow:hidden;background:#000;min-height:50dvh}.camera-frame video{width:100%;height:100%;object-fit:cover}.reticle{position:absolute;inset:12% 10%;border:1px solid var(--testo-faint);border-radius:2px;pointer-events:none;transition:border-color var(--t-mid) var(--ease),box-shadow var(--t-mid) var(--ease)}.reticle.is-locked{border-color:var(--ottone-chiaro);box-shadow:0 0 0 1px var(--ottone-chiaro),0 0 40px var(--ottone-glow)}.reticle__corner{position:absolute;width:22px;height:22px;border:2px solid var(--panna)}.reticle__corner.tl{top:-1px;left:-1px;border-right:none;border-bottom:none}.reticle__corner.tr{top:-1px;right:-1px;border-left:none;border-bottom:none}.reticle__corner.bl{bottom:-1px;left:-1px;border-right:none;border-top:none}.reticle__corner.br{bottom:-1px;right:-1px;border-left:none;border-top:none}.hint{position:absolute;left:50%;bottom:1.25rem;transform:translate(-50%);background:#1a1a1ac7;backdrop-filter:blur(8px);border:1px solid var(--linea);border-radius:999px;padding:.5rem 1.1rem;font-size:.82rem;color:var(--panna);white-space:nowrap}.meter{height:3px;background:var(--linea);border-radius:999px;overflow:hidden}.meter__fill{height:100%;background:linear-gradient(90deg,var(--ottone),var(--ottone-chiaro));transition:width .12s linear}.spinner{width:28px;height:28px;border:1.5px solid var(--linea);border-top-color:var(--accento);border-radius:50%;animation:spin .9s linear infinite}.lang-toggle{display:inline-flex;border:1px solid var(--linea);border-radius:999px;overflow:hidden}.lang-toggle button{background:none;border:none;color:var(--testo-dim);font-family:var(--sans);font-size:.74rem;letter-spacing:.1em;padding:.35rem .7rem;cursor:pointer}.lang-toggle button.is-on{background:var(--panna);color:var(--nero)}.alert{border:1px solid rgba(176,92,71,.5);background:#b05c471a;color:#e8b9ad;border-radius:var(--raggio);padding:.85rem 1rem;font-size:.9rem}.reveal{opacity:0;transform:translateY(12px);animation:reveal var(--t-mid) var(--ease) forwards}.reveal:nth-child(1){animation-delay:60ms}.reveal:nth-child(2){animation-delay:.16s}.reveal:nth-child(3){animation-delay:.26s}.reveal:nth-child(4){animation-delay:.36s}@keyframes reveal{to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%{opacity:.9;transform:scale(1)}70%{opacity:0;transform:scale(1.12)}to{opacity:0;transform:scale(1.12)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
