*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--f: "Montserrat", sans-serif;--amber: #FF8C32;--white: #F0EAE0;--dim: rgba(240,234,224,.38)}html,body{width:100%;height:100%;overflow:hidden;background:#06040a;font-family:var(--f);color:var(--white)}#game-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;cursor:grab}#game-canvas:active{cursor:grabbing}#cursor{position:fixed;top:0;left:0;width:8px;height:8px;border-radius:50%;background:var(--amber);pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:transform .12s ease,width .2s ease,height .2s ease,opacity .2s;mix-blend-mode:screen;will-change:transform}body.cur-hover #cursor{width:20px;height:20px;opacity:.6}.loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:200;background:#06040a;transition:opacity .6s ease}.loading-screen.fade-out{opacity:0;pointer-events:none}.loading-inner{display:flex;flex-direction:column;align-items:center;gap:18px}.loading-bar{width:160px;height:1px;background:#f0eae01a;border-radius:1px;overflow:hidden}.loading-fill{height:100%;width:0%;background:var(--amber);border-radius:1px;transition:width .4s ease}.loading-label{font-size:.65rem;font-weight:400;letter-spacing:4px;text-transform:uppercase;color:var(--dim)}.room-ui{position:fixed;bottom:0;left:0;right:0;padding:0 48px 40px;display:flex;align-items:flex-end;justify-content:space-between;z-index:100;pointer-events:none;opacity:0;transform:translateY(12px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1)}.room-ui.visible{opacity:1;transform:translateY(0)}.room-ui.hidden{display:none}.rui-left{display:flex;flex-direction:column;gap:20px;pointer-events:none;max-width:340px}.rui-title{font-size:clamp(3.2rem,6.5vw,6rem);font-weight:900;font-style:italic;line-height:.88;letter-spacing:-3px;text-transform:uppercase;color:var(--white);text-shadow:0 2px 40px rgba(0,0,0,.55),0 0 80px rgba(255,140,50,.08)}.rui-todo-section{pointer-events:all;display:flex;flex-direction:column;gap:10px}.rui-todo-input-row{display:flex;align-items:center;gap:8px}.rui-todo-input{flex:1;background:transparent;border:none;border-bottom:1px solid rgba(240,234,224,.18);color:var(--white);font-family:var(--f);font-size:.72rem;font-weight:400;letter-spacing:1px;padding:6px 2px;outline:none;transition:border-color .2s}.rui-todo-input::placeholder{color:var(--dim)}.rui-todo-input:focus{border-bottom-color:var(--amber)}.rui-todo-add{width:28px;height:28px;border-radius:50%;border:1px solid rgba(255,140,50,.35);background:#ff8c3214;color:var(--amber);font-size:1.1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s,transform .15s;flex-shrink:0}.rui-todo-add:hover{background:#ff8c3233;border-color:var(--amber);transform:scale(1.1)}.rui-todo-list{list-style:none;display:flex;flex-direction:column;gap:6px;max-height:120px;overflow-y:auto;scrollbar-width:none}.rui-todo-list::-webkit-scrollbar{display:none}.rui-todo-item{display:flex;align-items:center;gap:8px;font-size:.68rem;font-weight:400;letter-spacing:.5px;color:var(--white);opacity:.8;cursor:pointer;transition:opacity .2s;animation:slideIn .25s cubic-bezier(.22,1,.36,1) both}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:.8;transform:translate(0)}}.rui-todo-item:hover{opacity:1}.rui-todo-item.done{opacity:.32}.rui-todo-item.done .rui-todo-text{text-decoration:line-through}.rui-todo-dot{width:6px;height:6px;border-radius:50%;border:1px solid rgba(255,140,50,.55);flex-shrink:0;transition:background .2s}.rui-todo-item.done .rui-todo-dot{background:#ff8c3266}.rui-todo-text{flex:1}.rui-todo-remove{opacity:0;background:none;border:none;color:var(--dim);font-size:.75rem;cursor:pointer;padding:0 2px;transition:opacity .15s,color .15s}.rui-todo-item:hover .rui-todo-remove{opacity:1}.rui-todo-remove:hover{color:var(--white)}.rui-right{display:flex;flex-direction:column;align-items:flex-end;gap:16px;pointer-events:all}.rui-modes{display:flex;gap:8px}.rui-mode{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 20px;border-radius:50px;border:1px solid rgba(240,234,224,.14);background:#06040a59;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);cursor:pointer;transition:border-color .2s,background .2s,transform .15s;color:var(--white)}.rui-mode:hover{border-color:#ff8c3266;background:#ff8c3214;transform:translateY(-2px)}.rui-mode.active{border-color:var(--amber);background:#ff8c321f;box-shadow:0 0 20px #ff8c322e}.rui-mode-times{font-size:1.1rem;font-weight:700;letter-spacing:-.5px;line-height:1}.rui-mode-times em{font-style:normal;font-weight:400;opacity:.45;margin:0 1px;font-size:.85em}.rui-mode-name{font-size:.58rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;opacity:.45}.rui-bottom-row{display:flex;align-items:center;gap:20px}.rui-hint{font-size:.62rem;font-weight:400;letter-spacing:2px;text-transform:uppercase;color:var(--dim);pointer-events:none}.rui-start{display:flex;align-items:center;gap:10px;padding:12px 28px;border-radius:50px;border:1px solid var(--amber);background:var(--amber);color:#160a00;font-family:var(--f);font-size:.78rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:background .2s,transform .15s cubic-bezier(.34,1.56,.64,1),box-shadow .2s;box-shadow:0 4px 20px #ff64144d}.rui-start:hover{background:#ffb050;border-color:#ffb050;transform:translateY(-2px);box-shadow:0 8px 32px #ff641473}.rui-start:active{transform:scale(.97)}.hud{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:50}.hidden{display:none!important}.hud-top{position:absolute;top:20px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none;background:#06040a61;padding:18px 28px 20px;border-radius:28px;border:1px solid rgba(255,255,255,.07);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 8px 40px #00000073,0 0 0 1px #ff8c320f}.hud-bottom{position:absolute;bottom:28px;left:50%;transform:translate(-50%);display:flex;gap:12px;pointer-events:all}.phase-badge{font-size:.62rem;font-weight:700;letter-spacing:5px;text-transform:uppercase;padding:6px 20px;border-radius:50px;background:#ff8c321a;border:1px solid rgba(255,140,50,.3);color:var(--amber)}.phase-badge.break{background:#64c8ff1a;border-color:#64c8ff4d;color:#90d8ff}.timer-ring-wrap{position:relative;width:200px;height:200px}.timer-ring{width:100%;height:100%;transform:rotate(-90deg)}.ring-bg{fill:none;stroke:#ffffff0f;stroke-width:3.5}@keyframes ring-breathe{0%,to{filter:drop-shadow(0 0 8px rgba(255,140,50,.45))}50%{filter:drop-shadow(0 0 22px rgba(255,140,50,.8))}}@keyframes ring-breathe-break{0%,to{filter:drop-shadow(0 0 8px rgba(100,200,255,.45))}50%{filter:drop-shadow(0 0 22px rgba(100,200,255,.8))}}.ring-progress{fill:none;stroke:var(--amber);stroke-width:3.5;stroke-linecap:round;stroke-dasharray:326.73;stroke-dashoffset:0;transition:stroke-dashoffset 1s linear,stroke .5s ease;animation:ring-breathe 2.8s ease-in-out infinite}.ring-progress.break{stroke:#64c8ff;animation:ring-breathe-break 2.8s ease-in-out infinite}.timer-display{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:2.6rem;font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:-2px;color:var(--white);text-shadow:0 2px 20px rgba(0,0,0,.8)}.colon{opacity:.5;margin:0 2px;animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:.12}}.session-counter{font-size:.65rem;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;color:var(--dim);opacity:.75}.hud-bottom{display:flex;gap:12px;pointer-events:all}.hud-btn{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:#06040a80;border:1px solid rgba(255,255,255,.08);color:#f0eae08c;cursor:pointer;transition:all .2s;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.hud-btn:hover{border-color:#ff8c324d;background:#ff8c321a;color:var(--white)}.task-panel{position:fixed;bottom:40px;left:40px;z-index:60;min-width:200px;max-width:260px;padding:16px 18px;border-radius:16px;background:#06040a8c;border:1px solid rgba(255,255,255,.07);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);pointer-events:all;animation:fadeIn .4s ease both}.task-panel-label{font-size:.55rem;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--amber);margin-bottom:10px;opacity:.8}.task-panel-list{list-style:none;display:flex;flex-direction:column;gap:8px}.task-panel-item{display:flex;align-items:center;gap:10px;cursor:pointer;padding:4px 0;transition:opacity .2s}.task-panel-item:hover{opacity:.85}.task-panel-item.done{opacity:.3}.task-check{width:14px;height:14px;border-radius:4px;border:1px solid rgba(255,140,50,.4);background:transparent;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s}.task-panel-item.done .task-check{background:#ff8c3259;border-color:var(--amber)}.task-check-mark{opacity:0;font-size:.5rem;color:var(--amber);transition:opacity .15s}.task-panel-item.done .task-check-mark{opacity:1}.task-label{font-size:.68rem;font-weight:400;letter-spacing:.3px;color:var(--white);flex:1;transition:text-decoration .1s}.task-panel-item.done .task-label{text-decoration:line-through}.toast{position:fixed;bottom:40px;left:50%;transform:translate(-50%) translateY(10px);font-size:.75rem;font-weight:500;letter-spacing:1px;padding:10px 22px;border-radius:50px;background:#06040abf;border:1px solid rgba(255,255,255,.08);color:var(--white);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:150;opacity:0;pointer-events:none;transition:opacity .35s ease,transform .35s cubic-bezier(.34,1.56,.64,1);white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.done-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:120;background:#06040ab3;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);animation:fadeIn .5s ease both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.done-title{font-size:clamp(2.5rem,6vw,5rem);font-weight:900;font-style:italic;text-transform:uppercase;letter-spacing:-2px;color:var(--white)}.done-msg{font-size:.82rem;font-weight:400;letter-spacing:1px;color:var(--dim);margin-bottom:12px}#flash-overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:300;opacity:0;transition:opacity .3s ease}
