/* ───────── TELOS LABEL · base glass system ───────── */
@font-face{font-family:"Inter";src:url(/fonts/Inter-Regular.woff) format("woff");font-weight:400;font-display:swap}
@font-face{font-family:"Inter";src:url(/fonts/Inter-Medium.woff) format("woff");font-weight:500;font-display:swap}
@font-face{font-family:"Inter";src:url(/fonts/Inter-SemiBold.woff) format("woff");font-weight:600;font-display:swap}
@font-face{font-family:"Display";src:url(/fonts/InterDisplay-Light.woff) format("woff");font-weight:300;font-display:swap}
@font-face{font-family:"Display";src:url(/fonts/InterDisplay-ExtraBold.woff) format("woff");font-weight:800;font-display:swap}
@font-face{font-family:"Display";src:url(/fonts/InterDisplay-Black.woff) format("woff");font-weight:900;font-display:swap}
@font-face{font-family:"Serif";src:url(/fonts/Lora-Italic.woff) format("woff");font-weight:400 700;font-style:italic;font-display:swap}

:root{
  --ink:#06070a; --ink-2:#0d0f14; --line:rgba(255,255,255,.11); --line-2:rgba(255,255,255,.2);
  --glass:rgba(22,24,31,.42); --glass-2:rgba(255,255,255,.055); --glass-hi:rgba(255,255,255,.09);
  --text:#eef0f5; --muted:#8d93a5; --dim:#5b6072;
  --ember:#ff6a2b; --ember-2:#ffb38a; --ice:#8fd3ff; --ok:#4ade80; --warn:#fbbf24; --bad:#f87171;
  --r:22px; --r-sm:14px; --blur:22px;
  --ease:cubic-bezier(.2,.8,.2,1); --spring:cubic-bezier(.34,1.56,.64,1);
  --f-body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif; --f-disp:"Display","Inter",system-ui,sans-serif; --f-serif:"Serif",Georgia,serif;
  color-scheme:dark;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{background:var(--ink);color:var(--text);font:400 15px/1.55 var(--f-body);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img,video{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0}
::selection{background:var(--ember);color:#000}
:focus-visible{outline:2px solid var(--ember);outline-offset:3px;border-radius:6px}

/* ───────── stage: logo sotto il vetro ───────── */
.stage{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:
  radial-gradient(1200px 800px at 80% -10%,#1a1c26 0%,transparent 60%),
  radial-gradient(900px 700px at -10% 110%,#16120f 0%,transparent 60%),var(--ink)}
.stage .blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.55;mix-blend-mode:screen;will-change:transform}
.stage .b1{width:46vmax;height:46vmax;left:-12vmax;top:-10vmax;background:radial-gradient(circle,#ff6a2b 0%,#ff3d1f55 40%,transparent 70%);animation:drift1 26s var(--ease) infinite alternate}
.stage .b2{width:40vmax;height:40vmax;right:-10vmax;bottom:-14vmax;background:radial-gradient(circle,#3aa6ff 0%,#2a5cff44 45%,transparent 70%);animation:drift2 32s var(--ease) infinite alternate;opacity:.4}
.stage .b3{width:22vmax;height:22vmax;left:55%;top:45%;background:radial-gradient(circle,#ffffff 0%,transparent 65%);opacity:.08;animation:drift1 40s linear infinite alternate-reverse}
.stage .emblem{position:absolute;left:50%;top:50%;width:min(118vmin,1100px);aspect-ratio:1290/1183;translate:-50% -50%;transform:translate3d(var(--px,0),var(--py,0),0)}
.stage .emblem svg{width:100%;height:100%;overflow:visible;animation:spin 140s linear infinite}
.stage .emblem .fill{fill:url(#chrome);opacity:.9}
.stage .emblem .edge{fill:none;stroke:url(#edge);stroke-width:3;stroke-dasharray:420 2600;animation:trace 9s linear infinite;filter:drop-shadow(0 0 10px #ff6a2b)}
.stage .emblem .edge2{fill:none;stroke:rgba(255,255,255,.14);stroke-width:1.4}
.stage .ghost{position:absolute;right:-14vmin;top:-12vmin;width:46vmin;aspect-ratio:1290/1183;opacity:.22;filter:blur(2px)}
.stage .ghost svg{width:100%;height:100%;animation:spin 90s linear infinite reverse}
.stage .grain{position:absolute;inset:-50%;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain 1.2s steps(6) infinite}
.stage .vignette{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 40%,rgba(0,0,0,.65) 100%)}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes trace{to{stroke-dashoffset:-3020}}
@keyframes drift1{to{transform:translate(18vmax,14vmax) scale(1.15)}}
@keyframes drift2{to{transform:translate(-16vmax,-12vmax) scale(.9)}}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-5%,3%)}40%{transform:translate(4%,-6%)}60%{transform:translate(-3%,5%)}80%{transform:translate(6%,2%)}100%{transform:translate(0,0)}}

/* ───────── glass ───────── */
.glass{position:relative;background:linear-gradient(155deg,rgba(255,255,255,.085),rgba(255,255,255,.025) 40%,rgba(255,255,255,.04));
  backdrop-filter:blur(var(--blur)) saturate(150%);-webkit-backdrop-filter:blur(var(--blur)) saturate(150%);
  border:1px solid var(--line);border-radius:var(--r);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 30px 60px -30px rgba(0,0,0,.7)}
.glass::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;padding:1px;
  background:linear-gradient(135deg,rgba(255,255,255,.35),transparent 35%,transparent 65%,rgba(255,106,43,.35));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.55}
.sheen{overflow:hidden}
.sheen::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.13),transparent);transform:skewX(-20deg);transition:left .9s var(--ease)}
.sheen:hover::after{left:130%}

/* ───────── controls ───────── */
.btn{--bg:var(--text);--fg:#07080b;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6em;height:50px;padding:0 26px;border-radius:999px;
  background:var(--bg);color:var(--fg);font:600 13px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;overflow:hidden;isolation:isolate;
  transition:transform .35s var(--spring),box-shadow .35s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--ember);clip-path:circle(0% at var(--mx,50%) var(--my,50%));transition:clip-path .55s var(--ease)}
.btn:hover::before{clip-path:circle(150% at var(--mx,50%) var(--my,50%))}
.btn:hover{transform:translateY(-2px);box-shadow:0 18px 40px -12px rgba(255,106,43,.6)}
.btn:active{transform:scale(.97)}
.btn[disabled]{opacity:.45;pointer-events:none}
.btn.ghost{--bg:rgba(255,255,255,.06);--fg:var(--text);border:1px solid var(--line-2);backdrop-filter:blur(12px)}
.btn.ghost::before{background:rgba(255,255,255,.12)}
.btn.ember{--bg:var(--ember);--fg:#0b0b0d}
.btn.ember::before{background:#fff}
.btn.sm{height:38px;padding:0 16px;font-size:11px}
.btn.block{width:100%}
.field{display:flex;flex-direction:column;gap:7px}
.field>span{font:600 11px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.input{width:100%;height:50px;padding:0 16px;border-radius:var(--r-sm);background:rgba(0,0,0,.28);border:1px solid var(--line);outline:none;transition:border-color .25s,box-shadow .25s,background .25s}
textarea.input{height:auto;min-height:110px;padding:14px 16px;resize:vertical}
select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23aaa' stroke-width='1.6'%3E%3Cpath d='m1 1 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px}
.input:focus{border-color:rgba(255,106,43,.7);box-shadow:0 0 0 4px rgba(255,106,43,.14);background:rgba(0,0,0,.4)}
.input::placeholder{color:var(--dim)}

.switch{position:relative;display:inline-flex;align-items:center;gap:12px;cursor:pointer;user-select:none}
.switch input{position:absolute;opacity:0;pointer-events:none}
.switch i{position:relative;width:48px;height:28px;border-radius:99px;background:rgba(255,255,255,.1);border:1px solid var(--line-2);transition:background .3s}
.switch i::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#cfd3de;transition:transform .45s var(--spring),background .3s;box-shadow:0 2px 6px rgba(0,0,0,.4)}
.switch input:checked+i{background:linear-gradient(90deg,#ff6a2b,#ff9a5c)}
.switch input:checked+i::after{transform:translateX(20px);background:#fff}
.switch input:focus-visible+i{outline:2px solid var(--ember);outline-offset:3px}

.eyebrow{font:600 11px/1 var(--f-body);letter-spacing:.32em;text-transform:uppercase;color:var(--muted);display:inline-flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:22px;height:1px;background:currentColor;opacity:.6}
.serif{font-family:var(--f-serif);font-style:italic;font-weight:500}

/* toast */
.toasts{position:fixed;z-index:999;left:50%;bottom:22px;translate:-50% 0;display:flex;flex-direction:column;gap:10px;align-items:center;pointer-events:none;width:min(92vw,420px)}
.toast{pointer-events:auto;padding:14px 18px;border-radius:16px;font-weight:500;font-size:14px;display:flex;gap:12px;align-items:center;width:100%;animation:toastIn .6s var(--spring)}
.toast.out{animation:toastOut .35s var(--ease) forwards}
.toast .dot{width:9px;height:9px;border-radius:50%;background:var(--ember);box-shadow:0 0 14px var(--ember);flex:none}
.toast.ok .dot{background:var(--ok);box-shadow:0 0 14px var(--ok)}
.toast.bad .dot{background:var(--bad);box-shadow:0 0 14px var(--bad)}
@keyframes toastIn{from{opacity:0;transform:translateY(30px) scale(.9)}}
@keyframes toastOut{to{opacity:0;transform:translateY(20px) scale(.95)}}

.skeleton{background:linear-gradient(90deg,rgba(255,255,255,.04),rgba(255,255,255,.09),rgba(255,255,255,.04));background-size:200% 100%;animation:sk 1.4s linear infinite}
@keyframes sk{to{background-position:-200% 0}}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
