:root{--navy:#0c1931;--ink:#122b4d;--cyan:#86d8e3;--paper:#f8f7f2;--muted:#506174;--line:#d8ddd9;--gold:#be9b62;--red:#a12c35;--serif:Georgia,'Times New Roman',serif;--sans:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans)}a{color:inherit;text-underline-offset:4px}button,input,textarea{font:inherit}button,a,input,textarea,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #16819d;outline-offset:4px}button{color:inherit}h1,h2,h3,p{margin:0}h2{font:400 clamp(2.1rem,3.3vw,3rem)/1.12 var(--serif);letter-spacing:-.035em}h3{font:400 1.45rem/1.25 var(--serif)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:-100px;left:20px;background:white;padding:12px;z-index:100}.skip-link:focus{top:10px}.site-header{background:var(--navy);color:#ddeaf2;border-bottom:1px solid #ffffff20}.header-inner{max-width:1264px;margin:auto;min-height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 40px;gap:25px}.brand{font-size:.76rem;letter-spacing:.15em;font-weight:800;text-decoration:none;color:var(--cyan)}.brand span{color:#dde8ed}.site-header nav{display:flex;gap:28px;font-size:.85rem}.site-header nav a{text-decoration:none}.nav-current{color:var(--cyan)}.hero{background:radial-gradient(ellipse at 70% 35%,#20354b 0,#10213b 45%,var(--navy) 80%);color:#f8f5e9;overflow:hidden}.hero-inner{max-width:1264px;padding:70px 40px 64px;margin:auto;display:grid;grid-template-columns:1.04fr 1fr;gap:40px;align-items:center}.eyebrow{font-size:.68rem;letter-spacing:.19em;font-weight:800;line-height:1.6}.hero .eyebrow{color:var(--cyan)}.on-air{display:inline-block;width:6px;height:6px;background:var(--cyan);border-radius:50%;margin:0 8px 1px 0}.small-title{font:italic .29em var(--serif);display:block;line-height:1;margin-bottom:6px;letter-spacing:0}.hero h1{font:400 clamp(3.5rem,6.5vw,6.2rem)/.99 var(--serif);letter-spacing:-.045em;margin:26px 0}.title-tail{font-style:italic;font-size:.79em;color:#d9c59f}.hero-deck{font:400 clamp(1.45rem,2.3vw,2rem)/1.3 var(--serif);margin-bottom:18px}.hero-deck em{font-style:normal;color:var(--cyan)}.hero-description{max-width:450px;color:#bdcbd9;font-size:.95rem}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;text-decoration:none;font-weight:750;font-size:.9rem;border-radius:5px;padding:13px 21px;min-height:49px;border:1px solid transparent}.primary{background:var(--cyan);color:#0c2339}.primary:hover{background:#a8e5ed}.hero .button{margin:26px 0 18px}.hero-meta{font-size:.68rem;color:#a9bbc9;display:flex;gap:18px;flex-wrap:wrap}.hero-meta span+span:before{content:'·';margin-right:18px;color:var(--gold)}.hero-art{min-height:445px;position:relative}.portrait-stack{position:absolute;inset:0}.hero-portrait{width:64%;aspect-ratio:4/5;object-fit:cover;position:absolute;border:8px solid #e8e1d2;box-shadow:0 16px 50px #0007;filter:sepia(.15)}.portrait-one{left:0;top:0;transform:rotate(-8deg)}.portrait-two{right:0;top:65px;transform:rotate(7deg)}.radio-stamp{position:absolute;bottom:-2px;left:12%;border:1px solid #bfa57480;border-radius:50%;height:124px;width:124px;padding:23px 5px;text-align:center;font-size:.49rem;letter-spacing:.13em;line-height:1.3;color:#e1cca5;background:#10213be8;transform:rotate(-13deg)}.radio-stamp strong{font:2.7rem var(--serif);display:block}.radio-stamp span{font-size:.35rem}.hero-rule{border-top:1px solid #ffffff19;max-width:1184px;margin:auto;padding:17px 0;display:flex;align-items:center;justify-content:space-around;color:#a9b9c9;font-size:.57rem;letter-spacing:.19em}.hero-rule i{width:3px;height:3px;background:var(--gold);transform:rotate(45deg)}.casting-section{max-width:1264px;margin:auto;padding:70px 40px 60px}.section-top{display:flex;justify-content:space-between;align-items:end;gap:40px}.casting-section .eyebrow{color:#457385;margin-bottom:12px}.section-intro{margin-top:16px;color:var(--muted);font-size:.92rem;max-width:570px}.availability{font-size:.72rem;color:var(--muted);max-width:230px;border-left:2px solid var(--gold);padding-left:14px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:32px 0}.filters{display:flex;gap:6px;flex-wrap:wrap}.filter{background:transparent;border:1px solid transparent;border-radius:5px;font-size:.78rem;padding:9px 13px;min-height:44px;color:var(--muted)}.filter span{font-size:.62rem;opacity:.8;margin-left:6px}.filter.active{background:var(--navy);color:#fff}.filter:not(.active):hover{border-color:#c6cfcf}.search{display:flex;align-items:center;gap:10px;border-bottom:1px solid #abb8ba;color:var(--muted);padding:6px 0}.search input{border:0;background:transparent;max-width:175px;font-size:.8rem;color:var(--ink);min-height:36px}.character-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 23px}.character-card{text-align:left;background:#fffdf9;border:1px solid #e1e1d9;padding:0;border-radius:3px;overflow:hidden;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column;width:100%}.character-card:hover{transform:translateY(-5px);box-shadow:0 14px 25px #122b4d14}.portrait-wrap{aspect-ratio:1/1.06;background:#d4cfc3;overflow:hidden;position:relative}.portrait-wrap img{width:100%;height:100%;object-fit:cover;filter:sepia(.16);transition:transform .6s}.character-card:hover img{transform:scale(1.04)}.role-badge{position:absolute;bottom:11px;left:12px;background:#101c2bde;color:#edf2ef;font-size:.56rem;font-weight:700;letter-spacing:.08em;padding:5px 8px;border:1px solid #ffffff30}.card-body{padding:17px 17px 15px;display:flex;flex:1;flex-direction:column;gap:7px}.card-name{font:400 1.36rem/1.16 var(--serif);letter-spacing:-.025em}.card-age{font-size:.65rem;color:#697481}.card-profile{font-size:.75rem;line-height:1.5;color:var(--muted)}.card-link{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #e1e5e2;padding-top:11px;margin-top:auto;font-size:.64rem;font-weight:700;color:#35677a}.portrait-note{font-size:.68rem;color:#626d76;text-align:center;margin-top:28px}.empty-result{padding:50px 0;grid-column:1/-1}.how-section{border-top:1px solid var(--line);padding:65px 40px;display:grid;grid-template-columns:1fr 1.2fr;gap:75px;max-width:1184px;margin:auto}.how-section .eyebrow{margin-bottom:14px;color:#457385}.how-section>div>p:last-child{margin-top:18px;color:var(--muted);font-size:.9rem}.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:26px}.steps li{display:flex;gap:22px}.steps li>span{font:italic 1.7rem var(--serif);color:#9e845b}.steps h3{font-size:1.25rem;margin-bottom:6px}.steps p{font-size:.85rem;color:var(--muted)}.performance-note{background:#e8ece9;text-align:center;padding:42px 24px}.performance-note>p{max-width:730px;margin:0 auto}.performance-note>p:nth-child(2){font:italic 1.5rem/1.5 var(--serif);margin:14px auto}.performance-note .note-small{font-size:.72rem;color:var(--muted)}footer{background:var(--navy);color:#b6c5d3;max-width:none;padding:32px max(25px,calc((100vw - 1184px)/2));display:flex;align-items:center;justify-content:space-between;gap:25px;font-size:.68rem}footer>div{display:flex;gap:18px}.drawer{position:fixed;inset:0 0 0 auto;margin:0;height:100dvh;max-height:100dvh;width:min(680px,100%);max-width:100%;border:0;padding:0;color:var(--ink);background:var(--paper);box-shadow:-20px 0 80px #0004;overflow-y:auto;overscroll-behavior:contain;animation:slide-in .3s ease}.drawer::backdrop{background:#050e20a3;backdrop-filter:blur(3px)}.drawer.closing{animation:slide-out .22s ease forwards}.drawer-sticky{position:sticky;top:0;background:var(--navy);color:var(--cyan);z-index:5;display:flex;justify-content:space-between;align-items:center;padding:12px 28px;font-size:.63rem;letter-spacing:.15em;font-weight:750}.icon-button{background:transparent;color:white;border:1px solid #ffffff33;border-radius:50%;min-height:42px;min-width:42px;font-size:1rem}.drawer-body{padding:32px}.drawer-heading{display:flex;align-items:center;gap:24px}.drawer-heading img{width:112px;height:138px;object-fit:cover;filter:sepia(.15);border:4px solid #fff;box-shadow:0 4px 12px #0002}.drawer-heading h2{font-size:2.4rem;margin:9px 0}.drawer-heading>div>p:last-child{font-size:.78rem;color:var(--muted)}.drawer-nav{display:flex;gap:25px;border-bottom:1px solid var(--line);padding:25px 0 16px;font-size:.73rem}.drawer-nav a{text-decoration:none}.drawer-body section{padding-top:30px;scroll-margin-top:75px}.drawer-body h3{margin-bottom:14px}.drawer-body section>p{font-size:.86rem;color:var(--muted);margin-bottom:15px}.voice-note{background:#e6eeeb;border-left:2px solid #6fa1a5;padding:16px;margin-top:20px}.voice-note .eyebrow{font-size:.6rem;margin-bottom:8px}.voice-note>p:last-child{font-size:.85rem}.section-label{display:flex;align-items:baseline;gap:14px}.section-label>span{font-size:.65rem;color:#9d7c49}.source-line{font-size:.71rem!important}.script{background:#fffefa;border:1px solid #dddcd0;border-radius:3px;padding:23px;margin:18px 0;font:1rem/1.6 var(--serif);max-height:410px;overflow:auto}.script-line{margin-bottom:18px}.script-line:last-child{margin-bottom:0}.script-line strong{font:700 .63rem/1.5 var(--sans);letter-spacing:.06em;display:block;margin-bottom:4px}.script-line.target{border-left:3px solid #65a6ae;padding:10px 12px;background:#edf4f1;margin-left:-12px;margin-right:-12px}.script-line.direction{font-style:italic;color:#5d6a70}.script-line p{white-space:pre-wrap}.text-button{background:none;border:0;padding:8px 0;text-decoration:underline;text-underline-offset:4px;font-size:.8rem;font-weight:650;min-height:44px}.recorder{background:var(--navy);color:white;border-radius:5px;padding:21px;text-align:center;margin:18px 0}.recorder-top{display:flex;justify-content:space-between;font-size:.56rem;letter-spacing:.1em;color:#a7bccb}.recorder-top time{font-variant-numeric:tabular-nums}.meter-decoration{height:54px;display:flex;align-items:center;justify-content:center;gap:4px;margin:15px 0}.meter-decoration i{width:3px;height:8px;background:#70acba;border-radius:2px}.meter-decoration i:nth-child(3n){height:22px}.meter-decoration i:nth-child(4n){height:34px}.meter-decoration i:nth-child(5n){height:44px}.meter-decoration i{transition:height 70ms linear}.recording .meter-decoration i{height:6px;background:#86d8e3}.recording #record-button{background:#ffd5d1;color:#701924}.recorder-hint{font-size:.65rem;color:#b6c6d1;margin-top:14px}audio{display:block;width:100%;margin-top:20px}.take-actions{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:.76rem;margin-top:10px}.take-actions .text-button{color:#d5e5ed;font-size:.76rem}.upload-fallback{border:1px solid #d4dcd9;padding:15px;border-radius:4px;font-size:.78rem;margin-top:18px}.upload-fallback summary{font-weight:650;cursor:pointer;min-height:30px}.upload-fallback p{margin:13px 0;color:var(--muted)}.upload-fallback input{max-width:100%;font-size:.75rem}.upload-fallback label{display:block;margin-bottom:9px;font-weight:650}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}form label{display:block;font-size:.75rem;font-weight:650;margin:0 0 16px}form input:not([type=checkbox]),form textarea{display:block;width:100%;border:1px solid #b7c4c7;border-radius:4px;background:#fff;padding:11px;color:var(--ink);margin-top:7px;font-size:1rem}form input[readonly]{background:#e7ece9}.optional{font-weight:400;color:var(--muted)}.consent{display:flex;align-items:start;gap:11px;font-weight:400;font-size:.72rem;line-height:1.6;margin-top:24px}.consent input{width:19px;height:19px;flex:none;margin:3px 0;accent-color:#23697c}.privacy-caption{font-size:.69rem;color:var(--muted);margin-bottom:20px}.submit-button{width:100%}.inline-message{font-size:.77rem;margin-top:12px}.inline-message.error{color:#9a202c}.inline-message.success{color:#205941;border-left:3px solid #318861;padding:12px;background:#e2efe3}.honey{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.noscript{position:fixed;inset:auto 0 0;padding:25px;background:white;border-top:3px solid var(--red);z-index:20}.privacy-page{max-width:820px;margin:50px auto;padding:0 25px}.privacy-page h1{font:3rem/1.15 var(--serif);margin:22px 0}.privacy-page h2{font-size:1.6rem;margin:30px 0 12px}.privacy-page p{margin-bottom:16px}.privacy-page ul{padding-left:22px}@keyframes slide-in{from{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes slide-out{to{transform:translateX(100%)}}@keyframes pulse{to{transform:scaleY(.35);opacity:.55}}@media(min-width:1400px){.hero-art{min-height:490px}}@media(max-width:1000px){.character-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hero-inner{gap:30px}.hero-art{min-height:370px}.hero h1{font-size:4.7rem}.hero-rule{padding:17px 20px}.edition{display:none}.hero-inner{padding-top:50px;padding-bottom:48px}.hero-description{font-size:.85rem}.radio-stamp{bottom:-20px;left:5%}.hero-portrait{width:69%}.portrait-two{top:90px}.section-top{gap:20px}}@media(max-width:700px){.header-inner{padding:0 20px;min-height:65px}.brand{font-size:.63rem}.brand span{display:none}.site-header nav{font-size:.7rem;gap:17px}.hero-inner{padding:42px 24px 38px;grid-template-columns:1fr;gap:15px}.hero h1{font-size:4.6rem;margin:22px 0}.hero-deck{font-size:1.6rem}.hero-description{max-width:400px;font-size:.88rem}.hero-art{position:absolute;width:45%;right:-15%;top:180px;opacity:.12;pointer-events:none}.hero-copy{z-index:1;position:relative}.hero{position:relative}.hero-rule{font-size:.47rem;gap:8px;flex-wrap:wrap;justify-content:space-between;padding:15px 24px}.hero-rule span:last-child,.hero-rule i:last-of-type{display:none}.casting-section{padding:42px 20px}.section-top{display:block}.section-intro{font-size:.84rem}.availability{margin-top:20px;max-width:none;font-size:.7rem}.toolbar{align-items:stretch;flex-direction:column;margin:24px 0}.filters{gap:4px}.filter{font-size:.72rem;padding:8px 10px}.search{max-width:none}.search input{max-width:none;width:100%}.character-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 13px}.card-body{padding:13px 12px}.card-name{font-size:1.15rem}.card-profile{font-size:.7rem}.card-link{font-size:.6rem}.role-badge{font-size:.49rem;bottom:8px;left:8px}.card-age{font-size:.6rem}.portrait-note{font-size:.62rem}.how-section{padding:40px 24px;grid-template-columns:1fr;gap:30px}.performance-note>p:nth-child(2){font-size:1.25rem}footer{padding:27px 24px;align-items:flex-start;flex-direction:column;gap:14px}.drawer-body{padding:22px}.drawer-sticky{padding:10px 22px}.drawer-heading{gap:16px}.drawer-heading img{width:88px;height:115px}.drawer-heading h2{font-size:1.9rem}.drawer-heading .eyebrow{font-size:.57rem}.drawer-nav{gap:22px}.script{padding:18px;font-size:1rem}.form-row{grid-template-columns:1fr;gap:0}.recorder{padding:17px}.recorder-top{font-size:.51rem}.drawer-body section>p{font-size:.83rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.character-card:hover{transform:none}}

/* recorder: big timer, REC light, live level hint, custom take player */
.recorder-top{align-items:center}
.recorder-top time{font:400 1.9rem/1 var(--serif);letter-spacing:0;color:#fff}
.recorder-top time small{font:.8rem var(--sans);color:#a7bccb}
.recorder-top time.ending{color:#ffb4ab}
#record-state{display:inline-flex;align-items:center;gap:8px}
.recording #record-state{color:#ffd5d1;font-weight:800;font-size:.7rem;letter-spacing:.2em}
.recording #record-state:before{content:"";width:11px;height:11px;border-radius:50%;background:#ff4d4d;box-shadow:0 0 10px #ff4d4d;animation:rec-blink 1s steps(2,start) infinite}
.level-hint{min-height:1.3em;font-size:.72rem;color:#d9e6ec;margin:-6px 0 10px}
.level-hint.loud{color:#ffb4ab;font-weight:700}
.take-player{display:flex;align-items:center;gap:12px;background:#ffffff14;border:1px solid #ffffff26;border-radius:999px;padding:6px 14px 6px 6px;margin-top:20px}
.play-take{flex:none;width:42px;height:42px;border-radius:50%;border:0;background:var(--cyan);color:#0c2339;font-size:.95rem;font-weight:800}
.play-take:hover{background:#a8e5ed}
.take-player input[type=range]{flex:1;min-width:0;accent-color:#86d8e3}
.take-player time{font-size:.72rem;color:#d9e6ec;font-variant-numeric:tabular-nums;white-space:nowrap}
@keyframes rec-blink{to{visibility:hidden}}
@media(prefers-reduced-motion:reduce){.recording #record-state:before{animation:none!important}}
.section-top .portrait-note{text-align:left;margin-top:12px;font-size:.84rem;color:var(--muted);font-style:italic;max-width:570px}

/* optional theme music */
.theme-toggle{position:fixed;right:22px;bottom:22px;z-index:20;display:flex;align-items:center;gap:11px;text-align:left;background:var(--navy);color:#f8f5e9;border:1px solid #ffffff2e;border-radius:999px;padding:7px 18px 7px 7px;min-height:52px;box-shadow:0 10px 30px #0c193140}
.theme-toggle:hover{background:#142a4a}
.theme-icon{flex:none;width:38px;height:38px;border-radius:50%;background:var(--cyan);color:#0c2339;display:grid;place-items:center;font-size:1.05rem;font-weight:800}
.theme-toggle.playing .theme-icon:before,.pause-bars{content:"";display:block;width:12px;height:14px;background:linear-gradient(90deg,currentColor 0 4px,transparent 4px 8px,currentColor 8px 12px)}
.theme-label{display:block;font-size:.78rem;font-weight:750;line-height:1.2}
.theme-toggle small{display:block;font:italic .74rem/1.3 var(--serif);color:#d9c59f}
.theme-toggle.playing .theme-icon{animation:theme-pulse 1.2s ease-in-out infinite alternate}
@keyframes theme-pulse{to{box-shadow:0 0 0 6px #86d8e333}}
.drawer-actions{display:flex;align-items:center;gap:12px}
.theme-mini{display:inline-flex;align-items:center;gap:8px;background:transparent;color:var(--cyan);border:1px solid #86d8e366;border-radius:999px;min-height:36px;padding:0 13px;font-size:.62rem;letter-spacing:.1em;font-weight:750}
footer{padding-bottom:90px}
@media(max-width:700px){.theme-toggle{right:14px;bottom:14px;min-height:46px;padding:5px 14px 5px 5px}.theme-icon{width:34px;height:34px}}
@media(prefers-reduced-motion:reduce){.theme-toggle.playing .theme-icon{animation:none}}
.theme-mini .pause-bars{width:9px;height:10px;background:linear-gradient(90deg,currentColor 0 3px,transparent 3px 6px,currentColor 6px 9px)}
.file-chosen{margin:8px 0 0!important;font-weight:650;color:#205941!important}.file-chosen:empty{display:none}
