:root{--floor:#ece7ff;--ink:#2b1741;--white:#fffdfc;--cat:#f5ae63;--can:#587ccb;--danger:#de4563;--muted:#716483;font-family:"Hiragino Maru Gothic ProN","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;color:var(--ink);background:var(--floor);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-height:100svh}button,a,summary{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--can);outline-offset:5px}button{border:0}button:not(:disabled):active{transform:translateY(2px)}[hidden]{display:none!important}.topbar{max-width:1240px;margin:auto;padding:30px 44px;display:flex;align-items:center;justify-content:space-between}.wordmark{text-decoration:none;font-size:14px;font-weight:800;color:var(--ink);display:flex;gap:9px;align-items:center}.wordmark span{font-size:25px}.sound{background:transparent;border:1.5px solid #b8aace;border-radius:30px;padding:9px 16px;font-size:12px;font-weight:700}.sound[aria-pressed=true]{background:var(--ink);color:white}main{max-width:1152px;margin:30px auto 50px;display:grid;grid-template-columns:.85fr 1.15fr;gap:54px;align-items:center;padding:0 24px}.intro{padding:0 0 35px 12px}.little-label{font-size:13px;font-weight:700;margin-bottom:24px}h1{font-size:clamp(38px,4.8vw,62px);line-height:1.37;letter-spacing:-.065em;margin:0;font-weight:900}.period{margin-left:-.05em}.lead{font-size:16px;margin-top:25px;letter-spacing:.02em}.instructions{font-size:15px;line-height:1.9;margin-top:36px}.instructions strong{font-weight:800}.instructions span{display:inline-block;margin-top:8px;color:var(--muted);font-size:12px}.best{display:flex;align-items:baseline;gap:18px;margin-top:36px;font-size:12px;color:var(--muted)}.best strong{font-size:24px;color:var(--ink);letter-spacing:-.04em}.playground{width:100%;max-width:620px;background:var(--white);border:2px solid var(--ink);border-radius:24px;box-shadow:7px 8px 0 #c5b8e3;overflow:hidden;padding:22px 22px 15px}.hud{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px}.cat-status{font-weight:800;white-space:nowrap}.cat-status[data-mood=warning],.cat-status[data-mood=awake]{color:var(--danger)}.time{color:var(--muted);font-size:12px;white-space:nowrap}.time strong{font-size:23px;color:var(--ink);font-variant-numeric:tabular-nums}.scene{position:relative;aspect-ratio:620/420;margin-top:8px;background:#f6f2ff;border-radius:14px;overflow:hidden}canvas{display:block;width:100%;height:100%}.overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:16px}.start-overlay{justify-content:flex-end;padding-bottom:22px;background:linear-gradient(transparent 60%,#f6f2ffcc)}.start-whisper{font-size:13px;font-weight:800;margin:0 0 12px;background:#fffdfcd9;border-radius:20px;padding:6px 14px}.primary{border:2px solid var(--ink);background:var(--ink);color:var(--white);border-radius:100px;font-weight:800;padding:13px 24px;font-size:14px;box-shadow:0 3px 0 #a799b8}.primary:hover{background:#48265f}.pause-overlay{background:#f6f2fff2}.pause-overlay p{font-size:23px;font-weight:800}.result-overlay{background:#f6f2fff5;gap:7px}.result-tag{font-size:11px;font-weight:800;border:1.5px solid currentColor;padding:4px 12px;border-radius:40px}.result-overlay h2{font-size:29px;line-height:1.3;margin:5px 0 0;letter-spacing:-.04em}.result-score{font-size:48px;font-weight:900;letter-spacing:-.06em;line-height:1.2;font-variant-numeric:tabular-nums}.result-score small{font-size:18px;letter-spacing:0;margin-left:5px}.result-overlay p{margin:0 0 7px;font-size:12px;line-height:1.7}.result-tools{display:flex;gap:8px;margin-top:9px}.result-tools button{font-size:11px;background:var(--white);border:1px solid #b8aace;border-radius:30px;padding:8px 12px}.meters{margin-top:17px}.meter-label{display:flex;justify-content:space-between;font-size:12px;margin-bottom:7px}.meter-label strong{font-variant-numeric:tabular-nums}.progress-track{height:11px;border:1.5px solid var(--ink);background:#e5eafb;border-radius:20px;overflow:hidden}#progress-fill{background:var(--can);height:100%;width:0}.noise-row{display:flex;align-items:center;gap:12px;margin-top:12px;font-size:10px;color:var(--muted)}.noise-track{flex:1;height:6px;border-radius:10px;background:#efe6ee;overflow:hidden}#noise-fill{height:100%;width:0;background:var(--danger)}#noise-label{width:44px;text-align:right}.hold{margin-top:18px;width:100%;min-height:65px;border:2px solid var(--ink);background:var(--cat);border-radius:15px;font-size:15px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:15px;box-shadow:0 4px 0 #c57f50;touch-action:none;user-select:none;-webkit-user-select:none}.hold-icon{font-size:23px}.hold[data-held=true]{transform:translateY(3px);box-shadow:0 1px 0 #c57f50;background:#f7c18c}.hold[data-danger=true]{background:#f9dce4;box-shadow:0 4px 0 #d298a8}.hold:disabled{background:#f5efeb;box-shadow:none;color:#867886;border-color:#c9bfc8}.control-note{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:13px;min-height:20px;font-size:10px;color:var(--muted)}.control-note button{background:none;text-decoration:underline;font-size:10px;padding:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}footer{display:flex;align-items:center;gap:22px;max-width:1152px;margin:0 auto;padding:18px 36px 25px;font-size:10px;color:var(--muted)}footer .version{margin-left:auto}details{position:relative}summary{cursor:pointer}details[open]{align-self:flex-start}details p{font-size:10px}details button{font-size:10px;background:var(--white);padding:7px;border-radius:6px;margin:0 5px 5px 0}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:12px 20px;background:var(--ink);color:white;box-shadow:0 3px 10px #2b174130;border-radius:15px;font-size:12px;z-index:10;max-width:90%;text-align:center}dialog{width:min(92vw,460px);border:2px solid var(--ink);border-radius:20px;background:var(--white);color:var(--ink);padding:25px}dialog::backdrop{background:#2b174150}dialog h2{margin-top:0}dialog textarea{width:100%;height:150px;font:inherit;font-size:14px;padding:12px;margin-bottom:15px;border:1px solid var(--muted);border-radius:9px}body[data-playing=true] .best{opacity:.6}
.mobile-lead{display:none}
@media(min-width:761px) and (max-width:1399px){.topbar{padding-top:22px;padding-bottom:22px}main{margin-top:10px;margin-bottom:24px}.playground{max-width:540px}}
@media(min-width:1400px){main{margin-top:60px;margin-bottom:75px}}
@media(max-width:760px){.topbar{padding:17px 20px}.wordmark{font-size:11px}.wordmark span{font-size:20px}.sound{font-size:10px;padding:7px 12px}main{display:block;margin:4px auto 22px;padding:0 18px;max-width:540px}.intro{padding:0 4px 16px;position:relative}.little-label{font-size:10px;margin-bottom:10px}h1{font-size:36px;line-height:1.26;letter-spacing:-.07em}h1 .desktop-break{display:none}.lead{font-size:11px;margin:10px 0 0}.instructions{display:none}.best{position:absolute;bottom:20px;right:0;margin:0;display:flex;flex-direction:column;gap:2px;align-items:flex-end;font-size:9px}.best strong{font-size:17px}.playground{padding:15px 15px 12px;border-radius:20px;box-shadow:4px 5px 0 #c5b8e3}.hud{font-size:11px}.time{font-size:10px}.time strong{font-size:19px}.scene{margin-top:5px}.start-overlay{padding-bottom:15px}.start-whisper{font-size:10px;margin-bottom:8px;padding:4px 10px}.primary{padding:10px 17px;font-size:12px}.meters{margin-top:13px}.meter-label{font-size:10px;margin-bottom:5px}.noise-row{margin-top:9px;gap:8px}.hold{min-height:57px;font-size:12px;gap:10px;margin-top:14px}.control-note{font-size:8px;margin-top:11px}.control-note button{font-size:8px}.result-overlay{padding:10px;gap:4px}.result-overlay h2{font-size:21px}.result-tag{font-size:9px;padding:3px 10px}.result-score{font-size:34px}.result-score small{font-size:14px}.result-overlay p{font-size:9px;margin:0 0 4px}.result-tools{gap:6px;margin-top:4px}.result-tools button{font-size:9px;padding:6px 8px}footer{padding:8px 22px max(20px,env(safe-area-inset-bottom));gap:16px;font-size:8px}.pause-overlay p{font-size:19px}}
@media(max-width:760px){.desktop-lead{display:none}.mobile-lead{display:inline}.best{bottom:57px}}
@media(max-width:360px){h1{font-size:31px}.topbar{padding:15px}main{padding:0 12px}.playground{padding:12px}.best{right:2px}.result-overlay h2{font-size:19px}.result-score{font-size:29px}.result-tools button{font-size:8px}}
@media(max-height:550px) and (orientation:landscape){main{display:grid;grid-template-columns:.7fr 1fr;max-width:900px;gap:20px;margin-top:0}.intro{padding:0}.instructions{display:block;font-size:11px;margin:16px 0}.best{position:static;align-items:flex-start;margin-top:18px}.playground{max-width:410px}.scene{max-height:240px;aspect-ratio:620/420}.little-label{font-size:10px}h1{font-size:32px}.topbar{padding:10px 24px}footer{margin-top:15px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.variants{display:flex;gap:8px;max-width:1152px;margin:0 auto 14px;padding:0 36px}.variants button{background:var(--white);border:1.5px solid var(--ink);border-radius:30px;padding:8px 16px;font-size:11px;font-weight:800;white-space:nowrap}.variants button[aria-pressed=true]{background:var(--ink);color:var(--white)}.variants button:disabled{opacity:.48;cursor:default}.scene{background:var(--stage,#f6f2ff)}.playground{box-shadow:7px 8px 0 var(--shadow,#c5b8e3)}.pause-overlay,.result-overlay{background:color-mix(in srgb,var(--stage,#f6f2ff) 95%,transparent)}.start-overlay{background:linear-gradient(transparent 60%,var(--stage,#f6f2ff))}#progress-fill{background:var(--can)}#noise-fill{background:var(--danger)}.hold:not(:disabled){background:var(--cat)}.hold[data-danger=true]:not(:disabled){background:color-mix(in srgb,var(--danger) 18%,var(--white))}.hold[data-held=true]:not(:disabled){background:color-mix(in srgb,var(--cat) 80%,white)}
#noise-label{width:66px;flex-shrink:0;white-space:nowrap}
#image-dialog{width:min(92vw,850px)}#result-image{display:block;width:100%;height:auto;border-radius:8px}.image-actions{display:flex;gap:18px;align-items:center}.image-actions a{text-decoration:none;text-align:center}.image-actions button{background:transparent;font-size:13px}#image-dialog p{font-size:12px}#copy-dialog p{font-size:12px}
@media(min-width:761px) and (max-width:1399px){.topbar{padding-top:14px;padding-bottom:14px}main{margin-top:0}.variants{margin-bottom:10px}.playground{max-width:520px}.intro{padding-bottom:15px}h1{font-size:56px}}
@media(max-width:760px){.variants{gap:5px;padding:0 18px;margin-bottom:15px;justify-content:space-between}.variants button{padding:7px 9px;font-size:9px}.playground{box-shadow:4px 5px 0 var(--shadow)}.intro .best{bottom:57px}.hud{font-size:10px}.cat-status{letter-spacing:-.035em}}
@media(max-width:360px){.variants{padding:0 12px;gap:4px}.variants button{padding:7px;font-size:8px}}
.pause-tools{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:14px}
.pause-tools button{min-height:44px;padding:8px 12px;background:var(--white);border:1px solid var(--muted);border-radius:24px;font-size:11px}
@media(max-height:550px) and (orientation:landscape) and (min-width:560px){
 .topbar{padding:8px 20px}.variants{padding:0 20px;margin-bottom:8px}.variants button{min-height:32px;padding:6px 12px}
 main{display:block;max-width:1000px;padding:0 16px;margin:0 auto 8px}
 .intro{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%)}
 .playground{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(190px,1fr);grid-template-areas:"hud hud" "scene meters" "scene hold" "scene note";gap:8px 14px;max-width:none;padding:10px 14px;border-radius:16px}
 .hud{grid-area:hud}.scene{grid-area:scene;max-height:220px;margin:0;align-self:start}
 .meters{grid-area:meters;margin:4px 0 0}.hold{grid-area:hold;margin:0;align-self:end;min-height:60px;font-size:12px}
 .control-note{grid-area:note;margin:0;font-size:9px;flex-wrap:wrap}.control-note button{min-height:28px}
 .result-overlay{gap:2px;padding:8px}.result-tag{font-size:8px;padding:2px 8px}.result-overlay h2{font-size:19px;line-height:1.2;margin:2px 0 0}
 .result-score{font-size:29px}.result-score small{font-size:12px}.result-overlay p{font-size:10px;line-height:1.4;margin:0}
 .scene .primary{min-height:44px;padding:8px 14px;font-size:12px}.result-tools{margin:2px 0 0;gap:6px}.result-tools button{min-height:44px;padding:6px 8px;font-size:10px}
 .pause-overlay p{font-size:19px;margin:6px 0 10px}.pause-tools{margin-top:8px;gap:6px}
 footer{padding:4px 20px max(8px,env(safe-area-inset-bottom));margin-top:0}
}
