@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;1,500&family=DM+Sans:wght@400;500;600&display=swap');

:root { color-scheme: dark; --cream:#f1eadc; --muted:#a7aaa3; --gold:#d3ad67; --glass:rgba(13,24,28,.58); }
* { box-sizing:border-box; }
html, body { margin:0; min-height:100%; background:#071016; }
body { min-height:100vh; overflow:hidden; color:var(--cream); font-family:"DM Sans",sans-serif; }
button, input { font:inherit; }
button { color:inherit; }
#dreamCanvas, .veil { position:fixed; inset:0; width:100%; height:100%; }
.veil { pointer-events:none; background:linear-gradient(90deg,rgba(3,9,12,.84) 0%,rgba(4,10,13,.35) 48%,rgba(3,9,12,.13)),linear-gradient(0deg,rgba(2,7,9,.72),transparent 42%); }
.topbar { position:relative; z-index:2; display:flex; justify-content:space-between; align-items:center; padding:29px 4.2vw; }
.brand { color:var(--cream); text-decoration:none; letter-spacing:.28em; font-size:.72rem; font-weight:600; display:flex; align-items:center; gap:12px; }
.brand-mark { width:22px; height:22px; border:1px solid var(--gold); border-radius:50%; box-shadow:inset 7px 0 0 rgba(211,173,103,.18); position:relative; }
.brand-mark::after { content:""; position:absolute; width:4px; height:4px; background:var(--gold); border-radius:50%; right:-5px; top:3px; box-shadow:5px 7px 0 -1px var(--gold); }
.round-button,.close-button { border:1px solid rgba(241,234,220,.28); background:rgba(4,13,16,.35); border-radius:50%; width:38px;height:38px; cursor:pointer; font-family:serif; }
main { position:relative; z-index:1; }
.hero { margin:clamp(60px,11vh,130px) 0 0 clamp(28px,9vw,150px); width:min(580px,80vw); }
.eyebrow { margin:0 0 20px; color:var(--gold); letter-spacing:.3em; font-size:.64rem; font-weight:600; }
h1,h2 { font-family:"Cormorant Garamond",serif; font-weight:500; }
h1 { margin:0; font-size:clamp(4rem,7.2vw,7.2rem); line-height:.76; letter-spacing:-.035em; }
h1 em { color:var(--gold); font-weight:500; }
.intro { max-width:450px; margin:34px 0 30px; color:#c3c3ba; line-height:1.8; font-size:.92rem; }
.start-button { display:flex; align-items:center; gap:17px; border:1px solid rgba(211,173,103,.5); padding:13px 25px 13px 14px; border-radius:100px; background:rgba(11,24,27,.42); cursor:pointer; backdrop-filter:blur(12px); transition:.25s ease; }
.start-button:hover { transform:translateY(-2px); background:rgba(211,173,103,.13); }
.start-button strong,.start-button small,.control-button strong,.control-button small { display:block; }
.start-button strong { font-size:.78rem; letter-spacing:.08em; }
.start-button small { margin-top:3px; color:var(--muted); font-size:.66rem; }
.play-icon { width:36px;height:36px;border-radius:50%;background:var(--gold); position:relative; }
.play-icon::after { content:""; position:absolute;left:15px;top:11px;border-left:9px solid #172018;border-top:7px solid transparent;border-bottom:7px solid transparent; }
.player { position:fixed; z-index:3; left:50%; bottom:33px; transform:translate(-50%,140%); width:min(680px,90vw); opacity:0; transition:.55s ease; }
.player.visible { transform:translate(-50%,0); opacity:1; }
.time-row { display:grid; grid-template-columns:44px 1fr 44px; align-items:center; gap:12px; color:#a9aaa4; font-size:.66rem; }
input[type="range"] { accent-color:var(--gold); height:2px; }
.controls { display:flex; justify-content:center; align-items:center; gap:26px; margin-top:15px; }
.control-button { width:160px; display:flex; gap:11px; align-items:center; text-align:left; border:0; background:none; cursor:pointer; opacity:.45; }
.control-button.active { opacity:1; }
.control-button>span:first-child { display:grid;place-items:center;width:35px;height:35px;border:1px solid rgba(241,234,220,.22);border-radius:50%; color:var(--gold); }
.control-button strong { font-size:.72rem; }
.control-button small { margin-top:3px;color:var(--muted);font-size:.62rem;white-space:nowrap; }
.main-control { width:54px;height:54px;border-radius:50%;border:1px solid var(--gold);background:rgba(13,24,28,.72);cursor:pointer;display:grid;place-items:center; }
.pause-icon { width:12px;height:16px;border-left:4px solid var(--gold);border-right:4px solid var(--gold); }
.main-control.paused .pause-icon { width:0;height:0;border-left:12px solid var(--gold);border-right:0;border-top:8px solid transparent;border-bottom:8px solid transparent;transform:translateX(2px); }
.script-tab { position:fixed;z-index:4;right:5vw;bottom:0;border:0;border-top:1px solid rgba(211,173,103,.5);padding:14px 0;background:none;display:flex;gap:50px;cursor:pointer;color:#d7d2c7;font-size:.68rem;letter-spacing:.12em; }
dialog { width:min(760px,92vw); max-height:86vh; overflow:auto; border:1px solid rgba(211,173,103,.35); border-radius:4px; padding:44px clamp(25px,6vw,65px); color:var(--cream); background:rgba(7,16,22,.96); box-shadow:0 30px 90px #000; }
dialog::backdrop { background:rgba(0,5,7,.7); backdrop-filter:blur(10px); }
dialog h2 { font-size:3.3rem;margin:0 0 10px;color:var(--gold); }
.close-button { position:absolute;right:20px;top:20px;font-family:sans-serif;font-size:1.4rem; }
.dialog-intro,.info-dialog p { color:#bbbcb5;line-height:1.7; }
.script-copy { margin:30px 0;color:#d5d2c9;font-family:"Cormorant Garamond",serif;font-size:1.32rem;line-height:1.7; }
.script-copy p { margin:0 0 20px; }
.upload-box { position:sticky;bottom:-44px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin:35px -20px -25px;padding:18px 20px;background:#111f22;border:1px solid rgba(211,173,103,.24); }
.upload-box strong,.upload-box span { display:block; }
.upload-box strong { font-size:.78rem; }
.upload-box span { margin-top:5px;color:var(--muted);font-size:.63rem; }
.upload-label { padding:11px 16px;border-radius:100px;background:var(--gold);color:#122024;font-size:.7rem;font-weight:600;cursor:pointer;white-space:nowrap; }
#voiceFile { position:absolute;inline-size:1px;block-size:1px;opacity:0; }
.info-dialog { width:min(540px,92vw); }
.info-dialog h2 { font-size:2.8rem; }
@media(max-width:650px){
  .topbar{padding:22px}.hero{margin:13vh 25px 0;width:auto}h1{font-size:clamp(3.7rem,18vw,5.5rem)}.intro{font-size:.84rem}.player{bottom:58px}.controls{gap:5px}.control-button{width:112px}.control-button small{display:none}.script-tab{right:22px}.upload-box{align-items:flex-start;flex-direction:column}.upload-label{width:100%;text-align:center}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.start-button,.player{transition:none}}
