:root{font-family:Inter,Apple SD Gothic Neo,Malgun Gothic,sans-serif;color:#544b43;background:#f6f1e9;font-synthesis:none;font-weight:400}*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer;color:inherit;border:0}button:focus-visible,a:focus-visible{outline:3px solid #91b49f;outline-offset:4px}button{transition:background .2s,transform .2s}button:hover{filter:brightness(.98)}button:active{transform:scale(.97)}.app{width:100%;height:100dvh;min-height:520px;overflow:hidden;position:relative}.app>div:first-child{position:absolute!important;inset:0}.topbar{position:absolute;top:0;left:0;width:100%;padding:28px 42px;display:flex;align-items:center;justify-content:space-between;z-index:4;pointer-events:none}.topbar>*{pointer-events:auto}.brand{font-size:23px;letter-spacing:3px;color:#605b4d;text-decoration:none;font-weight:700;line-height:1}.brand span{font-weight:400}.brand small{display:block;font-size:10px;letter-spacing:2.3px;font-weight:400;margin-top:8px}.top-actions{display:flex;gap:18px;align-items:center}.open-badge{font-size:10px;letter-spacing:1.6px}.open-badge i,.connection i{display:inline-block;width:6px;height:6px;background:#9cb99d;border-radius:50%;margin-right:7px}.icon-button{background:#fff9eece;border:1px solid #dfd8ca;border-radius:30px;padding:11px 15px;font-size:11px;letter-spacing:1px}.welcome-shade{position:absolute;inset:0;background:linear-gradient(90deg,#f8f3eaf5 0%,#f8f3eaed 25%,#f8f3ea90 43%,transparent 65%);pointer-events:none}.welcome-card{position:absolute;top:50%;left:7%;transform:translateY(-45%);width:350px;z-index:3}.eyebrow{font-size:9px;letter-spacing:2.5px;color:#919581;font-weight:600;margin:0 0 18px}.welcome h1{font-size:37px;line-height:1.55;letter-spacing:-1.8px;font-weight:500;margin:0 0 16px}.welcome h1 em{font-style:normal;color:#7a927f}.intro{font-size:13px;line-height:2.1;color:#948b80;margin-bottom:24px}.animal-picker{display:flex;gap:9px}.animal-picker button{width:64px;background:#ffffff70;border:1px solid transparent;border-radius:15px;padding:9px 0}.animal-picker button.chosen{border-color:#a9bda7;background:#e3ecdf}.animal-picker span{font-size:25px;display:block}.animal-picker small{display:block;font-size:10px;margin-top:4px}.nickname{display:block;margin:19px 0 16px}.nickname>span{display:block;font-size:10px;color:#928a7e;margin-bottom:8px}.nickname input{width:283px;border:1px solid #ded9cd;background:#fffaf0a8;border-radius:9px;padding:11px 12px;font-size:12px;color:#62594e;outline-color:#9bb49f}.primary{background:#829b85;color:#fff;border-radius:10px;padding:15px 22px;font-size:13px;letter-spacing:1px;min-height:48px}.enter{width:283px;text-align:left}.enter span{float:right;font-size:18px}.quiet-note{font-size:10px;color:#a49a8e;margin:12px 0 0 24px}.welcome-footer{position:absolute;bottom:25px;left:42px;right:42px;display:flex;justify-content:space-between;color:#a59a8a;font-size:10px;letter-spacing:1px;pointer-events:none}.welcome-footer span:last-child{font-size:9px;letter-spacing:2px}.wall-sign{text-align:center;font-size:30px;letter-spacing:7px;color:#7f927d;width:200px}.wall-sign span{font-size:25px}.wall-sign small{display:block;font-size:9px;letter-spacing:1px;margin-top:12px}.machine-label{text-align:center;font-size:18px;width:70px;line-height:1.5;letter-spacing:1px;pointer-events:none}.name-tag{white-space:nowrap;background:#fffcf0ce;border:1px solid #e9dfcf80;border-radius:20px;padding:5px 10px;font-size:10px;color:#7e7062;pointer-events:none}.name-tag.you{background:#e3ecdfdf;color:#5d7a65}.room-info{position:absolute;left:32px;top:111px;background:#fffaf1d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid #ffffff90;border-radius:18px;padding:20px 24px;min-width:252px}.room-info .eyebrow{margin-bottom:10px}.room-title{font-size:19px;letter-spacing:-.6px;background:transparent;padding:0}.room-title span{padding-left:15px;color:#9a9f8e}.connection{font-size:10px;color:#9a9185;margin-top:12px}.connection i{background:#c7b58e}.connection i.connected{background:#7da88b}.room-tools{position:absolute;right:27px;top:116px;display:flex;flex-direction:column;gap:8px}.room-tools button{background:#fffbf0db;border:1px solid #ffffffaa;border-radius:13px;padding:13px 17px;font-size:16px;text-align:left;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.room-tools span{font-size:11px;margin-left:7px}.bottom-hint{position:absolute;bottom:29px;left:50%;transform:translate(-50%);font-size:11px;text-align:center;white-space:nowrap;color:#8b8070;background:#fffaf0c9;padding:12px 24px;border-radius:30px;pointer-events:none}.bottom-hint small{display:block;font-size:9px;margin-top:5px;color:#a79987}.play-actions{position:absolute;right:30px;bottom:max(36px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px;align-items:center}.bubble-button{border-radius:24px;background:linear-gradient(140deg,#f8f4ffd9,#e1eee7ed);border:1px solid #fff;box-shadow:0 6px 24px #8c82aa20;min-width:122px;padding:13px 18px;font-size:12px;-webkit-user-select:none;user-select:none;touch-action:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.bubble-button>span{display:block;font-size:32px;margin-bottom:5px}.bubble-button small{display:block;font-size:8px;color:#a095a2;margin-top:5px}.bubble-button.cooling{opacity:.65}.stand-button{border-radius:30px;background:#fff7e6e8;padding:13px 22px;font-size:12px}.joystick{position:absolute;left:35px;bottom:max(40px,env(safe-area-inset-bottom));width:112px;height:112px;border-radius:50%;background:#fff8ed80;border:1px solid #fff7e6aa;box-shadow:inset 0 0 20px #897b6910;touch-action:none;-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:center}.joystick-arrows{font-size:70px;color:#b9b29e50}.joystick-knob{position:absolute;width:49px;height:49px;border-radius:50%;background:#fffaf1e8;box-shadow:0 3px 12px #8c806326;pointer-events:none;border:1px solid #fff}.joystick small{position:absolute;bottom:-18px;letter-spacing:2px;font-size:8px;color:#9c927d}.toast{position:absolute;bottom:190px;left:50%;transform:translate(-50%);background:#fffdf2ef;box-shadow:0 4px 24px #786e4d12;border:1px solid #fff;border-radius:30px;padding:14px 22px;font-size:12px;z-index:12;text-align:center;max-width:90%;width:max-content;pointer-events:none}.modal-backdrop{position:absolute;inset:0;background:#504c4240;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);display:flex;justify-content:center;align-items:center;z-index:10;padding:20px}.modal{position:relative;background:#fffaf1;border:1px solid #fff;border-radius:25px;padding:38px;max-width:540px;width:100%;max-height:85dvh;overflow:auto;box-shadow:0 20px 80px #514c3b20}.close{position:absolute;right:18px;top:14px;background:transparent;font-size:27px;color:#9b927f;width:36px;height:36px}.modal h2{font-size:23px;font-weight:500;letter-spacing:-1px;margin:0}.modal-description{font-size:11px;color:#9e9384;margin:13px 0 25px;line-height:1.7}.room-grid,.drink-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.room-grid button{display:flex;flex-direction:column;gap:7px;padding:15px;background:#f1ede4;border-radius:12px;text-align:left;border:1px solid transparent}.room-grid button:nth-child(4n+1){background:#e7eee3}.room-grid button:nth-child(4n+2){background:#f7e6e8}.room-grid button:nth-child(4n+3){background:#ece7f4}.room-grid button.active-room{border-color:#829b85}.room-grid small{font-size:8px;letter-spacing:1.5px;color:#9b9488}.room-grid strong{font-size:12px;font-weight:500}.room-grid span{font-size:9px;color:#9c9285}.drink-grid button{background:#fffdf8;border:1px solid #e9e0d2;border-radius:15px;padding:17px 10px;display:flex;flex-direction:column;align-items:center;gap:9px}.drink-grid button>span{display:flex;align-items:center;justify-content:center;font-size:35px;width:76px;height:76px;border-radius:50%}.drink-grid strong{font-size:12px;font-weight:500}.drink-grid small{font-size:8px;color:#aa9f8c;letter-spacing:.5px}.dessert-art{text-align:center;font-size:95px;margin:25px}.modal>.primary{width:100%}.webgl-error{display:grid;place-content:center;background:#c8e7d6;text-align:center;font-size:14px;line-height:2;padding:20px}@media(min-width:1500px){.welcome-card{left:10%}.welcome h1{font-size:46px}}@media(max-width:700px){.app{min-height:0}.topbar{padding:22px 20px}.brand{font-size:18px;letter-spacing:2px}.brand small{font-size:8px}.open-badge{display:none}.icon-button{font-size:9px;padding:10px 12px}.welcome-shade{background:linear-gradient(0deg,#f8f3eafa,#f8f3eaf2 43%,#f8f3ea28 78%)}.welcome-card{inset:auto 24px 30px;width:auto;transform:none;max-width:360px}.welcome h1{font-size:28px;line-height:1.5;margin-bottom:10px}.welcome .eyebrow{font-size:8px;margin-bottom:13px}.intro{font-size:11px;line-height:1.9;margin-bottom:15px}.animal-picker{gap:9px}.animal-picker button{width:58px;padding:7px 0}.animal-picker span{font-size:23px}.animal-picker small{font-size:9px}.nickname{margin:12px 0}.nickname input,.enter{width:100%;max-width:310px}.quiet-note{margin-top:9px}.welcome-footer{display:none}.room-info{top:88px;left:16px;padding:14px 17px;min-width:210px;border-radius:15px}.room-info .eyebrow{font-size:8px;margin-bottom:8px}.room-title{font-size:16px}.connection{font-size:8px;margin-top:9px}.room-tools{right:13px;top:91px;gap:7px}.room-tools button{padding:11px;border-radius:12px;font-size:18px}.room-tools span{display:none}.joystick{left:23px;bottom:max(43px,env(safe-area-inset-bottom));width:104px;height:104px}.play-actions{right:20px;bottom:max(30px,env(safe-area-inset-bottom))}.bubble-button{min-width:106px;padding:12px;font-size:11px;border-radius:22px}.bubble-button>span{font-size:29px}.bubble-button small{font-size:7px}.bottom-hint{bottom:14px;padding:7px 13px;font-size:8px;max-width:95%;background:#fffaf0b0}.bottom-hint small{font-size:7px}.toast{bottom:180px;font-size:11px;padding:12px 17px}.modal{padding:30px 22px;border-radius:21px}.modal h2{font-size:21px}.modal-description{font-size:10px}.modal .eyebrow{font-size:7px;letter-spacing:1.8px}.room-grid{gap:8px}.room-grid button{padding:12px}.room-grid strong{font-size:11px}}@media(max-height:690px)and (max-width:700px){.welcome-card{bottom:17px}.welcome h1{font-size:24px}.intro{margin-bottom:9px}.welcome .eyebrow{margin-bottom:8px}.animal-picker button{padding:4px 0}.nickname>span{font-size:9px}.nickname{margin:9px 0}.quiet-note{font-size:8px}.primary{padding:12px 19px}.welcome-card .intro{font-size:10px}}@media(prefers-reduced-motion:reduce){button{transition:none}}@media(max-height:560px){.app{min-height:0}.topbar{padding:16px 23px}.welcome-card{top:84px;bottom:18px;transform:none;overflow-y:auto;max-height:calc(100dvh - 102px);padding-right:12px}.welcome h1{font-size:25px}.welcome-footer{display:none}.room-info{top:78px;left:18px;padding:12px 16px;min-width:210px}.room-info .eyebrow{font-size:7px;margin-bottom:6px}.room-title{font-size:15px}.room-tools{top:85px;right:18px;flex-direction:row}.room-tools button{padding:12px}.room-tools span,.bottom-hint{display:none}.joystick{width:88px;height:88px;bottom:30px;left:25px}.play-actions{right:20px;bottom:20px}.bubble-button{min-width:95px;padding:10px}.bubble-button>span{font-size:24px}.bubble-button small{font-size:7px}.toast{bottom:140px}.modal{max-height:90dvh}}button:disabled{cursor:default;opacity:.5}.settings-text{font-size:10px}.top-actions{gap:9px}.camera-tools{position:absolute;top:239px;left:33px;display:flex;gap:8px}.camera-tools button,.consumable-actions button{min-height:44px;border-radius:13px;padding:10px 15px;background:#fffaf0ed;border:1px solid #fff;font-size:11px;box-shadow:0 4px 16px #57463608}.camera-tools button{font-size:10px}.consumable-actions{position:absolute;left:50%;bottom:105px;transform:translate(-50%);display:flex;justify-content:center;flex-wrap:wrap;gap:7px;max-width:420px;width:max-content}.consumable-actions button{background:#e5eee1f5;color:#607761}.consumable-actions button:nth-child(2n){background:#f8edddf5;color:#8a7866}.action-status{flex-basis:100%;text-align:center;font-size:11px;background:#fff7e7e8;padding:10px;border-radius:13px}.espresso-label{font-size:7px;letter-spacing:1.6px;width:130px;text-align:center;color:#837766;pointer-events:none}.brew-button{width:100%;margin-top:18px}.drink-grid .selected-menu{border-color:#8eaa92;background:#eff2e6;box-shadow:0 0 0 1px #8eaa9240}.dessert-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dessert-grid button{background:#f3eadd;border:1px solid #e7ddcd;border-radius:14px;padding:15px;display:flex;flex-direction:column;align-items:center;gap:10px;min-height:100px}.dessert-grid span{font-size:30px}.dessert-grid strong{font-size:12px;font-weight:500}.surprise-dessert{margin-top:15px;background:transparent;width:100%;padding:13px;font-size:11px;color:#9b8b79}.sound-settings>p{font-size:12px;line-height:1.9;color:#9c8b79}.sound-settings label{display:block;font-size:12px;margin:25px 0}.sound-settings output{float:right;color:#789178}.sound-settings input{display:block;width:100%;margin-top:15px;accent-color:#8aab8d;min-height:32px}.sound-settings .primary{width:100%}.sound-settings small,.guestbook form>small{display:block;font-size:10px;color:#a09484;line-height:1.8;margin-top:12px}.guestbook label{display:block;font-size:11px;margin:13px 0;color:#9a8a78}.guestbook input,.guestbook textarea{display:block;width:100%;border-radius:10px;border:1px solid #ddd3c1;padding:12px;margin-top:8px;background:#fffdf6;color:#645849;font:inherit;font-size:13px}.guestbook textarea{resize:vertical;min-height:90px}.memo-counter{text-align:right;font-size:9px;color:#a29481;margin:8px 0 15px}.guestbook .primary{width:100%}.inline-notice,.inline-error{font-size:12px;line-height:1.8;padding:13px;border-radius:10px;background:#e7eddf;color:#718567}.inline-error{background:#f6e1df;color:#9b6260}.guestbook-heading{display:flex;align-items:center;justify-content:space-between;margin-top:25px;font-size:11px}.guestbook-heading button{background:#ede8db;border-radius:8px;padding:10px}.empty-memos{font-size:11px;color:#aa9981;text-align:center;padding:20px 0}.memo-list{padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:10px}.memo-list li{padding:17px 13px;background:#f3e2e6;border-radius:3px 3px 16px;overflow-wrap:anywhere}.memo-list li:nth-child(3n+2){background:#e4eddf}.memo-list li:nth-child(3n){background:#e7e0f0}.memo-list p{font-size:12px;white-space:pre-wrap;line-height:1.8;margin:0 0 18px}.memo-list footer{display:flex;flex-direction:column;gap:5px;font-size:9px;color:#9e8f7c}.memo-list strong{font-weight:500}.memo-list time{font-size:8px}@media(max-width:700px){.topbar{padding:18px 16px}.top-actions{gap:5px}.settings-text{display:none}.top-actions .icon-button{min-width:42px;min-height:42px;padding:9px}.camera-tools{top:189px;left:16px;gap:6px}.camera-tools button{padding:9px 11px;min-height:42px;font-size:9px}.consumable-actions{bottom:172px;max-width:95%;width:100%;gap:5px}.consumable-actions button{min-height:44px;padding:10px 12px;font-size:10px}.action-status{font-size:10px;max-width:210px;flex-basis:100%;margin:0 auto}.in-room .toast{bottom:242px;font-size:10px}.sound-settings label{font-size:11px}.memo-list{gap:8px}.memo-list li{padding:13px 10px}.memo-list p{font-size:11px}}@media(max-height:560px){.camera-tools{top:180px;left:18px}.consumable-actions{bottom:24px;max-width:50%;width:50%}.consumable-actions button{padding:8px 10px;min-height:42px;font-size:10px}.action-status{font-size:9px;padding:5px}.in-room .toast{bottom:130px}.top-actions{gap:6px}}@media(max-width:700px){.room-tools button,.camera-tools button,.top-actions .icon-button,.close{min-width:44px;min-height:44px}.in-room .toast{bottom:295px}}.reroll-name{display:block;background:transparent;color:#849780;font-size:10px;padding:10px 4px;min-height:36px;text-align:left}.nickname{margin-bottom:8px}.action-status progress{display:block;width:80%;height:4px;margin:9px auto 0;accent-color:#88a48c}.animal-picker{max-width:350px}.animal-picker button{flex:1;min-width:0;max-width:64px}@media(max-width:700px){.reroll-name{padding:8px 2px;min-height:34px;font-size:9px}.welcome-card .nickname{margin-bottom:7px}.room-tools{gap:6px}}.interaction-panel{position:absolute;left:50%;bottom:165px;transform:translate(-50%);padding:17px 20px;background:#fff9eeef;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid white;border-radius:18px;z-index:5;min-width:235px;max-width:90%;box-shadow:0 8px 30px #64533e12}.interaction-panel strong{display:block;font-size:12px;padding-right:22px;font-weight:500}.interaction-panel small{display:block;color:#9b8d78;font-size:10px;line-height:1.8;margin:9px 0}.interaction-panel .primary{width:100%;min-height:44px;font-size:11px;padding:11px}.interaction-close{position:absolute;right:7px;top:4px;background:transparent;width:34px;height:34px;font-size:23px;color:#a99a86}.book-spine{font-size:5px;letter-spacing:1px;color:#7e725f;width:25px;text-align:center;pointer-events:none}.reading-modal blockquote{font-size:18px;line-height:2;color:#7d8e79;text-align:center;word-break:keep-all;margin:25px 0}.reading-modal .primary{width:100%}.reading-modal small{display:block;text-align:center;font-size:10px;color:#a99b86;margin-top:13px}.book-preview{height:115px;display:flex;justify-content:center;align-items:center;perspective:500px}.book-preview i{display:block;width:85px;height:100px;background:linear-gradient(90deg,#f8f1df,#fff9ef);border:5px solid var(--book-color);border-radius:2px;box-shadow:0 6px 12px #8f76531a}.book-preview i:first-child{transform-origin:right center;animation:open-page .65s ease-out both}.book-preview i:last-child{transform:rotateY(-15deg);transform-origin:left center}@keyframes open-page{0%{transform:rotateY(150deg)}to{transform:rotateY(15deg)}}.camera-tools{flex-wrap:wrap;max-width:320px}.camera-tools button{min-height:44px}@media(max-width:700px){.camera-tools{max-width:236px;gap:5px}.camera-tools button{font-size:9px;padding:8px}.interaction-panel{bottom:245px;padding:13px 16px;min-width:218px}.interaction-panel strong{font-size:11px}.reading-modal blockquote{font-size:16px}.consumable-actions{bottom:170px}.in-room .toast{bottom:370px}}@media(max-height:560px){.interaction-panel{bottom:110px;left:50%;padding:9px 13px;min-width:210px}.interaction-panel small{margin:4px 0}.camera-tools{max-width:220px;top:170px}.consumable-actions{bottom:20px}.in-room .toast{bottom:210px}}.app>div:first-child{isolation:isolate;z-index:0}.room-info,.room-tools,.camera-tools,.play-actions,.consumable-actions,.bottom-hint,.joystick{z-index:4}.wall-sign,.wall-sign *{pointer-events:none}.app canvas{touch-action:none}.interaction-panel{bottom:max(230px,calc(env(safe-area-inset-bottom) + 210px))}.consumable-actions{z-index:6}.reading-action{min-width:110px;min-height:48px}.book-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.book-choices button{min-height:48px;border:2px solid transparent;border-radius:12px;font-size:12px;padding:8px}.book-choices button[aria-pressed=true]{border-color:#7c9e87}@media(max-width:700px){.interaction-panel{bottom:max(242px,calc(env(safe-area-inset-bottom) + 222px));max-width:calc(100% - 32px)}.consumable-actions{bottom:max(154px,calc(env(safe-area-inset-bottom) + 134px));flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;max-width:calc(100% - 24px);padding:6px}.consumable-actions button{flex:0 0 auto;min-height:48px}}.consumable-actions{pointer-events:none}.consumable-actions button{pointer-events:auto}@media(max-width:700px){.consumable-actions{left:12px;transform:none;width:calc(100% - 146px);max-width:calc(100% - 146px)}}.interaction-panel{left:24px;bottom:120px;transform:none;min-width:220px;width:250px;max-width:calc(100% - 48px);padding:14px;box-shadow:0 6px 22px #64533e12}.interaction-close{width:44px;height:44px}.interaction-panel strong{padding-right:36px}.in-room .toast{top:24px;bottom:auto;left:50%;padding:8px 14px;max-width:44%;font-size:11px;border-radius:12px;z-index:8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:700px){.interaction-panel{left:12px;right:12px;bottom:max(156px,calc(env(safe-area-inset-bottom) + 140px));width:auto;max-width:none;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 44px 10px 12px;min-height:64px}.interaction-panel strong{padding-right:0;font-size:11px}.interaction-panel small{display:none}.interaction-panel .primary{width:auto;max-width:142px;min-height:44px;padding:8px 10px;font-size:10px}.interaction-panel .interaction-close{right:0;top:50%;transform:translateY(-50%)}.consumable-actions{left:124px;bottom:max(22px,env(safe-area-inset-bottom));width:calc(100% - 248px);max-width:calc(100% - 248px);padding:4px 0}.consumable-actions button{max-width:100%;white-space:normal}.consumable-actions .action-status{font-size:10px;padding:7px}.in-room .bottom-hint{display:none}.in-room .toast{top:66px;left:16px;right:16px;transform:none;max-width:none;width:auto;padding:6px 10px;font-size:10px}}@media(max-width:700px){.consumable-actions{left:136px;width:calc(100% - 272px);max-width:calc(100% - 272px);min-width:0}.consumable-actions .reading-action{min-width:0;width:100%}}@media(min-width:701px){.interaction-panel{bottom:176px}}@media(max-width:700px){.consumable-actions button{padding:8px 6px}}
