:root{--bg:#000;--fg:#ececec;--dim:#8e9196;--accent:#c9ced6;--line:#24262a;--serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;--sans:"Helvetica Neue",Helvetica,Arial,sans-serif;--body:var(--serif)}
[data-theme=ember]{--bg:#000;--fg:#f1e9e0;--dim:#9a8f84;--accent:#c8793b;--line:#2a241e}
[data-theme=ice]{--bg:#05080f;--fg:#e6edf7;--dim:#8793a6;--accent:#8fb4e8;--line:#1a2332}
[data-theme=ivory]{--bg:#f2f0eb;--fg:#111;--dim:#6b6b6b;--accent:#111;--line:#d8d4cb}
[data-font=sans]{--body:var(--sans)}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font:300 1.0625rem/1.65 var(--body);-webkit-font-smoothing:antialiased}
a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.wrap{max-width:1240px;margin:auto;padding:0 clamp(1rem,4vw,3rem)}
.top{display:flex;justify-content:space-between;align-items:baseline;padding:1.6rem 0}
.brand{font-weight:400;letter-spacing:.32em;font-size:.85rem}.top nav{display:flex;gap:2rem;font-size:.95rem}.top a{text-decoration:none;color:var(--dim)}.top a:hover{color:var(--fg)}
.dim{color:var(--dim)}
h1{font-weight:200;font-size:clamp(2.4rem,6.4vw,5.6rem);line-height:1.02;letter-spacing:-.02em;margin:clamp(2rem,7vh,5rem) 0 1rem;max-width:15ch}
.tag{max-width:46ch;color:var(--dim);margin:0 0 clamp(2rem,5vh,3.5rem)}
.frame{position:relative;aspect-ratio:2.39/1;background:radial-gradient(120% 140% at 20% 0%,color-mix(in srgb,var(--accent) 22%,var(--bg)),var(--bg) 60%);border:1px solid var(--line);overflow:hidden;display:grid;place-items:center}
.frame::before{content:"";position:absolute;inset:-40%;background:conic-gradient(from 200deg at 15% -10%,transparent 0 30deg,color-mix(in srgb,var(--accent) 14%,transparent) 36deg,transparent 46deg);animation:beam 14s ease-in-out infinite alternate}
@keyframes beam{to{transform:rotate(9deg)}}
@media (prefers-reduced-motion:reduce){.frame::before{animation:none}html{scroll-behavior:auto}}
.frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}
.play{position:relative;z-index:1;width:5.5rem;height:5.5rem;border-radius:50%;border:1px solid var(--fg);background:transparent;color:var(--fg);cursor:pointer;display:grid;place-items:center;transition:background .2s,color .2s}
.play:hover{background:var(--fg);color:var(--bg)}.play i{width:0;height:0;border-left:1.1rem solid currentColor;border-top:.7rem solid transparent;border-bottom:.7rem solid transparent;margin-left:.3rem}
.msg{position:relative;z-index:1;color:var(--dim);padding:1rem;text-align:center}
section{padding:clamp(3.5rem,9vh,6.5rem) 0}h2{font-weight:200;font-size:clamp(1.6rem,3vw,2.4rem);margin:0 0 2rem;letter-spacing:-.01em}
.list{list-style:none;margin:0;padding:0}.row{display:grid;grid-template-columns:2fr 1.2fr auto;gap:1.5rem;align-items:center;padding:1.4rem 0;border-top:1px solid var(--line)}.row:last-child{border-bottom:1px solid var(--line)}
.row h3{margin:0;font-weight:300;font-size:clamp(1.3rem,2.4vw,1.9rem)}.row p{margin:.2rem 0 0}
.btn{font:inherit;font-size:.95rem;background:var(--fg);color:var(--bg);border:0;padding:.85rem 1.5rem;cursor:pointer}.btn:disabled{opacity:.5}.btn.ghost{background:transparent;color:var(--fg);border:1px solid var(--line)}.btn.ghost:hover{border-color:var(--fg)}
.lock{color:var(--dim);font-size:.95rem;border:1px solid var(--line);padding:.7rem 1.2rem}
form{display:grid;gap:.9rem;max-width:34rem}label{display:grid;gap:.35rem;font-size:.95rem;color:var(--dim)}
input,textarea,select{font:inherit;background:transparent;color:var(--fg);border:1px solid var(--line);padding:.8rem .9rem;border-radius:0;width:100%}input:focus,textarea:focus,select:focus{border-color:var(--accent)}
.hp{position:absolute;left:-9999px}.ok{color:var(--accent)}.err{color:#e5766b}
dialog{width:min(1100px,94vw);padding:0;border:1px solid var(--line);background:var(--bg);color:var(--fg)}dialog::backdrop{background:#000d}
dialog .frame{border:0}dialog .bar{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1rem}
footer{padding:3rem 0 4rem;color:var(--dim);font-size:.9rem;border-top:1px solid var(--line)}
@media (max-width:720px){.row{grid-template-columns:1fr}.top nav{gap:1.2rem}.frame{aspect-ratio:16/9}}
