:root{--bg:#16141c;--bg-elevated:#211e29;--bg-card:#262230;--line:#3a3546;--text:#f3eee6;--text-muted:#a69fb2;--lamp:#ffcf7a;--lamp-soft:#ffcf7a2e;--accent:#f2a7c3;--focus:#7fd49a;--break:#ffbf69;--idle:#b3abc0;--danger:#e5484d;--radius:12px;color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;font-family:Pretendard Variable,Pretendard,Apple SD Gothic Neo,Malgun Gothic,system-ui,sans-serif}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;margin:0}button,input{font:inherit;color:inherit}h1,h2{margin:0}.muted{color:var(--text-muted)}.small{font-size:.82rem}.inline{align-items:center;gap:6px;display:inline-flex}:focus-visible{outline:2px solid var(--lamp);outline-offset:2px}.button{border:1px solid var(--line);background:var(--bg-elevated);cursor:pointer;border-radius:999px;padding:8px 16px;transition:background .15s,transform .15s}.button:hover:not(:disabled){background:#2d2938}.button:active:not(:disabled){transform:scale(.97)}.button:disabled{opacity:.45;cursor:not-allowed}.button.primary{background:var(--lamp);border-color:var(--lamp);color:#2a2116;font-weight:700}.button.primary:hover:not(:disabled){background:#ffd994}.button.small{padding:4px 12px;font-size:.85rem}.button.large{padding:12px 28px;font-size:1.05rem}.link-button{color:var(--lamp);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.icon-button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:1rem}.icon-button:hover{background:var(--bg-elevated);color:var(--text)}input[type=text],input:not([type]),input[type=number]{border:1px solid var(--line);background:#1b1922;border-radius:8px;min-width:0;padding:8px 10px}input[type=number]{width:76px}input[aria-invalid=true]{border-color:var(--danger)}.page-loading{min-height:100vh;color:var(--text-muted);place-items:center;display:grid}.eyebrow{color:var(--lamp);letter-spacing:.04em;margin:0 0 8px;font-size:.85rem;font-weight:700}.home{--ease:cubic-bezier(.2, .8, .2, 1);--glass:#ffffff0a;--glass-line:#ffffff14;min-height:100vh;overflow-x:clip}.rise{animation:rise .8s var(--ease) both;animation-delay:var(--delay,0s)}@keyframes rise{0%{opacity:0;transform:translateY(18px)}}.home-nav{z-index:10;-webkit-backdrop-filter:saturate(160%)blur(16px);backdrop-filter:saturate(160%)blur(16px);background:#16141cb8;border-bottom:1px solid #ffffff0f;position:sticky;top:0}.home-nav-inner{justify-content:space-between;align-items:center;max-width:1200px;height:64px;margin:0 auto;padding:0 24px;display:flex}.brand{letter-spacing:-.02em;align-items:center;gap:10px;font-size:1.15rem;font-weight:800;display:inline-flex}.brand-mark{background:radial-gradient(circle at 50% 40%, #fff4d0 0 22%, var(--lamp) 48%, #ffcf7a26 72%);border-radius:50%;width:22px;height:22px;box-shadow:0 0 18px #ffcf7a8c}.nav-link{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:10px;padding:8px 14px;font-size:.92rem;font-weight:600;transition:background .2s,color .2s}.nav-link:hover{color:var(--text);background:#ffffff0f}.hero{isolation:isolate;align-items:center;min-height:calc(100vh - 64px);padding:clamp(40px,6vh,72px) 24px clamp(56px,8vh,96px);display:grid;position:relative}.hero:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(560px circle at var(--mx,72%) var(--my,30%), #ffcf7a17, transparent 65%), radial-gradient(800px 500px at 85% 15%, #f2a7c312, transparent 70%), radial-gradient(700px 500px at 0% 100%, #7f8cd40f, transparent 70%);position:absolute;inset:0}.hero-inner{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);align-items:center;gap:clamp(40px,5vw,88px);width:100%;max-width:1200px;margin:0 auto;display:grid}.hero-copy{grid-template-columns:minmax(0,1fr);gap:32px;max-width:540px;display:grid}.hero-badge{color:var(--lamp);background:#ffcf7a14;border:1px solid #ffcf7a38;border-radius:999px;align-items:center;gap:8px;margin:0 0 20px;padding:6px 14px 6px 12px;font-size:.85rem;font-weight:600;display:inline-flex}.live-dot{background:var(--focus);border-radius:50%;flex-shrink:0;width:8px;height:8px;position:relative}.live-dot:after{content:"";background:var(--focus);border-radius:50%;animation:2s ease-out infinite pulse;position:absolute;inset:0}@keyframes pulse{to{opacity:0;transform:scale(2.8)}}.intro h1{letter-spacing:-.035em;font-size:clamp(2.4rem,4.2vw,3.5rem);font-weight:800;line-height:1.18}.highlight{background:linear-gradient(90deg, #ffe6b3, var(--lamp) 45%, var(--accent));color:#0000;-webkit-background-clip:text;background-clip:text}.intro .lead{margin-top:18px;font-size:1.06rem}.lead{color:var(--text-muted);margin:0;line-height:1.7}.plan-panel{border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#ffffff0f,#ffffff06);border-radius:24px;grid-template-columns:minmax(0,1fr);gap:14px;padding:24px;display:grid;box-shadow:0 24px 60px #00000059}.plan-loading{min-height:240px;color:var(--text-muted);place-items:center}.plan-head h2{letter-spacing:-.02em;margin-bottom:6px;font-size:1.25rem}.plan-head p{margin:0}.plan-add{border:1px solid var(--line);background:#13111a;border-radius:16px;align-items:center;gap:4px;padding:6px 6px 6px 16px;transition:border-color .2s,box-shadow .2s;display:flex}.plan-add:focus-within{border-color:#ffcf7a99;box-shadow:0 0 0 4px #ffcf7a1f}.home .plan-add input{background:0 0;border:none;border-radius:0;outline:none;padding:10px 0}.plan-add>input{flex:1;min-width:0}.plan-minutes{border-left:1px solid var(--line);color:var(--text-muted);white-space:nowrap;align-items:center;gap:4px;padding:0 12px;font-size:.9rem;display:inline-flex}.home .plan-minutes input{text-align:right;appearance:textfield;width:42px}.home .plan-minutes input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.home .plan-minutes input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.plan-minutes.compact{border:1px solid var(--line);background:#13111a;border-radius:10px;padding:2px 10px}.home .plan-minutes.compact input{background:0 0;border:none;padding:6px 0}.add-button{background:var(--lamp);color:#2a2116;cursor:pointer;border:none;border-radius:12px;flex-shrink:0;width:42px;height:42px;font-size:1.5rem;font-weight:600;line-height:1;transition:background .2s,transform .15s}.add-button:active:not(:disabled){transform:scale(.92)}.add-button:disabled{color:var(--text-muted);cursor:not-allowed;background:#ffffff12}.plan-group h3{margin:4px 0 8px;font-size:.92rem}.home .plan-list{gap:6px;margin:0}.home .plan-list li{animation:item-in .35s var(--ease);background:#ffffff09;border:1px solid #ffffff0d;border-radius:14px;flex-wrap:nowrap;padding:10px 10px 10px 14px;transition:background .2s}.home .plan-list li:hover{background:#ffffff0f}@keyframes item-in{0%{opacity:0;transform:translateY(-6px)scale(.98)}}.home .plan-item-title{flex:auto;min-width:0}.plan-bullet{border:2px solid var(--lamp);border-radius:50%;flex-shrink:0;width:10px;height:10px}.plan-bullet.carry{border-color:var(--accent)}.remove-button,.text-button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;transition:background .2s,color .2s}.remove-button{border-radius:50%;width:30px;height:30px;font-size:1.2rem;line-height:1}.remove-button:hover{color:#ff8a8e;background:#e5484d26}.text-button{white-space:nowrap;border-radius:8px;padding:6px 10px;font-size:.85rem}.text-button:hover{color:var(--text);background:#ffffff0f}.home .empty{border:1.5px dashed #ffffff1a;border-radius:14px;padding:18px;font-size:.92rem}.enter-button{border-radius:16px;justify-content:center;align-items:center;gap:10px;width:100%;margin-top:4px;padding:16px;display:flex;box-shadow:0 12px 32px #ffcf7a38}.plan-session{gap:6px;display:grid}.plan-session-note{margin:0}.plan-session .stepper-value{text-align:center;white-space:nowrap;min-width:6.2em}.resume-room,.resume-choose{border:1px solid var(--line);background:#ffffff09;border-radius:16px;grid-template-columns:minmax(0,1fr);gap:12px;padding:16px;display:grid}.resume-actions{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.resume-actions .enter-button{margin-top:0}.resume-choose p{margin:0}.resume-finish{justify-self:center}.enter-button:disabled{opacity:1;color:var(--text-muted);box-shadow:none;background:#ffffff12;border-color:#0000}.enter-meta{background:#2a21161f;border-radius:999px;padding:2px 10px;font-size:.85rem;font-weight:600}.demo{perspective:1400px;animation:rise 1s var(--ease) .2s both;gap:40px;display:grid}.demo-stage{transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transform-style:preserve-3d;transition:transform .5s var(--ease);position:relative}.demo-frame{border:1px solid var(--glass-line);background:#0d0c10;border-radius:20px;overflow:hidden;box-shadow:0 40px 80px #00000080,0 0 120px #ffcf7a14}.demo-bar{background:#000;grid-template-columns:1fr auto 1fr;align-items:center;padding:10px 14px;font-size:.8rem;display:grid}.demo-dots{gap:6px;display:flex}.demo-dots i{background:#ffffff29;border-radius:50%;width:9px;height:9px}.demo-timer{font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:700}.demo-live{color:var(--focus);justify-self:end;align-items:center;gap:8px;font-weight:600;display:inline-flex}.demo-grid{grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.demo-grid .seat{aspect-ratio:16/11}.float-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#1e1b25d1;border:1px solid #ffffff1a;border-radius:16px;align-items:center;gap:10px;padding:10px 16px 10px 10px;font-size:.8rem;animation:6s ease-in-out infinite float;display:flex;position:absolute;transform:translateZ(60px);box-shadow:0 16px 40px #00000073}.float-card strong{font-size:.88rem;display:block}.float-card small{color:var(--text-muted)}.float-done{bottom:-22px;right:28px}.float-lamp{animation-delay:-3s;top:12%;right:-28px}@keyframes float{50%{translate:0 -10px}}.float-icon{border-radius:50%;flex-shrink:0;place-items:center;width:34px;height:34px;display:grid}.float-icon.check{color:var(--focus);background:#7fd49a2e;font-weight:800}.float-icon.lamp-icon{background:radial-gradient(circle, #fff4d0 0 18%, var(--lamp) 40%, #ffcf7a2e 72%);box-shadow:0 0 18px #ffcf7a80}.mate-notice{background:var(--glass);color:var(--text-muted);border:1px solid #ffffff0f;border-radius:14px;margin:0;padding:12px 16px;font-size:.86rem;line-height:1.6}.mate-notice strong{color:var(--text)}.how{background:linear-gradient(#0000,#ffcf7a08);border-top:1px solid #ffffff0d;padding:clamp(72px,12vh,140px) 24px}.how-inner{text-align:center;max-width:1200px;margin:0 auto}.section-eyebrow{color:var(--lamp);margin:0 0 12px;font-size:.92rem;font-weight:700}.how h2{letter-spacing:-.03em;font-size:clamp(1.8rem,3.2vw,2.6rem);font-weight:800;line-height:1.3}.steps{text-align:left;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:56px 0 48px;padding:0;list-style:none;display:grid}[data-reveal]{opacity:0;transition:opacity .8s var(--ease) var(--delay,0s), transform .8s var(--ease) var(--delay,0s);transform:translateY(28px)}[data-reveal].is-revealed{opacity:1;transform:none}.step{background:var(--glass);transition:opacity .8s var(--ease) var(--delay,0s), transform .8s var(--ease) var(--delay,0s), translate .3s var(--ease), border-color .3s, background .3s;border:1px solid #ffffff12;border-radius:24px;padding:28px;position:relative}.step:hover{background:#ffffff0f;border-color:#ffcf7a4d;translate:0 -6px}.step-no{color:#ffffff0f;font-size:2.2rem;font-weight:800;position:absolute;top:22px;right:26px}.step-icon{background:#ffcf7a1f;border-radius:14px;place-items:center;width:48px;height:48px;display:grid}.step-icon svg{fill:none;width:24px;height:24px;stroke:var(--lamp);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.step h3{margin:20px 0 8px;font-size:1.15rem}.step p{color:var(--text-muted);margin:0;font-size:.95rem;line-height:1.65}.home-footer{text-align:center;color:#6f687c;border-top:1px solid #ffffff0d;padding:32px 24px 40px;font-size:.82rem}@media (width<=1080px){.hero{min-height:0}.hero-inner{grid-template-columns:minmax(0,1fr);max-width:620px}.hero-copy{max-width:none}}@media (width<=760px){.steps{grid-template-columns:1fr}}@media (width<=640px){.home-nav-inner{padding:0 16px}.hero{padding:28px 16px 48px}.intro h1{font-size:2.1rem}.wide-only,.float-card{display:none}.plan-panel{border-radius:20px;padding:18px}.how{padding:64px 16px}.step{padding:22px}}.review{gap:20px;max-width:720px;margin:0 auto;padding:48px 16px 64px;display:grid}.plan-header h1{margin-bottom:8px;font-size:1.8rem}.card{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.card h2{margin-bottom:12px;font-size:1.05rem}.plan-list{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.plan-list li{background:#1f1c27;border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 12px;display:flex}.plan-list li.excluded{opacity:.5}.plan-item-title{word-break:break-all;flex-direction:column;flex:200px;gap:2px;display:flex}.empty{color:var(--text-muted);text-align:center;margin:0;padding:16px 0 4px}.plan-footer{flex-wrap:wrap;justify-content:flex-end;gap:12px;display:flex}.summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.summary-item{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius);gap:6px;padding:16px;display:grid}.summary-item strong{font-size:1.25rem}.summary-label{color:var(--text-muted);font-size:.85rem}@media (width<=640px){.summary{grid-template-columns:1fr}}.review-table{border-collapse:collapse;width:100%;font-size:.92rem}.review-table th,.review-table td{text-align:left;border-bottom:1px solid var(--line);padding:10px 8px}.review-table th,.review-table td:not(:first-child){white-space:nowrap}.review-table td:first-child{word-break:break-all;width:100%}.review-table th{color:var(--text-muted);font-weight:500}.review-table td.over{color:var(--break)}.segmented{border:1px solid var(--line);border-radius:999px;display:inline-flex;overflow:hidden}.segmented label{cursor:pointer;white-space:nowrap;padding:6px 14px;font-size:.88rem}.segmented label.selected{background:var(--lamp);color:#2a2116;font-weight:700}.segmented input{opacity:0;pointer-events:none;position:absolute}.segmented label:focus-within{outline:2px solid var(--lamp)}.modal.modal-wide{width:min(880px,100%)}.modal.modal-xl{width:min(1040px,100%)}.modal-columns{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:20px;display:grid}.modal-column{align-content:start;gap:16px;min-width:0;display:grid}.modal-wide .modal-actions.is-row,.modal-wide>.modal-actions{flex-wrap:wrap;justify-content:flex-end;display:flex}.modal-wide .modal-actions .button{min-width:140px}.modal-wide .modal-cta{justify-self:end;width:auto;min-width:200px}.modal-wide .guide-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.character-columns{grid-template-columns:minmax(0,5fr) minmax(0,6fr)}.character-list-column{max-height:calc(90vh - 120px);padding-right:4px;overflow-y:auto}.modal.timebox-modal{width:min(640px,100%)}.modal.review-modal{width:min(1040px,100%)}.review-columns{grid-template-columns:minmax(220px,3fr) minmax(0,7fr)}.review-columns .summary{grid-template-columns:minmax(0,1fr);align-content:start}@media (width<=760px){.modal-columns,.character-columns,.review-columns,.modal-wide .guide-list{grid-template-columns:minmax(0,1fr)}.character-list-column{max-height:none;overflow:visible}}.review-section-title{margin:0 0 8px;font-size:.95rem}.review-done{text-align:center;justify-items:center;gap:10px;padding:8px 0 4px;display:grid}.review-done p{margin:0}.review-modal.is-done .done-lamp{animation:.6s cubic-bezier(.2,1.4,.4,1) both done-pop}.review-modal.is-done .refresh-message{animation:.5s cubic-bezier(.2,.8,.2,1) .15s both done-rise}@keyframes done-pop{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes done-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.done-progress{background:var(--lamp);transform-origin:0;border-radius:999px;width:160px;height:3px;animation-name:done-countdown;animation-timing-function:linear;animation-fill-mode:both}@keyframes done-countdown{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.done-lamp{background:radial-gradient(circle,#ffcf7ab3,#ffcf7a00 70%);border-radius:50%;width:96px;height:96px}.refresh-message{color:var(--lamp);margin:0;font-size:1.15rem}.room-page{--room-ease:cubic-bezier(.2, .8, .2, 1);background:#0b0a0e;flex-direction:column;height:100vh;display:flex;overflow:hidden}.room-topbar{background:#000;border-bottom:1px solid #ffffff0f;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;min-height:66px;padding:8px 18px;display:grid}.topbar-left{align-items:center;gap:16px;min-width:0;display:flex}.logo{letter-spacing:-.02em;align-items:center;gap:8px;font-weight:800;display:inline-flex}.logo-mark{background:radial-gradient(circle at 50% 40%, #fff4d0 0 22%, var(--lamp) 48%, #ffcf7a26 72%);border-radius:50%;width:16px;height:16px;box-shadow:0 0 12px #ffcf7a80}.focus-count{color:var(--text-muted);white-space:nowrap;background:#ffffff0f;border-radius:999px;align-items:center;gap:8px;padding:5px 12px;font-size:.84rem;display:inline-flex}.focus-count strong{color:var(--focus)}.timebox-chip{color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;background:#ffffff0f;border-radius:999px;align-items:center;padding:5px 12px;font-size:.84rem;display:inline-flex}.timebox-chip.is-over{color:var(--lamp);background:#ffcf7a24}.topbar-timer{text-align:center;justify-items:center;gap:4px;display:grid}.timer-value,.timer-prompt{align-items:center;height:38px;font-weight:700;line-height:1;display:flex}.timer-value{font-variant-numeric:tabular-nums;letter-spacing:.02em;font-size:1.9rem}.timer-prompt{color:var(--text);font-size:1.05rem}.timer-break .timer-value{color:var(--break)}.timer-caption{color:var(--text-muted);white-space:nowrap;align-items:center;gap:8px;max-width:44vw;font-size:.8rem;display:flex}.caption-text{text-overflow:ellipsis;overflow:hidden}.topbar-right{justify-content:flex-end;min-width:0;display:flex}.me-chip{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;background:#ffffff0f;border-radius:999px;padding:5px 12px;font-size:.84rem;overflow:hidden}.my-state,.state-chip{align-items:center;gap:6px;font-size:.8rem;font-weight:700;display:inline-flex}.my-state{background:#ffffff12;border-radius:999px;flex-shrink:0;padding:2px 8px}.dot{background:currentColor;border-radius:50%;width:8px;height:8px}.chip-focus{color:var(--focus)}.chip-break{color:var(--break)}.chip-idle{color:var(--idle)}.banner{color:var(--lamp);text-align:center;background:#4a3a17;padding:6px;font-size:.88rem}.room-body{flex:1;min-height:0;display:flex;position:relative}.seat-grid{flex:1;grid-template-rows:repeat(3,minmax(0,1fr));grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;min-width:0;padding:6px;display:grid}.seat{background:#1c1a22;border-radius:10px;min-width:0;min-height:0;position:relative;overflow:hidden}.seat-empty{color:#5f5a69;background:#141218;place-items:center;font-size:.9rem;display:grid}.seat-me:after{content:"";border:2px solid var(--focus);pointer-events:none;border-radius:10px;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #0006,inset 0 0 24px #7fd49a40}.seat-me.seat-break:after{border-color:var(--break);box-shadow:inset 0 0 24px #ffbf6938}.seat-me.seat-idle:after{border-color:var(--lamp);box-shadow:inset 0 0 24px #ffcf7a33}.scene{--wall:#4b3f55;--wall-dark:#2b2433;background:linear-gradient(180deg, var(--wall) 0%, var(--wall-dark) 100%);transition:filter .6s;position:absolute;inset:0}.tone-rose .scene{--wall:#5c4352;--wall-dark:#33242f}.tone-lilac .scene{--wall:#4c4361;--wall-dark:#2a2438}.tone-peach .scene{--wall:#604a44;--wall-dark:#352824}.tone-sage .scene{--wall:#44514a;--wall-dark:#252d29}.tone-sky .scene{--wall:#3f4a60;--wall-dark:#222838}.tone-sand .scene{--wall:#5a5045;--wall-dark:#322c25}.seat-break .scene,.seat-idle .scene{filter:brightness(.62)saturate(.8)}.window{background:linear-gradient(#1b2240,#2c2f55);border:3px solid #ffffff2e;border-radius:4px;width:26%;height:34%;position:absolute;top:10%;right:8%}.window:after{content:"";background:#ffffff2e;width:2px;position:absolute;top:0;bottom:0;left:50%}.moon{aspect-ratio:1;background:#f6efcf;border-radius:50%;width:18%;position:absolute;top:16%;right:16%;box-shadow:0 0 10px #f6efcf99}.star{opacity:.8;background:#fff;border-radius:50%;width:2px;height:2px;position:absolute}.s1{top:30%;left:18%}.s2{top:62%;left:34%}.s3{top:48%;left:70%}.shelf{background:repeating-linear-gradient(90deg,#8c5f5f 0 10%,#5f7a8c 10% 18%,#c9a46a 18% 27%,#0000 27% 34%) bottom/100% 70% no-repeat;border-bottom:4px solid #ffffff26;width:24%;height:16%;position:absolute;top:18%;left:6%}.plant{background:radial-gradient(at 50% 30%,#5f8f63 0 45%,#0000 46%),radial-gradient(at 30% 55%,#4f7d55 0 35%,#0000 36%),radial-gradient(at 72% 55%,#4f7d55 0 35%,#0000 36%);width:14%;height:34%;position:absolute;bottom:26%;left:4%}.plant:after{content:"";background:#a86f4f;border-radius:0 0 6px 6px;width:50%;height:30%;position:absolute;bottom:-10%;left:25%}.desk{background:linear-gradient(#a57a52 0%,#8a623f 18%,#6e4d31 100%);height:22%;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -2px #ffffff1f}.glow{opacity:0;background:radial-gradient(circle at 40% 70%,#ffd28273,#0000 60%);width:70%;height:90%;transition:opacity .6s;position:absolute;bottom:0;left:-10%}.seat-focus .glow{opacity:1}.lamp{height:46%;position:absolute;bottom:14%;left:6%}.lamp-on{filter:drop-shadow(0 0 8px #ffd88acc)}.scene-image{object-fit:cover;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.seat{container-type:size}.character-wrap{width:min(100cqw,114.667cqh);position:absolute;bottom:0;left:50%;transform:translate(-50%,4%)}.character{aspect-ratio:4/3;position:relative}.character-flipped{transform:scaleX(-1)}.character .frame{opacity:0;-webkit-user-select:none;user-select:none;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.character .frame.is-current{opacity:1}.character .frame.is-standby{display:none}.state-chip,.counts,.name-label,.seat-event{background:#0a090eb8;border-radius:999px;line-height:1.3;position:absolute}.state-chip{padding:4px 10px 4px 8px;top:8px;left:8px}.counts{color:#e8e2ee;padding:4px 10px;font-size:.75rem;top:8px;right:8px}.name-label{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;max-width:calc(100% - 16px);padding:4px 12px 4px 4px;font-size:.84rem;display:inline-flex;bottom:8px;left:8px;overflow:hidden}.name-label:not(:has(.me-badge)){padding-left:12px}.seat-pick{color:#e8e2ee;cursor:pointer;opacity:0;background:#0a090eb8;border:none;border-radius:999px;place-items:center;width:30px;height:30px;padding:0;transition:opacity .15s;display:grid;position:absolute;bottom:8px;right:8px}.seat:hover .seat-pick,.seat-pick:focus-visible{opacity:1}.seat-pick:hover{color:var(--lamp);background:#0a090ecc}@media (hover:none){.seat-pick{opacity:1}}.me-badge{background:var(--lamp);color:#2a2116;border-radius:999px;flex-shrink:0;padding:1px 8px;font-size:.75rem;font-weight:800}.seat-event{white-space:nowrap;animation:seat-event 3.2s var(--room-ease,ease) both;pointer-events:none;border:1px solid #ffffff24;align-items:center;gap:8px;padding:7px 14px 7px 10px;font-size:.85rem;font-weight:700;display:inline-flex;top:22%;left:50%;transform:translate(-50%)}.seat-event-done{color:var(--focus)}.seat-event-lamp{color:var(--lamp)}.event-lamp{background:radial-gradient(circle, #fff4d0 0 22%, var(--lamp) 48%, #ffcf7a33 72%);border-radius:50%;width:14px;height:14px;box-shadow:0 0 10px #ffcf7a99}@keyframes seat-event{0%{opacity:0;translate:0 10px;scale:.9}12%,80%{opacity:1;translate:0;scale:1}to{opacity:0;translate:0 -8px}}.task-panel{background:#18161e;border-left:1px solid #ffffff0f;border-radius:10px 0 0 10px;flex-direction:column;flex-shrink:0;width:320px;min-height:0;display:flex}.panel-header{justify-content:space-between;align-items:center;padding:14px 16px 10px;display:flex}.panel-header h2{font-size:1rem}.icon-button{place-items:center;display:grid}.today-summary{background:#ffffff0a;border:1px solid #ffffff0f;border-radius:14px;gap:10px;margin:0 12px 6px;padding:12px 14px;display:grid}.summary-row{color:var(--text-muted);justify-content:space-between;font-size:.82rem;display:flex}.summary-row strong{color:var(--text);font-size:.95rem}.progress{background:#ffffff14;border-radius:999px;height:6px;overflow:hidden}.progress span{border-radius:inherit;background:linear-gradient(90deg, var(--focus), #b4e8c4);height:100%;transition:width .6s var(--room-ease);display:block}.now-focusing{word-break:break-all;border-top:1px solid #ffffff0f;gap:2px;padding-top:10px;display:grid}.now-label{color:var(--focus);align-items:center;gap:8px;margin-bottom:2px;font-size:.75rem;font-weight:700;display:inline-flex}.task-list{flex:1;margin:0;padding:4px 8px;list-style:none;overflow-y:auto}.task-list::-webkit-scrollbar{width:10px}.modal::-webkit-scrollbar{width:10px}.task-list::-webkit-scrollbar-track{background:0 0}.modal::-webkit-scrollbar-track{background:0 0}.task-list::-webkit-scrollbar-thumb{background:#ffffff1a padding-box padding-box;border:3px solid #0000;border-radius:999px}.modal::-webkit-scrollbar-thumb{background:#ffffff1a padding-box padding-box;border:3px solid #0000;border-radius:999px}.task-list:hover::-webkit-scrollbar-thumb{background-color:#ffffff3d}.modal:hover::-webkit-scrollbar-thumb{background-color:#ffffff3d}@supports not selector(::-webkit-scrollbar){.task-list,.modal{scrollbar-width:thin;scrollbar-color:#ffffff29 transparent}}.task-item{border-radius:10px;padding:4px 8px;transition:background .2s}.task-item:hover{background:#ffffff0a}.task-item.is-focusing{background:#7fd49a1a}.task-item.is-done .task-title{color:var(--text-muted)}.task-main{align-items:center;gap:8px;display:flex}.task-title{text-align:left;cursor:pointer;word-break:break-all;background:0 0;border:none;flex-direction:column;flex:1;gap:2px;min-width:0;padding:6px 0;display:flex}.task-meta{color:var(--text-muted);font-size:.78rem}.badge-focus{color:var(--focus);white-space:nowrap;font-size:.75rem;font-weight:700}.list-divider{color:var(--text-muted);border-top:1px solid #ffffff1a;margin:10px 8px 0;padding:12px 0 4px;font-size:.78rem}.task-detail{background:#00000040;border-radius:10px;gap:8px;margin:4px 0 6px;padding:10px;display:grid}.task-detail dl{grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:.85rem;display:grid}.task-detail dt{color:var(--text-muted)}.task-detail dd{margin:0}.detail-actions{justify-content:flex-end;gap:6px;display:flex}.task-add{border:1px solid var(--line);background:#0f0e13;border-radius:14px;align-items:center;gap:4px;margin:10px 12px 12px;padding:4px 4px 4px 12px;transition:border-color .2s,box-shadow .2s;display:flex}.task-add:focus-within{border-color:#ffcf7a99;box-shadow:0 0 0 3px #ffcf7a1f}.task-add input{background:0 0;border:none;border-radius:0;outline:none;padding:8px 0}.task-add>input{flex:1;min-width:0}.task-add-minutes{border-left:1px solid var(--line);color:var(--text-muted);white-space:nowrap;align-items:center;gap:2px;padding:0 8px;font-size:.85rem;display:inline-flex}.task-add-minutes input{text-align:right;appearance:textfield;width:36px}.task-add-minutes input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.task-add-minutes input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.task-add .add-button{border-radius:10px;place-items:center;width:34px;height:34px;display:grid}.room-page:not(.is-compact) .seat-grid{transition:transform .4s var(--room-ease);flex:0 0 calc(100% - 320px);transform:translate(160px)}.room-page:not(.is-compact).panel-open .seat-grid{transform:none}.room-page:not(.is-compact) .task-panel{visibility:hidden;transition:transform .4s var(--room-ease), visibility 0s linear .4s;position:absolute;top:6px;bottom:6px;right:0;transform:translate(100%)}.room-page:not(.is-compact).panel-open .task-panel{visibility:visible;transition:transform .4s var(--room-ease);transform:none}.room-toolbar{background:#000;border-top:1px solid #ffffff0f;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;min-height:66px;padding:6px 12px;display:grid}.toolbar-group{align-items:center;gap:4px;display:flex}.toolbar-group:last-child{justify-content:flex-end}.tool-button{color:#e6e2ea;cursor:pointer;background:0 0;border:none;border-radius:10px;flex-direction:column;align-items:center;gap:3px;min-width:60px;padding:6px 8px;transition:background .15s,color .15s,transform .15s;display:flex}.tool-button:hover:not(:disabled){background:#1f1d24}.tool-button:active:not(:disabled){transform:scale(.94)}.tool-button.is-active{color:var(--lamp)}.tool-button:disabled{opacity:.35;cursor:not-allowed}.tool-icon{place-items:center;height:22px;display:grid}.tool-label{font-size:.75rem}.start-button{background:var(--lamp);color:#2a2116;cursor:pointer;border:none;border-radius:999px;align-items:center;gap:10px;max-width:min(360px,40vw);padding:8px 20px 8px 14px;transition:background .15s,transform .15s;display:inline-flex;box-shadow:0 6px 20px #ffcf7a40}.start-button:hover:not(:disabled){background:#ffd994}.start-button:active:not(:disabled){transform:scale(.97)}.start-button:disabled{opacity:.5;cursor:not-allowed}.start-text{text-align:left;min-width:0;line-height:1.25;display:grid}.start-text strong{white-space:nowrap;font-size:.95rem}.start-text small{opacity:.75;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.end-button{white-space:nowrap;color:var(--text);cursor:pointer;background:#23202b;border:1px solid #ffffff1a;border-radius:10px;align-items:center;gap:6px;padding:9px 16px;font-weight:700;transition:background .15s;display:inline-flex}.end-button:hover:not(:disabled){background:#2e2a38}.end-button:disabled{opacity:.5}.is-compact .room-topbar{grid-template-columns:1fr auto;min-height:52px;padding:6px 10px}.is-compact .topbar-right,.is-compact .timebox-chip,.is-compact .focus-count{display:none}.is-compact .timer-value,.is-compact .timer-prompt{height:28px}.is-compact .timer-value{font-size:1.4rem}.is-compact .timer-prompt{font-size:.9rem}.is-compact .seat-grid{gap:4px;padding:4px}.is-compact .task-panel{z-index:5;width:min(320px,100%);position:absolute;inset:4px 0 4px auto;box-shadow:-8px 0 24px #00000080}.is-compact .state-chip{padding:2px 6px;font-size:.7rem;top:4px;left:4px}.is-compact .name-label{padding:2px;font-size:.7rem;bottom:4px;left:4px}.is-compact .seat-event{padding:4px 8px;font-size:.72rem}.is-compact .room-toolbar{min-height:56px}.is-compact .tool-button{min-width:44px;padding:4px}.is-compact .tool-label{font-size:.68rem}.is-compact .start-button{flex-shrink:0;max-width:none;padding:8px 14px 8px 10px}.is-compact .toolbar-group{gap:0}.is-compact .start-text small{display:none}.is-compact .end-button{padding:6px 10px;font-size:.82rem}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:20;background:#05040899;grid-template-columns:minmax(0,1fr);place-items:center;padding:16px;animation:.2s ease-out backdrop-in;display:grid;position:fixed;inset:0}.modal{background:#1d1a24;border:1px solid #ffffff14;border-radius:20px;gap:16px;width:min(460px,100%);max-height:90vh;padding:22px;animation:.28s cubic-bezier(.2,.8,.2,1) modal-in;display:grid;overflow-y:auto;box-shadow:0 24px 64px #00000080}@keyframes backdrop-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.97)}}.modal:focus{outline:none}.modal-header{justify-content:space-between;align-items:center;display:flex}.modal-header h2{letter-spacing:-.02em;font-size:1.15rem}.modal-close{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:#ffffff0f;border:none;border-radius:50%;place-items:center;transition:background .15s,color .15s;display:grid}.modal-close:hover{color:var(--text);background:#ffffff1f}.modal-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:4px;display:grid}.modal-actions .button,.modal-cta{border-radius:12px;padding:12px;font-weight:700}.modal-cta{width:100%;margin-top:4px}.guide-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.guide-list li{background:#ffffff09;border:1px solid #ffffff0d;border-radius:14px;grid-template-columns:40px 1fr;gap:14px;padding:12px 14px;display:grid}.guide-icon{width:40px;height:40px;color:var(--lamp);background:#ffcf7a1f;border-radius:12px;place-items:center;display:grid}.guide-list strong{margin:2px 0 4px;font-size:.95rem;display:block}.guide-list p{color:var(--text-muted);margin:0;font-size:.86rem;line-height:1.6}.guide-note{color:#7d768a;margin:0;padding:0 4px;font-size:.78rem;line-height:1.6}.setting-group{background:#ffffff09;border:1px solid #ffffff0d;border-radius:16px;overflow:hidden}.setting-row{cursor:pointer;align-items:center;gap:12px;padding:14px 16px;display:flex}.setting-icon{width:36px;height:36px;color:var(--lamp);background:#ffcf7a1f;border-radius:10px;flex-shrink:0;place-items:center;display:grid}.setting-text{flex:1;gap:2px;min-width:0;display:grid}.setting-text strong{font-size:.95rem}.setting-text small{color:var(--text-muted);font-size:.8rem}.setting-sub{color:var(--text-muted);border-top:1px solid #ffffff0d;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px 12px 64px;font-size:.88rem;transition:opacity .2s;display:flex}.setting-sub.disabled{opacity:.4}.switch{appearance:none;cursor:pointer;background:#3a3546;border-radius:999px;flex-shrink:0;width:46px;height:28px;margin:0;transition:background .2s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .2s cubic-bezier(.2,.8,.2,1);position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.switch:checked{background:var(--lamp)}.switch:checked:after{transform:translate(18px)}.switch:disabled{opacity:.5;cursor:not-allowed}.stepper{border:1px solid var(--line);background:#13111a;border-radius:12px;align-items:center;gap:2px;padding:3px;display:inline-flex}.stepper button{width:30px;height:30px;color:var(--text);cursor:pointer;background:#ffffff0f;border:none;border-radius:9px;place-items:center;display:grid}.stepper button:hover:not(:disabled){background:#ffffff1f}.stepper button:disabled{cursor:not-allowed}.stepper input[type=number]{text-align:right;width:40px;color:var(--text);appearance:textfield;background:0 0;border:none;padding:4px 0;font-weight:700}.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.stepper input[aria-invalid=true]{color:var(--danger)}.stepper-unit{color:var(--text-muted);padding-right:6px}.preview-button{color:var(--lamp);cursor:pointer;background:#ffcf7a1f;border:none;border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font-size:.84rem;font-weight:700;display:inline-flex}.preview-button:hover{background:#ffcf7a33}.toasts{z-index:30;pointer-events:none;gap:8px;width:min(440px,100% - 32px);display:grid;position:fixed;top:76px;left:50%;transform:translate(-50%)}.update-banner{z-index:40;background:#1e1b25f7;border:1px solid #ffcf7a80;border-radius:12px;align-items:center;gap:12px;width:max-content;max-width:calc(100% - 32px);padding:8px 8px 8px 16px;font-size:.9rem;animation:.25s ease-out toast-in;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0006}.update-banner .button{flex-shrink:0;padding:6px 14px}.update-banner-close{width:30px;height:30px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;place-items:center;padding:0;display:grid}.update-banner-close:hover{color:var(--text);background:#ffffff0f}.toast{border:1px solid var(--line);text-align:center;background:#1e1b25f2;border-radius:10px;padding:10px 14px;font-size:.9rem;animation:.25s ease-out toast-in;box-shadow:0 8px 24px #0006}.toast-refresh{color:var(--lamp);border-color:#ffcf7a80}.toast-error{border-color:#e5484d99}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.paired-stack{position:absolute;inset:0}.paired-stack.is-flipped{transform:scaleX(-1)}.character.is-paired{aspect-ratio:auto;position:absolute;inset:0}.character.is-paired .frame{object-fit:cover}.nav-links{gap:4px;display:flex}.character-import{gap:10px;padding:16px;font-size:.88rem;line-height:1.6;display:grid}.character-import p{margin:0}.character-tips{gap:2px;margin:0;padding-left:18px;display:grid}.folder-spec{border:1px solid var(--line);color:#d9d3e3;background:#13111a;border-radius:12px;margin:0;padding:12px 14px;font-size:.78rem;line-height:1.7;overflow-x:auto}.character-import-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.character-import-actions .button{align-items:center;gap:6px;display:inline-flex}.import-report{color:var(--text-muted);border-top:1px solid #ffffff0d;gap:4px;margin:0;padding:10px 16px 14px;font-size:.8rem;list-style:none;display:grid}.import-report li:before{content:"· "}.import-report .is-problem{color:#f0a3a5}.setting-row.is-disabled{cursor:default}.character-list-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;padding:0 4px;display:flex}.character-list{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.character-card{background:#ffffff09;border:1px solid #ffffff0f;border-radius:14px;transition:opacity .2s;overflow:hidden}.character-card.is-off{opacity:.45}.character-preview{aspect-ratio:4/3;background:linear-gradient(#4c4361 0%,#2a2438 100%);position:relative;overflow:hidden;container-type:size}.character-preview .character-wrap{transform:translate(-50%)}.character-picker{gap:14px;display:grid}.character-picker-list{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;max-height:min(60vh,520px);margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.character-picker-item{width:100%;color:inherit;font:inherit;cursor:pointer;background:#1c1a22;border:2px solid #0000;border-radius:10px;gap:6px;padding:0 0 8px;font-size:.84rem;display:grid;overflow:hidden}.character-picker-item>span{text-overflow:ellipsis;white-space:nowrap;padding:0 8px;overflow:hidden}.character-picker-item:hover{border-color:#ffcf7a66}.character-picker-item.is-current{border-color:var(--lamp)}.character-picker-actions{justify-content:flex-end;display:flex}.character-card-body{grid-template-columns:minmax(0,1fr);gap:6px;padding:8px 10px 10px;display:grid}.character-card-title{align-items:center;gap:6px;min-width:0;display:flex}.character-card-title strong{text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;overflow:hidden}.source-badge{color:var(--text-muted);background:#ffffff14;border-radius:999px;flex-shrink:0;padding:1px 7px;font-size:.7rem}.source-badge.source-mine{color:var(--lamp);background:#ffcf7a24}.character-card-actions{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.icon-toggle{width:30px;height:30px;color:var(--text-muted);cursor:pointer;background:#ffffff0f;border:none;border-radius:9px;flex-shrink:0;place-items:center;display:grid}.icon-toggle:hover{color:var(--text);background:#ffffff1f}.icon-toggle.is-on{color:var(--lamp);background:#ffcf7a2e}.icon-toggle.is-on .icon path{fill:currentColor}.frame-ms{min-width:0;color:var(--text-muted);font-variant-numeric:tabular-nums;flex:100%;order:1;align-items:center;gap:6px;font-size:.72rem;display:flex}.frame-ms input{min-width:0;accent-color:var(--lamp);flex:1}.setting-link{width:100%;color:inherit;text-align:left;font:inherit;background:0 0;border:none}.setting-link:hover{background:#ffffff0a}.setting-chevron{color:var(--text-muted);font-size:1.4rem;line-height:1}.seat-grid{justify-content:center;align-items:center;display:flex}.seat-tiles{flex-wrap:wrap;place-content:center;gap:6px;max-width:100%;max-height:100%;display:flex}.is-compact .seat-tiles{gap:4px}.seat-tiles>.seat{width:var(--tile-w,0);height:var(--tile-h,0);flex:none}.stepper-value{text-align:right;min-width:28px;color:var(--text);font-weight:700}.room-size-picker{color:var(--text-muted);justify-content:space-between;align-items:center;gap:12px;font-size:.9rem;display:flex}.room-choice{gap:12px;width:100%;display:grid}.room-mode{width:100%;display:flex}.room-mode label{text-align:center;flex:1}.room-config{gap:10px;display:grid}.room-config-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.room-config-label{gap:2px;min-width:0;display:grid}.room-config-label strong{color:var(--text);font-size:.92rem}.room-config-label small{font-size:.76rem}.room-config-note{margin:0}.room-join{gap:6px;display:grid}.code-input{letter-spacing:.35em;text-align:center;text-transform:uppercase;width:100%;padding:10px 12px;font-size:1.25rem;font-weight:700}.code-status{color:var(--text-muted);margin:0}.code-ready{color:var(--focus)}.code-full,.code-notFound,.code-error{color:#f0a3a5}.setting-room{padding-left:16px;display:block}.code-chip{color:var(--text);cursor:pointer;white-space:nowrap;background:#ffcf7a1a;border:1px solid #ffcf7a59;border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:.8rem;display:inline-flex}.code-chip:hover{background:#ffcf7a2e}.code-chip strong{color:var(--lamp);letter-spacing:.08em}.code-label,.code-waiting{color:var(--text-muted)}.topbar-right{align-items:center;gap:8px}.is-compact .code-waiting,.is-compact .code-label{display:none}.seat-waiting{color:#a69fb2;outline-offset:-6px;background:repeating-linear-gradient(135deg,#ffcf7a0d 0 12px,#0000 12px 24px),#17141d;outline:1px dashed #ffcf7a4d;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.waiting-mark{border:2px dashed #ffcf7a80;border-radius:50%;width:22px;height:22px}button.seat-waiting{font:inherit;cursor:pointer;border:none}button.seat-waiting:hover{background-color:#1d1924}.waiting-code{letter-spacing:.08em;color:var(--lamp);font-size:.78rem}
