:root{--bg:#0A1120;--sea:#0B1B33;--ink:#F4EFE5;--muted:#C9C2B4;--brass:#CDAE6E;--line:#24314C;--raise:#16223A;
  --display:"Bodoni Moda","Didot","Bodoni 72",Georgia,serif;--ui:"Jost","Futura","Century Gothic",system-ui,sans-serif;color-scheme:dark}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:linear-gradient(180deg,var(--sea),var(--bg));background-attachment:fixed;color:var(--ink);font-family:var(--ui);font-size:15px}
[hidden]{display:none!important}
canvas{position:fixed;inset:0;width:100%;height:100%;display:block}
main{position:relative;min-height:100%;display:grid;place-items:center;text-align:center;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:72px 48px}
.box{display:grid;gap:22px;justify-items:center;max-width:640px}
.mark{margin:0;font-family:var(--display);font-weight:500;font-size:clamp(44px,10vw,88px);letter-spacing:.3em;margin-right:-.3em;text-transform:uppercase;line-height:1}
.slogan{font-family:var(--display);font-style:italic;font-size:clamp(18px,3.4vw,26px);color:var(--brass);margin:0}
.rule{width:64px;height:1px;background:var(--brass);opacity:.7}
.stato{margin:0;font-size:13px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.dom{margin:0;font-size:14px;color:var(--muted);font-weight:300}
.lang{position:fixed;top:calc(14px + env(safe-area-inset-top,0px));right:max(16px,env(safe-area-inset-right,0px));z-index:5}
.lang>button{display:flex;align-items:center;gap:8px;background:rgba(10,17,32,.6);color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:6px 12px;font:inherit;font-size:13px;letter-spacing:.08em;cursor:pointer}
.lang ul{list-style:none;margin:6px 0 0;padding:6px;position:absolute;right:0;background:var(--bg);border:1px solid var(--line);border-radius:8px;min-width:170px}
.lang li a{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-size:14px;padding:8px 10px;border-radius:6px}
.lang li a:hover,.lang li a[aria-current="true"]{background:var(--raise)}
.flag{width:22px;height:15px;border-radius:2px;flex:0 0 auto;box-shadow:0 0 0 1px rgba(255,255,255,.15);display:block}
:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
@media (prefers-reduced-motion:reduce){canvas{display:none}}
/* Accesso */
main.accesso{min-height:100%;display:grid;place-items:center;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:72px 40px}
.abox{width:min(400px,100%);display:grid;gap:26px;text-align:center}
.mark.small{font-size:40px;margin:0 -.3em 0 0}
.abox .slogan{margin:12px 0 0;font-size:18px}
.card{background:#111B2F;border:1px solid var(--line);border-radius:10px;padding:26px 22px;display:grid;gap:16px;text-align:left}
.card h1{margin:0;font-family:var(--display);font-weight:500;font-size:24px}
.card .hint{margin:0;color:var(--muted);font-size:14px}
.card label{display:grid;gap:6px;font-size:13px;color:var(--muted);letter-spacing:.04em}
.card input:not([type=checkbox]){font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:11px 12px}
.card input:focus{outline:none;border-color:var(--brass)}
.card .row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px;flex-wrap:wrap}
.card label.check{display:flex;gap:8px;align-items:center;color:var(--ink);font-size:14px;letter-spacing:0}
.card a{color:var(--brass);text-underline-offset:3px;font-size:14px}
.primary{font:inherit;cursor:pointer;border:0;border-radius:6px;padding:12px;width:100%;background:var(--brass);color:var(--bg);letter-spacing:.12em;text-transform:uppercase;font-size:13px;font-weight:600}
.msg{font-size:14px;margin:0}.msg.err{color:#E58C7A}.msg.ok{color:#82CFA5}
