:root{--paper:#faf4e8;--ink:#443e4b;--muted:#706774;--line:#dbcebb;--blue:#526d92;--purple:#80658e;--cream:#fff9ee;--gold:#b78743;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;font-size:16px;line-height:1.9;background-image:url("assets/evening-room.webp");background-size:2500px auto;background-position:left top;background-attachment:fixed}body:before{content:"";position:fixed;inset:0;background:#faf4e8f2;z-index:-1}button,a,input{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}a{color:inherit;text-underline-offset:5px}button{cursor:pointer}button:disabled{cursor:default;opacity:.42}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #4777aa;outline-offset:5px}button{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:"Zen Maru Gothic","Yu Gothic","Hiragino Maru Gothic ProN",sans-serif;font-weight:600}button,.primary,.secondary{min-height:48px}.primary,.secondary,.quiet,.sound{display:inline-flex;align-items:center;justify-content:center;gap:12px;text-decoration:none;border-radius:8px;padding:12px 24px;border:1px solid transparent;font-weight:600;line-height:1.6;transition:background .2s,transform .2s}.primary{background:var(--blue);color:#fff9ef;box-shadow:0 4px 0 #344b6c24}.primary:hover{background:#415e84}.secondary{border-color:#b4a79b;background:#fffcf4b8}.secondary:hover:not(:disabled){background:#fffaf0}.quiet{background:transparent;padding:10px 14px;border-color:transparent}.quiet:hover:not(:disabled){background:#e9ddcb66}.sound{border:1px solid var(--line);padding:8px 15px;background:#fcf7ee;white-space:nowrap;font-size:13px;min-height:44px}.header{max-width:1240px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:16px 32px;gap:15px}.brand{display:block;line-height:1}.brand img{width:245px;height:72px;object-fit:contain}.skip{position:absolute;top:-100px;left:10px;background:white;z-index:10}.skip:focus{top:10px}main{max-width:1240px;margin:auto}.hero{position:relative;margin:0 24px;overflow:hidden;border-radius:3px;isolation:isolate}.hero-art{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}.hero-copy{position:absolute;left:5%;top:18%;max-width:46%}.eyebrow{font-size:12px;letter-spacing:.18em;color:#78654f;font-weight:600}.hero h1{font-size:clamp(27px,3.35vw,44px);line-height:1.65;letter-spacing:.06em;margin:18px 0}.hero-copy>p:not(.eyebrow){font-size:15px;line-height:2.15;margin-bottom:26px}.hero-copy .primary{font-size:14px}.hero-note{display:block;font-size:11px;margin-top:14px;color:#695d53}.room-selection{max-width:890px;margin:70px auto;padding:0 28px;scroll-margin-top:30px}.section-intro{text-align:center;margin-bottom:35px}.section-intro h2{font-size:29px;letter-spacing:.08em;margin-top:8px}.room-links{display:grid;grid-template-columns:1fr 1fr;gap:30px}.room-link{position:relative;display:block;padding:28px 32px;text-decoration:none;border-top:1px solid #b8bec9;border-bottom:1px solid #b8bec9;background:linear-gradient(130deg,#e4ecf573,transparent);transition:transform .2s}.room-link:hover{transform:translateY(-4px)}.stretch-room{border-color:#c7b7cb;background:linear-gradient(130deg,#eee2f073,transparent)}.room-number{font-size:12px;letter-spacing:.16em;color:#626778}.room-link h3{font-size:31px;line-height:1.6;margin:20px 0 16px;letter-spacing:.07em}.room-link p{font-size:14px;line-height:2.1}.room-symbol{position:absolute;right:28px;top:38px;font-size:70px;color:#839dbc;line-height:1;font-family:serif}.room-symbol i{position:absolute;font-size:26px;right:19px;top:24px;font-style:normal}.stretch-symbol{color:#9c82a9;transform:rotate(-70deg);font-size:80px}.room-cta{display:flex;justify-content:space-between;align-items:center;margin-top:26px;font-size:14px;font-weight:600;color:var(--blue)}.stretch-room .room-cta{color:var(--purple)}.room-cta b{font-size:22px;font-weight:400}.small-note{font-size:12px;color:var(--muted);text-align:center;line-height:1.9;margin:20px 0}.closing{text-align:center;border-top:1px solid var(--line);margin:0 9%;padding:45px 15px}.closing>span{color:var(--gold);font-size:32px}.closing p{font-family:"Zen Maru Gothic","Yu Gothic","Hiragino Maru Gothic ProN",sans-serif;line-height:2.25;margin-top:15px;font-size:16px;letter-spacing:.1em}.footer{max-width:1100px;margin:20px auto 0;padding:25px 24px calc(30px + env(safe-area-inset-bottom));border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted)}.footer a{text-decoration:none}.footer small{flex-basis:100%;font-size:11px}.play-view{max-width:820px;margin:auto;padding:0 24px 30px}.room-nav{display:flex;justify-content:space-between;gap:12px;font-size:13px;margin:10px 0 26px}.room-nav a{text-decoration:none;min-height:44px;display:flex;align-items:center}.play-heading{text-align:center;margin-bottom:25px}.play-heading h1{font-size:31px;letter-spacing:.035em;margin:7px 0 9px}.play-heading>p:last-child{font-size:15px}.stage{height:370px;border:1px solid #d1bea5;border-radius:100px 100px 12px 12px;position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at 15% 30%,#ffe8ae5c,transparent 50%),linear-gradient(#f5ead9 0%,#f7eddf 81%,#c9ac8366 81.3%,#e8d3b0 100%)}.stage:before{content:"";inset:0;position:absolute;background-image:url("assets/evening-room.webp");background-size:240% auto;background-position:0 0;opacity:.17;z-index:-1}.window-light{position:absolute;right:7%;top:35px;width:90px;height:135px;border:6px solid #b79a7a;border-radius:45px 45px 0 0;background:linear-gradient(130deg,#536787,#a1a7bc);box-shadow:0 0 40px #eec98b4d;opacity:.68}.window-light:before{content:"";position:absolute;top:57%;height:4px;width:100%;background:#b79a7a}.window-light:after{content:"";position:absolute;left:48%;height:100%;width:4px;background:#b79a7a}.window-light span{position:absolute;top:4px;left:13px;font-size:32px;color:#ffe9b1}.stage-duo{display:flex;gap:30px;position:absolute;bottom:35px;left:50%;transform:translateX(-50%);pointer-events:none}.actor{width:110px;transform-origin:center bottom}.actor svg{width:100%;display:block;overflow:visible}.actor.dancing{animation:sway 1.5s ease-in-out infinite alternate}.actor:nth-child(2).dancing{animation-delay:-.6s}.speech{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);font-size:14px;text-align:center;line-height:1.6;padding:7px 15px;background:#fffbefed;border:1px solid #dbc5a4;border-radius:30px;max-width:94%;width:max-content;z-index:3;box-shadow:0 2px 7px #7c633d0c}.floor-label{position:absolute;bottom:5px;left:0;width:100%;text-align:center;font-size:9px;color:#755f48;opacity:0}.stage .speech{bottom:28px}.stage-duo{bottom:75px}#bubbles{position:absolute;inset:15px 12px 170px;z-index:2}.bubble{position:absolute;width:var(--size);height:var(--size);padding:0;border-radius:50%;border:1.5px solid #7098b9;background:radial-gradient(circle at 27% 22%,#fff 0 5%,#ffffff8a 7%,transparent 19%),radial-gradient(circle at 70% 78%,#f6d79788,transparent 52%),linear-gradient(135deg,#b7dcf059,#f3f1fbba 48%,#d8c7e57a);color:#4c6888;font-size:15px;box-shadow:inset -2px -3px 10px #738faf22,0 4px 12px #525a6b12;animation:bob 3s ease-in-out infinite;min-height:0;transition:transform .18s,opacity .18s}.bubble:hover{filter:brightness(1.05)}.bubble.popped{transform:scale(1.4);opacity:0;pointer-events:none;animation:none}.bubble.preview{pointer-events:none;left:calc(50% - var(--size)/2)!important;top:8px!important;animation:none;outline:5px solid #ffffff4a}.play-controls{display:flex;justify-content:center;align-items:flex-start;gap:20px;margin:22px 0}.breathe-wrap{display:flex;flex-direction:column;align-items:center;gap:7px}.breathe{min-width:175px;font-size:24px;padding:10px 28px;touch-action:none;user-select:none;-webkit-user-select:none}.breathe>span{font-size:28px}.breathe.holding{background:#6982a2;box-shadow:0 0 0 5px #91abc72b}.breathe-wrap>span{font-size:11px;color:var(--muted)}.play-controls>.secondary{margin-top:5px}.score{padding:17px 18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;gap:25px;align-items:center;font-size:12px}.score>span{white-space:nowrap}.score b{margin-left:9px;font-weight:400;color:var(--muted)}#notes{display:flex;flex-wrap:wrap;gap:8px;min-height:34px;align-items:center}#notes em{font-style:normal;font-size:12px;color:var(--muted)}.note{width:34px;height:34px;border-radius:50%;background:#e2e8ed;color:#506583;display:grid;place-items:center;transition:background .2s}.note.active{background:#5c789c;color:white}.song-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:18px 0 35px;font-size:12px}.song-actions button{font-size:12px}.memory{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px;background:#efe6d785;border-left:3px solid #c7af87}.memory h2{font-size:20px;margin:4px 0 8px}.memory p:not(.eyebrow){font-size:12px}.memory-controls{display:flex;flex-direction:column;align-items:center;gap:6px;flex-shrink:0}.memory-controls button{font-size:12px}.help{margin:26px 0;font-size:13px}.help summary{cursor:pointer;padding:10px 0;min-height:44px}.help p{margin-top:12px;color:var(--muted)}.choices{display:flex;justify-content:center;gap:12px;margin-bottom:20px}.choices button{border:1px solid #cabfb2;border-radius:24px;background:transparent;min-width:120px;padding:9px 18px;font-size:14px}.choices button.chosen{background:#e8e4f1;border-color:#897693}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle}.blue{background:#3685f5}.purple{background:#a184bb}.stretch-stage{height:390px;touch-action:none;user-select:none;-webkit-user-select:none;cursor:ns-resize}.stretch-character{position:absolute;bottom:75px;left:calc(50% - 66px);width:132px;pointer-events:none}.stretch-character svg{display:block;width:100%;overflow:visible}.char-body{transform-origin:90px 224px}.char-head{transform-origin:90px 100px}.char-body,.char-head{transition:transform .08s linear}.released .char-body,.released .char-head{transition:transform .65s cubic-bezier(.2,1.6,.4,1)}.stretch-guide{position:absolute;left:23%;top:70px;font-size:20px;color:#8c7b91;line-height:2;text-align:center;letter-spacing:.2em}.stretch-controls{text-align:center;margin:24px 0}.stretch-controls p{font-size:12px;color:var(--muted);margin:12px 0}.stretch-controls button{background:var(--purple);min-width:240px;touch-action:none;user-select:none;-webkit-user-select:none}.range-label{display:flex;justify-content:space-between;font-size:13px;max-width:500px;margin:auto}.stretch-range{display:block;width:100%;max-width:500px;height:44px;margin:5px auto 0;accent-color:var(--purple);touch-action:pan-y}.after-play{text-align:center;padding:30px 10px;font-size:14px}.after-play p{font-family:"Zen Maru Gothic","Yu Gothic","Hiragino Maru Gothic ProN",sans-serif;font-size:20px;margin:8px 0 18px}.after-play a{font-size:13px}[hidden]{display:none!important}@keyframes bob{50%{translate:0 -5px}}@keyframes sway{to{transform:rotate(4deg) translateY(-4px)}}
@media(min-width:1350px){.hero-copy{top:21%}}
@media(max-width:760px){.header{padding:10px 18px}.brand img{width:210px;height:64px}.hero{margin:0 12px}.hero-copy{top:14%;left:5%}.hero h1{font-size:25px;margin:12px 0}.hero-copy>p:not(.eyebrow){font-size:12px;margin-bottom:15px}.hero-copy .primary{font-size:11px;padding:10px 15px;min-height:44px}.hero-note{font-size:9px}.hero .eyebrow{font-size:9px}.room-selection{margin:50px auto}.room-links{gap:20px}.room-link{padding:24px}.room-link h3{font-size:27px}.room-symbol{font-size:55px;right:20px}.room-symbol i{right:14px;top:20px;font-size:19px}.room-link p{font-size:12px}.play-heading h1{font-size:27px}.play-heading>p:last-child{font-size:13px}}
@media(max-width:540px){body{font-size:15px}.header{padding:9px 15px}.brand img{width:clamp(158px,48vw,186px);height:56px}.sound{font-size:11px;padding:8px 11px}.hero{margin:0;display:flex;flex-direction:column;background:#f8efdf}.hero-art{width:100%;aspect-ratio:1.15;object-fit:cover;object-position:100% center;height:auto}.hero-copy{position:relative;inset:auto;max-width:none;padding:25px 25px 29px;background:linear-gradient(#f9f0e000,#faf4e8);margin-top:-4px}.hero h1{font-size:clamp(24px,7.2vw,32px);line-height:1.65;margin:13px 0 16px}.hero-copy>p:not(.eyebrow){font-size:14px;line-height:2;margin-bottom:21px}.hero .eyebrow{font-size:11px}.hero-copy .primary{font-size:13px;min-height:49px;padding:13px 20px}.hero-note{font-size:10px;margin-top:12px}.room-selection{margin:35px auto;padding:0 23px}.section-intro{margin-bottom:24px}.section-intro h2{font-size:24px}.room-links{grid-template-columns:1fr;gap:25px}.room-link{padding:23px 25px}.room-link h3{font-size:28px;margin:17px 0 12px}.room-link p{font-size:13px}.room-symbol{font-size:75px;right:33px;top:42px}.room-symbol i{right:20px;top:25px;font-size:26px}.room-cta{margin-top:20px}.small-note{font-size:11px}.closing{margin:0 24px;padding:30px 0}.closing p{font-size:14px}.footer{margin-top:10px;font-size:11px;gap:8px;padding:22px 20px calc(25px + env(safe-area-inset-bottom))}.footer span{flex-basis:100%}.footer small{font-size:10px}.play-view{padding:0 16px 25px}.room-nav{font-size:12px;margin:4px 0 14px}.play-heading{margin-bottom:20px}.play-heading h1{font-size:23px;letter-spacing:0;margin:6px 0}.play-heading .eyebrow{font-size:10px}.play-heading>p:last-child{font-size:12px}.stage{height:340px;border-radius:60px 60px 10px 10px}.window-light{width:65px;height:108px;right:8%;top:35px;border-width:5px}.window-light span{font-size:25px}.stage-duo{gap:18px;bottom:65px}.actor{width:92px}.stage .speech{font-size:11px;bottom:22px;padding:7px 12px;max-width:96%}#bubbles{inset:12px 8px 150px}.play-controls{gap:12px;margin:18px 0}.breathe{min-width:135px;font-size:23px;padding:9px 20px}.breathe-wrap>span{font-size:9px}.play-controls>.secondary{font-size:12px;padding:12px 16px;min-height:54px;margin:0}.score{display:block;padding:13px 8px}.score>span{display:block;margin-bottom:10px;font-size:11px}#notes{gap:6px}.note{width:30px;height:30px;font-size:11px}.song-actions{gap:3px;margin:15px 0 25px}.song-actions button{font-size:11px;padding:10px 11px}.memory{padding:20px 15px;display:block}.memory h2{font-size:19px}.memory-controls{align-items:flex-start;margin-top:16px}.memory p:not(.eyebrow){font-size:11px}.help{font-size:12px}.choices{margin-bottom:16px}.choices button{min-height:44px;min-width:112px;font-size:12px}.stretch-stage{height:350px}.stretch-character{width:120px;left:calc(50% - 60px);bottom:65px}.stretch-guide{left:15%;top:60px;font-size:16px}.stretch-controls{margin:20px 0}.stretch-controls button{min-height:52px;font-size:15px}.range-label{font-size:12px}.after-play{padding:20px 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}


.actor{width:128px;height:171px}.watercolor-character{position:relative;width:100%;height:100%;--char-x:0%}.ku-art{--char-x:100%}.watercolor-character>.char-body,.watercolor-character>.char-head{position:absolute;inset:0;background-image:url("assets/companions.webp");background-size:200% 100%;background-position:var(--char-x) center;background-repeat:no-repeat}.watercolor-character>.char-body{clip-path:inset(37% 0 0);transform-origin:50% 95%}.watercolor-character>.char-head{clip-path:inset(0 0 60%);transform-origin:50% 40%}.stretch-character{width:150px;height:200px;left:calc(50% - 75px)}@media(max-width:540px){.actor{width:110px;height:147px}.stretch-character{width:132px;height:176px;left:calc(50% - 66px)}}
.bubble{width:min(var(--size),23%);height:auto;aspect-ratio:1}.bubble.preview{width:var(--size);height:var(--size)}
.bubble-stage{height:430px}@media(max-width:540px){.bubble-stage{height:390px}}
.play-controls{flex-wrap:wrap;align-items:center;column-gap:20px;row-gap:10px}.breathe-hint{flex:0 0 100%;margin:0;min-height:29px;text-align:center;font-size:17px;font-weight:600;line-height:1.7;color:var(--ink);letter-spacing:.035em}.breathe-wrap{gap:0}.play-controls>.secondary{margin-top:0}@media(max-width:540px){.play-controls{column-gap:12px;row-gap:10px}.breathe-hint{font-size:16px;letter-spacing:.015em;min-height:28px}}
.play-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);justify-content:stretch}.breathe-hint{grid-column:1/-1}.breathe-wrap{min-width:0;width:100%}.breathe{min-width:0;width:100%}.play-controls>.secondary{min-width:0;width:100%;min-height:64px;padding:10px}@media(min-width:541px){.play-controls{max-width:480px;margin-left:auto;margin-right:auto}}
@media(max-width:360px){.play-heading h1{font-size:20px}}

.intro-help{margin:0 0 18px;padding:0 14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fffaf05c}.intro-help summary{font-weight:600;color:var(--ink)}.intro-help summary span{font-size:11px;font-weight:400;margin-left:12px;color:var(--muted)}.intro-help ol{padding-left:23px;margin:12px 0}.intro-help li{margin-bottom:8px}.intro-help p:last-child{margin-bottom:16px}.share-panel{padding:18px 20px;border:1px solid var(--line);border-radius:8px;background:#fffaf0;margin:-10px 0 25px;font-size:13px}.share-panel label{display:block;margin-bottom:10px;font-weight:600}.share-link-row{display:flex;gap:10px}.share-link-row input{min-width:0;flex:1;border:1px solid #b8aca0;border-radius:5px;background:#fffdf8;color:var(--ink);padding:10px;font-size:14px}.share-link-row button{font-size:12px;flex-shrink:0}.share-panel p{font-size:11px;margin-top:10px;line-height:1.8;color:var(--muted)}.footer .disclaimer{flex-basis:100%;border-top:1px solid var(--line);margin-top:12px;padding-top:5px;font-size:12px;line-height:1.9;color:var(--muted)}.disclaimer summary{padding:10px 0;cursor:pointer;min-height:44px;color:#625967}.disclaimer p{margin:10px 0;max-width:75em}@media(max-width:540px){.intro-help{font-size:12px;padding:0 10px;margin-bottom:16px}.intro-help summary span{display:block;margin:2px 0 0 17px;font-size:11px}.share-panel{padding:15px}.share-link-row{flex-wrap:wrap}.share-link-row input{flex-basis:100%;width:100%}.share-link-row button{min-height:44px}.footer .disclaimer{font-size:12px}}

.song-actions #reset{font-size:14px;font-weight:600;min-height:48px;padding:11px 24px;border-color:#9c8974;background:#fff8ed;box-shadow:0 2px 0 #8c735b12}.song-actions #reset:hover{background:#efe4d1}.footer .bottom-room-nav{flex-basis:100%;margin:12px 0 0;padding-top:12px;border-top:1px solid var(--line);font-size:13px;font-weight:600;color:var(--ink)}.bottom-room-nav a{min-height:48px;padding:0 4px}

.bubble.largest{width:min(var(--size),calc(25% - 4px))}

.song-actions{flex-direction:column;align-items:stretch;gap:12px}.transport-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.song-actions .transport-row button{font-size:14px;font-weight:600;min-height:48px;padding:11px 12px}.song-actions #replay{border-color:#8295ad;background:#edf1f5;box-shadow:0 2px 0 #526d9212}.song-actions #replay:hover{background:#e0e8f0}.song-tools{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}

.score+.memory{margin-top:20px}.song-actions #stop{font-size:14px;font-weight:700;min-height:48px;padding:10px 24px;color:#443e4b;border:1.5px solid #80658e;border-radius:12px;background:#eee5f0;opacity:1}.song-actions #stop:hover:not(:disabled){background:#e0d1e5}.song-actions #stop:disabled{color:#6b6370;border-color:#b5a7b8;background:#f1ebef;opacity:1;cursor:default}

.reset-row{display:flex;justify-content:flex-end;margin-top:4px}.song-actions .reset-row #reset{width:calc((100% - 16px)/2);font-size:14px;min-height:48px;padding:11px 12px}.song-actions+.share-panel+.memory{margin-top:8px}
.reset-row{height:48px;align-items:flex-start}.song-actions .reset-row #reset{height:48px}

.play-controls #compose{background:var(--blue);color:#fff9ef;box-shadow:0 4px 0 #344b6c24;font-size:14px;min-height:64px;padding:12px}.play-controls #compose:hover:not(:disabled){background:#415e84}.song-actions #listen{border-color:#8295ad;background:#edf1f5;color:var(--ink);box-shadow:0 2px 0 #526d9212}.song-actions #listen:hover:not(:disabled){background:#e0e8f0}.song-actions .repeat-row #reset{height:48px;padding:11px 12px}

.memory-controls button:disabled{opacity:1;color:#756d79;cursor:default}.memory-controls .secondary:disabled{background:#f4f0e9;border-color:#c9beb0}.memory-controls .quiet:disabled{background:transparent}
