@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Noto+Serif+JP:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#070d18;--text:#f0f3f7;--muted:#a2b0c1;--line:#ffffff20;--red:#d74452;--cyan:#90dce5;font-family:'Noto Sans JP',sans-serif;background:var(--bg);color:var(--text);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,a,input{ -webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}button{border:0}button:hover:not(:disabled),a:hover{filter:brightness(1.15)}.header{height:94px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:3;background:#070d18}.brand{display:flex;gap:14px;align-items:center;font-family:Georgia,serif;font-size:25px;font-weight:700;letter-spacing:.15em}.brand svg{width:36px;color:var(--red)}.brand-sub{display:block;font-family:Arial,sans-serif;font-size:10px;letter-spacing:.21em;margin-top:3px;color:var(--muted)}nav{display:flex;gap:38px;height:100%;align-items:center;font-size:14px}nav a{height:100%;display:flex;align-items:center;border-bottom:2px solid transparent}nav a[aria-current=page]{border-color:var(--red)}.preview-badge{font-size:11px;letter-spacing:.16em;padding:7px 10px;border:1px solid #ffffff30;color:var(--muted)}.eyebrow{display:flex;align-items:center;gap:12px;font:12px Arial,sans-serif;letter-spacing:.2em;color:var(--cyan);margin:0 0 24px}.eyebrow:before{content:'';width:28px;height:1px;background:currentColor}.serif,h1,h2{font-family:'Noto Serif JP','Yu Mincho',serif;font-weight:500}h1,h2,p{margin-top:0}.hero{position:relative;isolation:isolate;min-height:590px;display:flex;align-items:center;overflow:hidden;background:#071321}.ocean{position:absolute;inset:0;z-index:-3;background:url('assets/ocean.jpg') center 38%/cover;opacity:.7}.hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#070d18 2%,#070d18e8 30%,#070d1826 75%),linear-gradient(0deg,#070d18,transparent 35%)}.characters{position:absolute;inset:0 0 0 48%;z-index:-2;overflow:hidden}.characters img{height:110%;width:auto;max-width:none;position:absolute;top:-1%;left:-18%;filter:drop-shadow(0 0 45px #24799855)}.hero-copy{padding:62px 7%;width:100%;position:relative}.hero h1{font-size:clamp(34px,4.3vw,66px);line-height:1.55;letter-spacing:.08em;margin-bottom:23px;text-shadow:0 3px 20px #070d18}.hero .intro{color:#b6c6d7;font-size:15px;line-height:2.1;margin-bottom:32px}.primary,.secondary{display:inline-flex;gap:28px;align-items:center;justify-content:center;padding:17px 24px;font-size:14px;min-height:52px;border-radius:3px}.primary{background:var(--red);box-shadow:0 5px 30px #b4293820}.secondary{background:#102030;border:1px solid #ffffff26}.primary .arrow{font-size:20px}.hero-note{font-size:12px;color:var(--muted);margin-top:16px}.hero-credit{position:absolute;right:5%;bottom:32px;text-align:right;font-size:12px;color:#becbd7;letter-spacing:.1em;line-height:1.8}.hero-credit strong{font-weight:500;display:block;color:#fff;font-size:14px}.modes{padding:10px 7% 54px;display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.mode{border-top:1px solid #ffffff32;text-align:left;padding:24px 0 4px;background:none;display:block}.mode-index{font:12px Arial,sans-serif;letter-spacing:.16em;color:var(--cyan)}.mode h2{font-size:22px;letter-spacing:.07em;margin:16px 0 10px;display:flex;justify-content:space-between}.mode h2 span{font:22px Arial;color:var(--muted)}.mode p{font-size:13px;color:var(--muted);line-height:1.8;margin:0}.footer{padding:24px 5%;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;color:#8e9aae;font-size:10px;line-height:1.9;letter-spacing:.06em}.footer a{text-decoration:underline}.footer>span:last-child{text-align:right}.workspace{max-width:1060px;margin:auto;padding:40px 5% 64px;min-height:690px;animation:arrive .5s ease}.workspace-top{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:13px;color:var(--muted);margin-bottom:46px}.back{background:none;padding:8px 0;color:var(--muted)}.quiz-heading{text-align:center}.quiz-heading .eyebrow{justify-content:center;margin-bottom:16px}.quiz-heading h1{font-size:30px;letter-spacing:.08em;margin-bottom:12px}.quiz-heading p{font-size:14px;color:var(--muted)}.player{max-width:520px;margin:25px auto 28px;text-align:center;padding:26px 24px 16px;background:radial-gradient(ellipse at center,#12354477,transparent 70%)}.play{width:78px;height:78px;border-radius:50%;border:1px solid #74cdd777;background:#102332;display:grid;place-items:center;margin:0 auto 26px;box-shadow:0 0 0 12px #9adee604;color:#b1f2f4}.play svg{width:25px;height:25px;fill:currentColor}.wave{height:40px;display:flex;align-items:center;justify-content:center;gap:4px;color:#5d929f}.wave i{display:block;width:3px;background:currentColor;border-radius:2px;opacity:.7}.is-playing .wave i{animation:wave 1.1s ease-in-out infinite alternate}.demo-note{font-size:12px;color:var(--muted);margin:16px 0 0}.choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px auto 0;max-width:760px}.choice{min-height:70px;background:#101a28;border:1px solid #ffffff22;border-radius:3px;display:flex;align-items:center;gap:20px;padding:16px 20px;font-size:16px;text-align:left}.choice:hover{border-color:#80d6df88;background:#142536}.choice span{font:13px Georgia,serif;color:var(--muted)}.skip{display:block;margin:22px auto 0;padding:10px;background:transparent;color:var(--muted);font-size:13px;text-decoration:underline;text-underline-offset:4px}.result{position:relative;isolation:isolate;min-height:650px;overflow:hidden;animation:arrive .8s ease}.result .characters{inset:0 0 0 50%}.result:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#070d18 5%,#070d18ed 35%,#070d1833 90%),linear-gradient(0deg,#070d18,transparent 45%)}.result-content{padding:42px 7% 60px;position:relative}.result .eyebrow{margin-top:36px}.result-label{font-size:15px;letter-spacing:.15em;color:var(--cyan);margin-bottom:30px}.result h1{font-size:clamp(40px,5vw,68px);letter-spacing:.08em;margin:12px 0 14px}.result h1 ruby rt{font-family:'Noto Sans JP',sans-serif;font-size:12px;letter-spacing:.18em}.film-meta{font-size:13px;letter-spacing:.12em;color:#bac6d4}.result-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}.result-still{margin-top:28px;width:220px;border-left:2px solid var(--cyan);display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted)}.result-still img{width:85px;height:50px;object-fit:cover}.library{display:grid;grid-template-columns:1fr 1.3fr;gap:48px;align-items:center;margin-top:20px}.cover{position:relative;aspect-ratio:4/5;background:url('assets/ocean.jpg') center/cover;overflow:hidden}.cover img{position:absolute;height:100%;max-width:none;left:-24%;top:0}.cover:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#070d18ee,transparent 60%)}.cover-caption{position:absolute;z-index:1;bottom:28px;left:24px}.cover-caption h2{font-size:30px;margin:8px 0}.detail h1{font-size:32px;line-height:1.7}.detail p{color:var(--muted);font-size:14px;line-height:1.9}.detail .player{padding-left:0;padding-right:0}.detail .eyebrow{font-size:11px}.transport{display:flex;justify-content:center;gap:16px;margin-top:20px}.transport button{padding:10px 14px;background:transparent;border:1px solid var(--line);font-size:12px;border-radius:3px}.transport button[aria-pressed=true]{border-color:var(--cyan);color:var(--cyan)}@keyframes arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes wave{to{transform:scaleY(.35);opacity:.3}}
@media(min-width:1500px){.hero{min-height:690px}.characters img{left:-12%}.hero-copy{padding-left:10%}.modes{padding-left:10%;padding-right:10%}}@media(max-width:760px){.header{height:80px;padding:0 6%}.brand{font-size:20px;gap:9px}.brand svg{width:28px}.brand-sub{font-size:8px}.preview-badge{display:none}nav{gap:20px;font-size:12px}.hero{min-height:660px;align-items:flex-end}.characters{inset:0 0 0 14%;opacity:.9}.characters img{height:75%;left:-14%}.hero:after{background:linear-gradient(0deg,#070d18 3%,#070d18ef 25%,#070d180a 85%)}.hero-copy{padding:255px 7% 75px}.hero h1{font-size:38px;line-height:1.5}.hero .intro{font-size:13px}.hero-credit{display:none}.modes{grid-template-columns:1fr;gap:4px;padding-bottom:30px}.mode{padding:20px 0}.mode h2{margin:10px 0;font-size:21px}.mode p{font-size:13px}.footer{flex-direction:column;padding:20px 7%;gap:10px}.footer>span:last-child{text-align:left}.workspace{padding:28px 6% 40px;min-height:650px}.workspace-top{margin-bottom:32px}.quiz-heading h1{font-size:24px}.choices{grid-template-columns:1fr}.choice{min-height:60px;font-size:14px}.player{margin:20px auto;padding:20px 8px 8px}.result .characters{inset:0 0 0 15%;opacity:.55}.result .characters img{height:90%}.result:after{background:linear-gradient(90deg,#070d18e8,#070d1870),linear-gradient(0deg,#070d18,transparent)}.result-content{padding:28px 7% 45px}.result h1{font-size:42px}.result .eyebrow{margin-top:65px}.result-actions{flex-direction:column;align-items:flex-start}.library{grid-template-columns:1fr;gap:24px}.cover{max-width:260px;width:100%;margin:auto}.detail h1{font-size:27px}.library .detail{text-align:center}.detail .eyebrow{justify-content:center}}@media(max-width:390px){nav{gap:13px}.brand{font-size:17px}.brand-sub{font-size:7px}.hero h1{font-size:32px}.eyebrow{font-size:10px}.workspace-top{font-size:12px}.result h1{font-size:36px}.primary,.secondary{font-size:13px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Local archive, file registration and working audio controls. */
[hidden]{display:none!important}.notice{padding:16px 7%;background:#102c35;border-bottom:1px solid #80d6df44;font-size:14px;line-height:1.8;overflow-wrap:anywhere}.notice.error{background:#351a25;color:#ffd1d7;border-color:#dc5c7166}.empty-state{max-width:660px;margin:85px auto;text-align:center}.empty-state .eyebrow{justify-content:center}.empty-state h1{font-size:32px;line-height:1.7}.empty-state p{font-size:16px;color:var(--muted);line-height:1.9;margin-bottom:30px}.seek-row{display:flex;align-items:center;gap:14px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;margin-top:18px}.seek-row input{width:100%;min-width:0;accent-color:var(--cyan)}.volume-row{display:flex;justify-content:center;align-items:center;gap:16px;margin:14px 0 0;font-size:12px;color:var(--muted)}.volume-row input{width:105px;accent-color:var(--cyan)}input[type=range]{min-height:24px;cursor:pointer}.player-status{font-size:12px;color:var(--muted);margin:12px 0 0;min-height:1.5em}.manage-workspace{max-width:1200px}.manage-heading h1{font-size:34px;line-height:1.7;letter-spacing:.05em;margin-bottom:12px}.manage-heading>p{font-size:15px;color:var(--muted);line-height:1.9}.import-panel{margin-top:30px;background:#101b2b;border:1px solid #ffffff22;padding:28px;border-radius:4px}.import-panel>p{color:var(--muted);font-size:12px;line-height:1.9;margin:12px 0 0}.file-picker{display:block;font-size:16px;line-height:1.8}.file-picker input{display:block;font:inherit;font-size:14px;margin-top:15px;width:100%;max-width:100%;color:var(--muted)}input::file-selector-button{background:var(--red);color:#fff;border:0;border-radius:3px;font:inherit;padding:13px 18px;margin-right:14px;cursor:pointer}.pending-list{margin:28px 0}.pending-file{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,1.3fr) auto;align-items:center;gap:15px;border-top:1px solid var(--line);padding:20px 0}.file-name{font-size:14px;overflow-wrap:anywhere}.pending-file small,.saved-track small{display:block;color:var(--muted);font-size:12px;margin-top:6px;line-height:1.8;overflow-wrap:anywhere}.pending-file>label{font-size:12px;color:var(--muted)}select{display:block;width:100%;max-width:100%;padding:12px 10px;background:#09111e;color:var(--text);border:1px solid #ffffff35;border-radius:3px;font:inherit;font-size:14px;margin-top:5px}.pending-file .replace-choice{grid-column:2;display:flex;align-items:center;gap:8px;color:#f1c3c8;font-size:13px}.replace-choice input{accent-color:var(--red);width:18px;height:18px}.pending-file .remove-track{grid-column:3;grid-row:1}.remove-track{background:none;padding:12px;color:#d7a5af;font-size:13px;white-space:nowrap}.collection-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:40px 0 20px}.collection-title h2{font-size:23px;margin:0}.collection-title h2 span{font:14px 'Noto Sans JP',sans-serif;color:var(--muted);margin-left:8px}.saved-track{display:grid;grid-template-columns:36px minmax(0,1fr) auto auto;align-items:center;gap:18px;padding:22px 0;border-top:1px solid var(--line)}.saved-track strong{font-size:16px;font-weight:500;overflow-wrap:anywhere}.track-number{font:22px Georgia,serif;color:#7694a9}.saved-track .back{font-size:14px}.storage-note{font-size:13px;color:var(--muted);line-height:1.9;border-top:1px solid var(--line);padding-top:24px;margin-top:32px}.no-tracks{font-size:14px;color:var(--muted);line-height:1.8;padding:20px 0}.track-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.track-item{position:relative;display:flex;align-items:center;text-align:left;gap:18px;padding:20px;background:#0f1b2a;border:1px solid var(--line);border-radius:3px;font-size:15px;min-width:0}.track-item>span:nth-child(2){min-width:0;overflow-wrap:anywhere}.track-item small{display:block;color:var(--muted);font-size:12px;margin-top:8px}.track-item[aria-pressed=true]{border-color:#90dce588;background:#102735}.selected-mark{margin-left:auto;color:var(--cyan);font-size:10px}.listening-hint{margin-top:16px!important;font-size:12px!important}.type-cover{background:linear-gradient(145deg,#1b3a4c,#101b2b 65%,#0a101e)}.cover-number{position:absolute;left:8%;top:12%;font:clamp(100px,14vw,200px) Georgia,serif;color:#779ab344;letter-spacing:-.07em}.cover-caption{right:20px}.cover-caption h2{font-size:clamp(20px,2.5vw,30px);line-height:1.7;overflow-wrap:anywhere}.cover:after{pointer-events:none}.neutral-result{background:radial-gradient(ellipse at 70% 25%,#1b4057,#070d18 70%)}.neutral-result:after{background:none}.result .film-title{font-size:clamp(28px,4vw,54px);max-width:850px;line-height:1.6;overflow-wrap:anywhere}.result-player{max-width:380px}.result-player .player{margin:18px 0 0;padding:12px 0 0}.result-player .play{width:56px;height:56px;margin:0 auto 12px}.result-player .wave{height:25px}.result-content .eyebrow{margin-top:28px}.result-actions{margin-top:24px}.your-answer{font-size:14px;color:var(--muted)}.score{font-family:Georgia,serif;font-size:32px!important;color:var(--text)!important;margin:32px 0!important}.score strong{font-size:76px;font-weight:400;color:var(--cyan)}.score>span{font:14px 'Noto Sans JP',sans-serif;margin-left:15px;color:var(--muted)}.review-list{max-width:740px;margin:auto}.review-list>div{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:16px;border-top:1px solid var(--line);padding:17px 0;font-size:14px}.review-list .back{font-size:13px}.correct{color:var(--cyan);font-size:12px}.incorrect{color:#edabb4;font-size:12px}.summary-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:35px}dialog{background:#101b2b;color:var(--text);border:1px solid #ffffff30;border-radius:6px;width:min(520px,calc(100% - 32px));padding:30px;box-shadow:0 30px 100px #0009}dialog::backdrop{background:#020711c9;backdrop-filter:blur(5px)}dialog h2{font-size:24px;line-height:1.6}dialog p{font-size:14px;line-height:1.9;color:var(--muted)}dialog #delete-film{color:var(--text);font-size:18px}.dialog-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:28px}.header nav{gap:28px}.transport{flex-wrap:wrap}.result .characters img{left:-30%}
@media(max-width:1050px){.preview-badge{display:none}.header nav{gap:23px}}
@media(max-width:760px){.header{height:auto;min-height:100px;flex-wrap:wrap;justify-content:center;gap:10px;padding:16px 6% 0}.header .brand{margin-right:auto}.header nav{width:100%;height:42px;justify-content:space-between;gap:12px;font-size:13px}.header nav a{white-space:nowrap}.empty-state{margin:55px auto}.empty-state h1{font-size:25px}.empty-state p{font-size:14px}.manage-heading h1{font-size:27px}.manage-heading>p{font-size:14px}.import-panel{padding:20px}.pending-file{grid-template-columns:minmax(0,1fr) auto;gap:14px}.pending-file>label{grid-column:1/-1}.pending-file .replace-choice{grid-column:1/-1}.pending-file .remove-track{grid-column:2;grid-row:1}.pending-file select{font-size:16px}.saved-track{grid-template-columns:26px minmax(0,1fr) auto;gap:12px}.saved-track .remove-track{grid-column:3}.saved-track .back{grid-column:3;grid-row:auto}.saved-track strong{font-size:14px}.saved-track .track-number{font-size:19px}.track-grid{grid-template-columns:1fr}.track-item{font-size:14px;padding:18px}.collection-title h2{font-size:20px}.collection-title .back{font-size:13px}.collection-workspace .library{margin-top:0}.collection-workspace .cover{max-width:240px}.review-list>div{grid-template-columns:50px minmax(0,1fr);gap:12px}.review-list .back{grid-column:2;justify-self:start}.result-player{max-width:100%}.result .film-title{font-size:30px}.result .characters{opacity:.25}.result .result-actions{align-items:stretch}.result-content .eyebrow{margin-top:30px}dialog{padding:24px}.dialog-actions{flex-direction:column}.seek-row{gap:10px}input[type=range]{min-height:32px}.cover-number{font-size:140px}}

.result-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:48px;align-items:center}
.result-copy{min-width:0}
.result-artwork{margin:0;justify-self:end;width:min(340px,100%)}
.result-artwork-frame{position:relative;aspect-ratio:1/1;background:linear-gradient(145deg,#173348,#0b1421 65%);border:1px solid #ffffff22;overflow:hidden;box-shadow:0 28px 80px #0006}
.result-artwork-frame img{width:100%;height:100%;object-fit:cover;display:block}
.result-artwork-number{position:absolute;inset:auto 18px 8px auto;font:clamp(80px,10vw,140px) Georgia,serif;color:#8bb5c822;line-height:1;z-index:0}
.result-artwork.has-artwork .result-artwork-number{display:none}
.result-artwork figcaption{margin-top:10px;text-align:right;font:10px Arial,sans-serif;letter-spacing:.16em;color:var(--muted)}
@media(max-width:760px){
  .result-layout{grid-template-columns:1fr;gap:28px}
  .result-artwork{justify-self:center;width:min(280px,88vw);grid-row:1}
  .result-copy{grid-row:2}
  .result-artwork figcaption{text-align:center}
}
