@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-ext-400-normal-BtiwyxMk.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-400-normal-BjWJ59Pq.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2) format("woff2"),url(/assets/dm-sans-latin-400-normal-BwCSEQnW.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-ext-500-normal-BJfUCQsA.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-500-normal-DR84L5F-.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2) format("woff2"),url(/assets/dm-sans-latin-500-normal-Dr3UlScf.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-ext-600-normal-4vooXBpG.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-600-normal-DRtaDpgU.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2) format("woff2"),url(/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--glass: rgba(33, 27, 22, .62);--glass-strong: rgba(30, 25, 20, .82);--line: rgba(255, 238, 210, .16);--ink: #f6ecdc;--muted: #cdbda5;--accent: #e2b071;--warm: #ff9f55;--glow-rgb: 255, 220, 150;--paper: #f4ede0;--paper-ink: #3e3227;--paper-muted: #6f604f;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px);font-family:DM Sans,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,sans-serif;-webkit-font-smoothing:antialiased;color:var(--ink)}html[lang=ja]{font-family:DM Sans,-apple-system,BlinkMacSystemFont,Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic,Noto Sans JP,Noto Sans CJK JP,sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#211c17;touch-action:none;-webkit-user-select:none;user-select:none}button,input,select{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}svg{flex-shrink:0}#app{position:fixed;inset:0}#app canvas{display:block;width:100%;height:100%;outline:none}.hud{position:fixed;inset:0;pointer-events:none;z-index:10}.hud>*{pointer-events:auto}.hud .labels,.hud .glow-overlay,.hud .heat-overlay,.hud .center-top,.hud .chips,.hud .hint{pointer-events:none}.pill{background:var(--glass);border:1px solid var(--line);border-radius:999px;backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);box-shadow:0 8px 30px #0a060240}.top{position:absolute;top:calc(14px + var(--safe-t));left:calc(14px + var(--safe-l));right:calc(14px + var(--safe-r));display:flex;justify-content:space-between;gap:10px;pointer-events:none}.top>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:8px;height:48px;padding:0 16px 0 14px;border:1px solid var(--line);font-size:17px;font-weight:600;letter-spacing:.5px}.brand svg{width:22px;height:22px;color:var(--accent)}.brand small{font-size:13px;font-weight:500;color:var(--muted);letter-spacing:0}.brand i{font-style:normal;color:var(--muted);font-size:12px;margin-left:2px}.tools{display:flex;align-items:center;height:48px;padding:0 4px}.tool{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:44px;height:44px;padding:0 10px;border:0;border-radius:999px;background:transparent}.tool svg{width:21px;height:21px}.tool:hover{background:#fff0d714}#people-count{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}.offline #people-btn{opacity:.5}.chips{position:absolute;top:calc(72px + var(--safe-t));right:calc(14px + var(--safe-r));display:flex;flex-direction:column;align-items:flex-end;gap:6px}.chip{display:flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-size:12.5px;font-variant-numeric:tabular-nums;color:var(--ink)}.chip svg{width:15px;height:15px;color:var(--accent)}.chip[hidden]{display:none}.chip.routine{pointer-events:auto;flex-direction:column;align-items:stretch;gap:7px;width:236px;padding:10px 12px 11px;border-radius:18px;text-align:left;transition:box-shadow 1.5s}.chip.routine.glow{box-shadow:0 0 0 1px rgba(var(--glow-rgb),.45),0 0 22px rgba(var(--glow-rgb),.35)}.routine .steps{display:flex;justify-content:space-between;gap:4px}.routine .steps button{position:relative;display:flex;flex:1;flex-direction:column;align-items:center;gap:3px;min-height:44px;padding:5px 2px 4px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-size:11px;letter-spacing:-.2px;opacity:.6;transition:opacity .4s,background .4s,color .4s}.routine .steps button:hover{opacity:1;background:#fff0d71a}.routine .steps button svg{width:18px;height:18px;color:currentColor}.routine .steps button.done{opacity:.9;color:var(--accent)}.routine .steps button.done:after{content:"";position:absolute;top:3px;right:8px;width:6px;height:6px;border-radius:50%;background:var(--accent)}.routine .steps button.now{opacity:1;color:#fff7e8;background:#e2b07138;font-weight:600}.routine .steps button.now:before{content:"";position:absolute;inset:0;border-radius:inherit;background:#e2b07147;animation:step-pulse 2.6s ease-in-out infinite}.routine .steps button span,.routine .steps button svg{position:relative}@keyframes step-pulse{0%,to{opacity:0}50%{opacity:1}}.routine .now{display:flex;flex-direction:column;gap:2px}.routine .now b{font-size:13px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.routine .now span{font-size:11.5px;line-height:1.45;color:var(--muted)}.routine .orb-row{display:flex;align-items:center;gap:7px;padding-top:2px;border-top:1px solid rgba(255,238,210,.1);font-size:11.5px;color:var(--muted)}.routine .orb-row span{flex:1}.routine .orb{width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff2d6,#e2b071 55%,#8a5a2c);opacity:.25;transition:opacity .8s,box-shadow .8s,transform .8s}.routine .orb[data-level="1"]{opacity:.5;box-shadow:0 0 6px rgba(var(--glow-rgb),.35)}.routine .orb[data-level="2"]{opacity:.8;box-shadow:0 0 10px rgba(var(--glow-rgb),.6);animation:orb-pulse 1.8s ease-in-out infinite}.routine .orb[data-level="3"]{opacity:1;transform:scale(1.25);box-shadow:0 0 0 3px #ffecc440,0 0 18px rgba(var(--glow-rgb),.95);animation:orb-pulse-big 2.6s ease-in-out infinite}@keyframes orb-pulse-big{50%{transform:scale(1.45)}}.routine.glow .orb-row span{color:#ffe9c4;font-weight:600}@keyframes orb-pulse{50%{transform:scale(1.12)}}.routine small{font-size:11px;color:var(--accent);white-space:nowrap}.guide-steps{margin:6px 0 10px;padding-left:20px}.guide-steps li{margin:4px 0;line-height:1.5}.center-top{position:absolute;top:calc(78px + var(--safe-t));left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;width:min(560px,calc(100% - 28px))}.banner{pointer-events:auto;display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 8px 8px 16px;border-radius:999px;border:1px solid rgba(255,190,120,.4);background:#3c2212c7;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font-size:13.5px;text-align:left}.banner[hidden]{display:none}.banner .dot{width:7px;height:7px;border-radius:50%;background:var(--warm);box-shadow:0 0 10px var(--warm);animation:breathe 1.6s ease-in-out infinite}.banner b{margin-left:4px;padding:7px 13px;border-radius:999px;background:var(--accent);color:#2e1f12;font-weight:600;font-size:12.5px;white-space:nowrap}.banner:disabled{padding-right:16px;cursor:default}.toasts{display:flex;flex-direction:column;align-items:center;gap:6px}.toast{padding:10px 18px;font-size:13.5px;line-height:1.4;text-align:center;animation:toast-in .35s ease both;transition:opacity .5s,transform .5s}.toast.out{opacity:0;transform:translateY(-6px)}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}}@keyframes breathe{50%{opacity:.35}}.hint{position:absolute;left:50%;bottom:calc(104px + var(--safe-b));transform:translate(-50%);margin:0;padding:7px 14px;border-radius:999px;background:#14100c6b;color:var(--muted);font-size:12px;white-space:nowrap;transition:opacity 1s}.hint.gone{opacity:0}.actions{position:absolute;left:50%;bottom:calc(16px + var(--safe-b));transform:translate(-50%);display:flex;gap:4px;padding:6px;border-radius:26px}.actions button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:76px;height:66px;padding:6px 10px;border:0;border-radius:20px;background:transparent;font-size:12.5px;line-height:1}.actions button svg{width:24px;height:24px}.actions button:hover:not(:disabled){background:#fff0d714}.actions button[aria-pressed=true]{background:#ffdcaa29}.actions button:disabled{opacity:.42;cursor:default}.actions kbd{position:absolute;top:6px;right:8px;font:500 9.5px/1 DM Sans,sans-serif;color:var(--muted);opacity:.7}.actions .cd{position:absolute;left:14px;right:14px;bottom:5px;height:2px;border-radius:2px;background:var(--accent);transform-origin:left;transform:scaleX(var(--cd, 0));opacity:.9}.labels{position:absolute;inset:0;overflow:hidden}.label{position:absolute;left:0;top:0;display:flex;align-items:center;gap:5px;padding:4px 10px 4px 5px;border-radius:999px;background:#faf3e6e0;color:#3a2e24;font-size:12px;white-space:nowrap;opacity:0;transition:opacity .3s;will-change:transform}.label:not(:has(b)){padding-left:10px}.label b{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#6c5843;color:#fff4e3;font-size:10px;font-weight:600}.label.show{opacity:1}.label.glow{box-shadow:0 0 0 2px rgba(var(--glow-rgb),.5),0 0 18px rgba(var(--glow-rgb),.6)}.label.place{padding:5px 11px;background:#302014cc;color:#ffe6bd;border:1px solid rgba(var(--glow-rgb),.4);font-weight:600;box-shadow:0 6px 18px #0a06024d}.label.place.show.glow{animation:breathe 2.2s ease-in-out infinite;box-shadow:0 0 0 2px rgba(var(--glow-rgb),.35),0 0 16px rgba(var(--glow-rgb),.45)}.glow-overlay{position:absolute;inset:0;opacity:0;background:radial-gradient(ellipse at 50% 45%,#fff8e100 35%,#ffecc438 75%,#ffe2aa6b);mix-blend-mode:screen;transition:opacity 2s}.heat-overlay{position:absolute;inset:0;opacity:0;background:radial-gradient(ellipse at 50% 60%,#ffa05000 20%,#ff8c3c59)}.heat-overlay.on{animation:heat 2.2s ease-out}@keyframes heat{0%{opacity:0}18%{opacity:1}to{opacity:0}}.sheet{width:min(440px,calc(100% - 24px));max-height:min(86dvh,760px);padding:22px 22px 26px;border:0;border-radius:22px;background:var(--paper);color:var(--paper-ink);box-shadow:0 30px 80px #0a060273;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-user-select:text;user-select:text}.sheet::backdrop{background:#140e0973;backdrop-filter:blur(3px)}.sheet header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.sheet h2{margin:0;font-size:19px;font-weight:600}.sheet h3{margin:0;font-size:15px;font-weight:600}.sheet h4{margin:0;font-size:14px;font-weight:600}.sheet p{margin:3px 0 0;color:var(--paper-muted);font-size:12.5px;line-height:1.6}.sheet .tool:hover{background:#3c281412}.sheet section{padding:12px 0;border-top:1px solid #e3d8c6}.sheet .row{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:48px}.sheet .channel{padding:4px 0 8px}.sheet .channel.off input{opacity:.4}.sheet input[type=range]{width:100%;accent-color:#a2703f;height:28px}.sheet select{min-height:40px;padding:0 10px;border:1px solid #d5c6ae;border-radius:10px;background:#fbf7ef;color:var(--paper-ink)}.sheet details{border-top:1px solid #e3d8c6;padding:12px 0 2px}.sheet summary{min-height:32px;font-size:14px;font-weight:600;cursor:pointer}.sheet details p{margin:6px 0}.sheet a{color:#8a5a2c}.switch{position:relative;flex-shrink:0;width:50px;height:30px;border:0;border-radius:999px;background:#cdbfa8;transition:background .2s}.switch:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .2s}.switch[aria-checked=true]{background:#9c6a3a}.switch[aria-checked=true]:after{transform:translate(20px)}.switch.small{width:44px;height:26px}.switch.small:after{width:20px;height:20px}.switch.small[aria-checked=true]:after{transform:translate(18px)}#people-list{list-style:none;margin:4px 0 10px;padding:0}#people-list li{display:flex;align-items:center;gap:8px;min-height:44px;border-bottom:1px solid #ebe1d1;font-size:14px}#people-list small{margin-left:auto;color:var(--paper-muted);font-size:12px}#people-list .me{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#6c5843;color:#fff4e3;font-size:10.5px}.note{font-size:12px}.room-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;margin-top:14px}.room-list button{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-height:58px;padding:10px 12px;border:1px solid #ddd0bb;border-radius:14px;background:#fbf7ef;color:var(--paper-ink);text-align:left}.room-list button span{color:var(--paper-muted);font-size:12px}.room-list button[aria-current=true]{border-color:#9c6a3a;background:#f3e5cf}.room-list button:disabled:not([aria-current=true]){opacity:.5}@media(max-width:560px){.top{top:calc(10px + var(--safe-t));left:calc(10px + var(--safe-l));right:calc(10px + var(--safe-r))}.brand{height:44px;padding:0 12px;font-size:15px;gap:6px}.brand svg{width:19px;height:19px}.tools{height:44px;padding:0 2px}.tool{min-width:40px;height:40px;padding:0 8px}.chips{top:calc(62px + var(--safe-t));right:calc(10px + var(--safe-r))}.center-top{top:calc(64px + var(--safe-t))}.actions{bottom:calc(10px + var(--safe-b));padding:5px;gap:2px;max-width:calc(100% - 16px)}.actions button{min-width:0;width:76px;height:62px;padding:6px 4px;font-size:11.5px}.hint{bottom:calc(86px + var(--safe-b));font-size:11px;max-width:calc(100% - 24px);white-space:normal;text-align:center}.toast{font-size:12.5px;padding:9px 14px}.chip{font-size:11.5px;padding:6px 10px}.chip.routine{width:200px;padding:8px 10px 9px;gap:6px}.routine .steps button{font-size:10px;padding:4px 1px 3px}.routine .steps button svg{width:16px;height:16px}.routine .now b{font-size:12px}.routine .now span{font-size:11px}}@media(max-width:360px){.brand-name{display:none}.actions button{width:68px}}@media(max-height:460px)and (orientation:landscape){.actions{left:auto;right:calc(10px + var(--safe-r));transform:none;flex-direction:column;bottom:calc(10px + var(--safe-b))}.actions button{width:64px;height:54px}.hint{display:none}.center-top{top:calc(10px + var(--safe-t));width:min(420px,55%)}.chips{top:auto;bottom:calc(12px + var(--safe-b));right:auto;left:calc(12px + var(--safe-l));align-items:flex-start}}@media(prefers-reduced-motion:reduce){.toast,.banner .dot,.heat-overlay.on{animation:none!important}}.sheet .pick-title{margin:18px 0 8px}.chips-row{display:flex;flex-wrap:wrap;gap:8px}.chips-row button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:44px;padding:8px 14px;border:1px solid #d8c9b1;border-radius:14px;background:#fbf7ef;color:var(--paper-ink);font-size:14px}.chips-row button small{color:var(--paper-muted);font-size:11px}.chips-row button[aria-pressed=true]{border-color:#9c6a3a;background:#f0dfc4;box-shadow:inset 0 0 0 1px #9c6a3a}.sheet .primary{width:100%;min-height:50px;margin-top:20px;border:0;border-radius:16px;background:#6b4a2d;color:#fff4e3;font-size:15px;font-weight:600}
