@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Comfortaa:wght@400;500;700&family=Cormorant+Garamond:wght@500;700&family=Quicksand:wght@400;500;600;700&display=swap");:root,:root[data-theme=dark],[data-theme=dark]{--bg:#14101f;--bg-panel:#1d1730;--bg-elevated:#251d3d;--border:#352a52;--text:#ece8f7;--text-dim:#9b91b8;--text-heading:#fff7e0;--text-warm:#ffd56a;--text-on-accent:#fff;--accent:#6d4aff;--accent-soft:#b79cff;--accent-tint:rgba(255,213,106,.1);--accent-tint-strong:rgba(255,213,106,.22);--surface-soft:hsla(0,0%,100%,.04);--surface-overlay:rgba(0,0,0,.3);--danger:#ff6b6b;--card-back:#2a1a4a;--canvas-glow:#221a3a;--shadow-card:0 6px 20px rgba(0,0,0,.45);--shadow-card-drag:0 12px 32px rgba(0,0,0,.6);--radius:14px;--font-base:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-display:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}:root[data-theme=light],[data-theme=light]{--bg:#f6f4fb;--bg-panel:#fff;--bg-elevated:#f0ebfa;--border:#d8d1ea;--text:#2a2342;--text-dim:#6a627f;--text-heading:#1a1530;--text-warm:#7c4a17;--text-on-accent:#fff;--accent:#6d4aff;--accent-soft:#8868ff;--accent-tint:rgba(109,74,255,.1);--accent-tint-strong:rgba(109,74,255,.22);--surface-soft:rgba(109,74,255,.05);--surface-overlay:hsla(0,0%,100%,.6);--danger:#d23838;--card-back:#ece6fb;--canvas-glow:#ebe5fa;--shadow-card:0 6px 18px rgba(80,60,130,.18);--shadow-card-drag:0 14px 30px rgba(80,60,130,.28);--radius:14px;--font-base:"Inter",-apple-system,BlinkMacSystemFont,sans-serif;--font-display:"Inter",-apple-system,BlinkMacSystemFont,sans-serif}:root[data-theme=pink],[data-theme=pink]{--bg:#fff3f7;--bg-panel:#ffe7ef;--bg-elevated:#ffd6e3;--border:#f7b8cf;--text:#58253c;--text-dim:#a26b85;--text-heading:#3d1828;--text-warm:#b04476;--text-on-accent:#fff;--accent:#e25c93;--accent-soft:#ff8fb6;--accent-tint:rgba(226,92,147,.1);--accent-tint-strong:rgba(226,92,147,.22);--surface-soft:rgba(226,92,147,.06);--surface-overlay:hsla(0,0%,100%,.5);--danger:#c43c5f;--card-back:#ffd2e0;--canvas-glow:#ffe1ec;--shadow-card:0 6px 18px rgba(200,80,130,.22);--shadow-card-drag:0 14px 32px rgba(200,80,130,.32);--radius:14px;--font-base:"Comfortaa","Quicksand",-apple-system,sans-serif;--font-display:"Comfortaa","Quicksand",-apple-system,sans-serif}:root[data-theme=beige],[data-theme=beige]{--bg:#f5efe6;--bg-panel:#fbf6ec;--bg-elevated:#ede2cd;--border:#dccdb1;--text:#443425;--text-dim:#8a755a;--text-heading:#2c2014;--text-warm:#8a5a1f;--text-on-accent:#fffaf0;--accent:#b48a4a;--accent-soft:#d3ad7a;--accent-tint:rgba(180,138,74,.12);--accent-tint-strong:rgba(180,138,74,.25);--surface-soft:rgba(120,90,50,.06);--surface-overlay:rgba(255,250,240,.5);--danger:#b04e3a;--card-back:#e6d6b8;--canvas-glow:#f0e6d2;--shadow-card:0 6px 18px rgba(120,90,50,.18);--shadow-card-drag:0 14px 32px rgba(120,90,50,.28);--radius:16px;--font-base:"Quicksand","Inter",-apple-system,sans-serif;--font-display:"Cormorant Garamond","Georgia",serif}:root[data-theme=kids],[data-theme=kids]{--bg:#f1f9ff;--bg-panel:#fff8e8;--bg-elevated:#ffe3c7;--border:#ffc9a8;--text:#2e4060;--text-dim:#6e84a4;--text-heading:#1a2845;--text-warm:#d85077;--text-on-accent:#fff;--accent:#ff7a9b;--accent-soft:#ffb1c1;--accent-tint:rgba(255,122,155,.12);--accent-tint-strong:rgba(255,122,155,.25);--surface-soft:rgba(120,140,200,.06);--surface-overlay:hsla(0,0%,100%,.5);--danger:#e85c5c;--card-back:#ffdfe9;--canvas-glow:#ecf6ff;--shadow-card:0 6px 18px rgba(120,140,200,.22);--shadow-card-drag:0 14px 32px rgba(120,140,200,.32);--radius:18px;--font-base:"Quicksand","Comfortaa",-apple-system,sans-serif;--font-display:"Quicksand","Comfortaa",-apple-system,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);font-family:var(--font-base);-webkit-font-smoothing:antialiased;transition:background-color .2s ease,color .2s ease}h1,h2,h3,h4,h5{font-family:var(--font-display);color:var(--text-heading)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer}.btn{display:inline-flex;align-items:center;gap:6px;border:none;border-radius:10px;padding:9px 16px;font-size:14px;font-weight:600;background:var(--accent);color:#fff;transition:filter .15s ease,transform .05s ease}.btn:hover{filter:brightness(1.1)}.btn:active{transform:translateY(1px)}.btn.secondary{background:var(--bg-elevated);color:var(--text)}.btn.ghost,.btn.secondary{border:1px solid var(--border)}.btn.ghost{background:transparent;color:var(--text-dim)}.btn:disabled{opacity:.5;cursor:not-allowed}.input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px 12px;color:var(--text);font-size:14px}.input:focus{outline:none;border-color:var(--accent)}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:100%;max-width:380px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:28px}.auth-card h1{margin:0 0 4px;font-size:22px}.auth-sub{color:var(--text-dim);margin:0 0 20px;font-size:14px}.field{margin-bottom:14px}.field label{display:block;font-size:13px;color:var(--text-dim);margin-bottom:6px}.error-box{background:hsla(0,100%,71%,.12);border:1px solid var(--danger);color:var(--danger);border-radius:10px;padding:10px 12px;font-size:13px;margin-bottom:14px}.role-toggle{display:flex;gap:8px}.role-toggle button{flex:1 1;padding:10px;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--text-dim);font-size:13px}.role-toggle button.active{border-color:var(--accent);background:var(--bg-elevated);color:var(--text)}.shell{display:flex;flex-direction:column;height:100vh}.topbar{display:flex;align-items:center;gap:16px;padding:10px 18px;background:var(--bg-panel);border-bottom:1px solid var(--border);flex-shrink:0}.topbar .brand{font-weight:700;font-size:16px;letter-spacing:.3px}.topbar .spacer{flex:1 1}.view-switch{display:flex;gap:4px;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:3px}.view-switch a{padding:6px 14px;border-radius:7px;font-size:13px;color:var(--text-dim);text-decoration:none}.view-switch a.active{background:var(--accent);color:#fff}.user-chip{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-dim)}.theme-switch{display:flex;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:2px;gap:0}.theme-switch button{background:transparent;border:none;color:var(--text-dim);font-size:14px;padding:5px 9px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;min-width:30px;transition:background .15s ease,color .15s ease}.theme-switch button:hover{color:var(--text)}.theme-switch button.active{background:var(--accent);color:#fff}.layout{flex:1 1;display:grid;grid-template-columns:250px 1fr 320px;min-height:0;transition:grid-template-columns .2s ease}.layout[data-toolpanel-hidden=true]{grid-template-columns:250px 1fr 0}.layout[data-toolpanel-hidden=true] .toolpanel{display:none}.tech-hint{position:absolute;top:56px;left:12px;z-index:999;background:var(--accent);color:#fff;padding:8px 14px;border-radius:9px;font-size:13px;font-weight:600;box-shadow:0 6px 20px rgba(109,74,255,.4);animation:tech-hint-pulse 1.6s ease-in-out infinite}@keyframes tech-hint-pulse{0%,to{transform:translateX(0)}50%{transform:translateX(6px)}}.tech-select-pulse{animation:tech-select-pulse 1.8s ease-in-out infinite;border-color:var(--accent)}@keyframes tech-select-pulse{0%,to{box-shadow:0 0 0 0 rgba(109,74,255,.5)}50%{box-shadow:0 0 0 6px rgba(109,74,255,0)}}.toolpanel-toggle{position:absolute;top:12px;right:12px;z-index:1000;background:var(--bg-panel);border:1px solid var(--border);color:var(--text);border-radius:9px;padding:7px 12px;font-size:13px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.toolpanel-toggle:hover{border-color:var(--accent);background:var(--bg-elevated)}.today-decks{margin-top:18px;padding:12px;background:var(--bg);border:2px dashed var(--border);border-radius:12px;transition:border-color .15s ease,background .15s ease}.today-decks.drag-over{border-color:var(--accent);background:var(--bg-elevated)}.today-decks-head{font-size:12px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.today-decks-empty{font-size:12px;color:var(--text-dim);text-align:center;padding:8px 4px;line-height:1.4}.today-deck-chip{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;margin-bottom:6px;font-size:12px;color:var(--text)}.today-deck-x{background:transparent;border:none;color:var(--text-dim);font-size:12px;cursor:pointer;padding:0 4px;border-radius:4px}.today-deck-x:hover{color:var(--danger);background:var(--bg-elevated)}.today-pick-toggle{float:right;background:transparent;border:1px solid var(--border);color:var(--text-dim);font-size:11px;padding:2px 7px;border-radius:6px;cursor:pointer;text-transform:none;letter-spacing:0;font-weight:400}.today-pick-toggle:hover{color:var(--text);border-color:var(--accent)}.tech-picker{display:flex;flex-direction:column;gap:4px;margin-bottom:8px;max-height:220px;overflow-y:auto;padding:6px;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px}.tech-pick-chip{background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:6px 10px;font-size:12px;color:var(--text);cursor:-webkit-grab;cursor:grab;transition:border-color .15s,background .15s}.tech-pick-chip:hover{border-color:var(--accent);background:var(--bg-elevated)}.tech-pick-chip.added{opacity:.5}.tech-pick-chip:active{cursor:-webkit-grabbing;cursor:grabbing}.today-tech-chip{display:flex;align-items:center;gap:4px;margin-bottom:6px}.tech-activate{flex:1 1;text-align:left;background:var(--bg-panel);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:6px 10px;font-size:12px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tech-activate:hover{border-color:var(--accent);background:var(--bg-elevated)}.rtc-grid-compact{display:flex;flex-wrap:wrap;gap:6px}.rtc-grid-large{width:100%;height:100%;display:grid;grid-gap:6px;gap:6px;grid-auto-rows:1fr;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.rtc-tile{position:relative;background:#111;border-radius:10px;overflow:hidden;min-height:0;min-width:0}.rtc-tile video{width:100%;height:100%;object-fit:cover;background:#000;display:block}.rtc-grid-large .rtc-tile video{object-fit:contain}.rtc-tile-label{position:absolute;bottom:6px;left:6px;background:rgba(0,0,0,.55);color:#fff;padding:2px 10px;border-radius:999px;font-size:11px}.rtc-tile-empty{display:flex;align-items:center;justify-content:center;color:hsla(0,0%,100%,.55);font-size:12px;min-height:100px;border:1px dashed hsla(0,0%,100%,.2)}.tt-game{display:grid;grid-template-columns:280px 1fr 280px;grid-gap:12px;gap:12px;flex:1 1;min-height:0;padding:12px;background:linear-gradient(135deg,#1a1330,#2e1065);color:#fff;overflow:hidden}@media (max-width:1100px){.tt-game{grid-template-columns:1fr}}.tt-side{display:flex;flex-direction:column;gap:12px;overflow-y:auto}.tt-center{display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 30%,rgba(183,156,255,.12) 0,transparent 60%)}.tt-muted{color:hsla(0,0%,100%,.55);font-size:12px;margin:0}.tt-panel{background:rgba(0,0,0,.3);border:1px solid hsla(0,0%,100%,.1);border-radius:12px;padding:14px}.tt-panel-title{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:hsla(0,0%,100%,.5);margin-bottom:10px}.tt-player{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;font-size:13px;margin-bottom:4px;transition:background .15s ease}.tt-player.active{background:hsla(0,0%,100%,.08)}.tt-dot{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#1a1a2e;font-weight:700;font-size:12px}.tt-inv-count{font-size:11px;opacity:.65}.tt-btn{width:100%;background:linear-gradient(135deg,#7c3aed,#6d4aff);color:#fff;border:none;border-radius:10px;padding:10px;font-size:13px;font-weight:600;cursor:pointer}.tt-btn:disabled{opacity:.4;cursor:not-allowed}.tt-btn:hover:not(:disabled){filter:brightness(1.1)}.tt-card-popup{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);width:min(420px,90%);background:rgba(20,16,31,.97);border:2px solid;border-radius:14px;overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.5);animation:tt-pop .4s ease}@keyframes tt-pop{0%{transform:translate(-50%,20px);opacity:0}to{transform:translate(-50%);opacity:1}}.tt-card-top{padding:6px 14px;font-size:12px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.4)}.tt-card-name{padding:14px 16px 4px;font-size:22px;font-weight:700}.tt-card-hint{padding:0 16px 8px;font-size:14px;color:hsla(0,0%,100%,.8);line-height:1.5}.tt-card-question{padding:12px 16px;background:hsla(0,0%,100%,.05);font-size:13px;color:hsla(0,0%,100%,.9);font-style:italic}.tt-inventory{display:flex;flex-direction:column;gap:6px}.tt-inv-card{display:flex;align-items:center;gap:8px;padding:6px 10px;background:rgba(0,0,0,.2);border:1px solid;border-radius:8px;font-size:12px}.ttg-root{height:100%;flex:1 1;display:flex;flex-direction:column;background:radial-gradient(circle at 50% 20%,rgba(120,80,200,.2) 0,transparent 60%),linear-gradient(135deg,#14101f,#1a1a2e 50%,#0e1428);color:#f0e8d8;font-family:inherit;min-height:0;overflow:hidden}.ttg-top{flex:0 0 auto;height:44px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:linear-gradient(180deg,rgba(120,80,200,.18),transparent);border-bottom:1px solid hsla(43,82%,67%,.18);gap:12px}.ttg-title{font-weight:700;font-size:15px;color:#ffd56a}.ttg-status{font-size:13px;color:#f0e8d8;opacity:.9}.ttg-top-actions{gap:8px}.ttg-bottom,.ttg-top-actions{display:flex;align-items:center}.ttg-bottom{flex:0 0 auto;height:36px;justify-content:center;font-size:11px;border-top:1px solid hsla(43,82%,67%,.12);background:rgba(0,0,0,.25)}.ttg-main{flex:1 1;display:grid;grid-template-columns:220px 1fr 240px;grid-gap:10px;gap:10px;padding:10px;min-height:0}@media (max-width:1100px){.ttg-main{grid-template-columns:1fr;grid-template-rows:auto 1fr auto}}.ttg-left,.ttg-right{background:rgba(20,16,31,.6);border:1px solid hsla(43,82%,67%,.15);border-radius:14px;padding:12px;overflow-y:auto}.ttg-center,.ttg-left,.ttg-right{display:flex;flex-direction:column;gap:10px;min-height:0}.ttg-panel-title{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:#ffd56a;font-weight:700}.ttg-muted{color:hsla(40,44%,89%,.55);font-size:12px}.ttg-player-card{display:flex;align-items:center;gap:8px;padding:8px;background:rgba(0,0,0,.3);border:1px solid transparent;border-radius:10px;transition:border-color .2s ease,background .2s ease}.ttg-player-card.is-turn{border-color:#ffd56a;background:rgba(255,213,106,.08);box-shadow:0 0 12px rgba(255,213,106,.3)}.ttg-player-color{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:18px;flex-shrink:0}.ttg-player-info{flex:1 1;min-width:0}.ttg-player-name{font-weight:600;font-size:13px}.ttg-player-sub{font-size:11px;opacity:.65}.ttg-burn{background:linear-gradient(135deg,#ff7800,#d23000);border:none;border-radius:8px;padding:4px 8px;font-size:14px;font-weight:700}.ttg-btn,.ttg-burn{color:#fff;cursor:pointer}.ttg-btn{background:linear-gradient(135deg,#7c3aed,#6d4aff);border:none;border-radius:10px;padding:8px 14px;font-size:12px;font-weight:600;transition:filter .15s}.ttg-btn:disabled{opacity:.4;cursor:not-allowed}.ttg-btn:hover:not(:disabled){filter:brightness(1.15)}.ttg-btn-primary{background:linear-gradient(135deg,#f0a202,#b87900);color:#fff}.ttg-btn-ghost{background:hsla(0,0%,100%,.05);border:1px solid hsla(43,82%,67%,.25);color:#f0e8d8}.ttg-textarea{width:100%;background:rgba(0,0,0,.3);color:#f0e8d8;border:1px solid hsla(43,82%,67%,.2);border-radius:8px;padding:8px;font-size:12px;font-family:inherit;min-height:56px;resize:vertical;margin-bottom:6px}.ttg-field{position:relative;flex:1 1;min-height:0;background:#000;border:1px solid hsla(43,82%,67%,.3);border-radius:14px;overflow:hidden}.ttg-field-bg{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ttg-token{position:absolute;transform:translate(-50%,-50%);width:38px;height:38px;border-radius:50%;border:3px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;font-size:18px;cursor:default;transition:width .15s,height .15s;z-index:5}.ttg-token.is-turn{width:46px;height:46px;border-color:#ffd56a;box-shadow:0 0 16px rgba(255,213,106,.7)}.ttg-token.is-draggable{cursor:-webkit-grab;cursor:grab;touch-action:none}.ttg-token.is-draggable:active{cursor:-webkit-grabbing;cursor:grabbing}.ttg-token-name{top:100%;margin-top:4px;background:rgba(0,0,0,.75);color:#fff;padding:2px 8px;border-radius:999px;font-size:10px;white-space:nowrap;pointer-events:none}.ttg-dice-anchor,.ttg-token-name{position:absolute;left:50%;transform:translateX(-50%)}.ttg-dice-anchor{bottom:20px;z-index:10}.ttg-btn-dice{font-size:16px;padding:14px 24px;background:linear-gradient(135deg,#ffd56a,#f0a202);color:#1a1330;font-weight:800;box-shadow:0 6px 20px rgba(255,213,106,.4)}.ttg-dice{width:80px;height:80px;background:#fff;color:#1a1a2e;border-radius:14px;display:grid;place-items:center;font-size:44px;font-weight:900;box-shadow:0 6px 24px rgba(0,0,0,.6)}.ttg-dice.rolling{animation:ttg-dice-spin .9s ease-out}@keyframes ttg-dice-spin{0%{transform:rotate(0) scale(1)}50%{transform:rotate(540deg) scale(1.2)}to{transform:rotate(2turn) scale(1)}}.ttg-open-card{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;gap:16px;background:rgba(20,16,31,.96);border:3px solid;border-radius:16px;padding:14px;z-index:20;max-width:80%;max-height:85%;animation:ttg-card-pop .5s ease-out;box-shadow:0 20px 60px rgba(0,0,0,.7)}@keyframes ttg-card-pop{0%{transform:translate(-50%,-50%) scale(.5);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.ttg-open-card-img{width:260px;height:auto;border-radius:12px;display:block;object-fit:cover}.ttg-open-card-meta{display:flex;flex-direction:column;gap:8px;min-width:200px;max-width:280px}.ttg-open-card-top{color:#fff;font-weight:700;font-size:12px;padding:4px 10px;border-radius:999px;align-self:flex-start}.ttg-open-card-name{font-size:18px;font-weight:700;color:#f0e8d8}.ttg-open-card-q{font-size:13px;color:hsla(40,44%,89%,.8);font-style:italic}.ttg-stacks{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px;flex-shrink:0}.ttg-stack{background:rgba(0,0,0,.4);border:2px solid;border-radius:10px;padding:6px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;color:#f0e8d8;font-family:inherit}.ttg-stack:disabled{opacity:.4;cursor:not-allowed}.ttg-stack:hover:not(:disabled){background:hsla(43,82%,67%,.1)}.ttg-stack-back{width:50px;height:70px;opacity:.7;background-image:linear-gradient(135deg,hsla(0,0%,100%,.2),transparent)}.ttg-stack-label{font-size:11px}.ttg-log{display:flex;flex-direction:column;gap:4px}.ttg-log-row{display:flex;gap:8px;align-items:flex-start;padding:4px 0;border-bottom:1px solid hsla(0,0%,100%,.06);font-size:12px}.ttg-log-dot{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:11px;flex-shrink:0}.ttg-log-text{flex:1 1;line-height:1.35}.ttg-inv{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:4px;gap:4px}.ttg-inv-item{aspect-ratio:2/3;border-radius:6px;overflow:hidden;border:1.5px solid}.ttg-inv-item img{width:100%;height:100%;object-fit:cover;display:block}.ttg-token{transition:left .7s cubic-bezier(.34,1.56,.64,1),top .7s cubic-bezier(.34,1.56,.64,1),width .2s ease,height .2s ease;will-change:left,top,transform;animation:ttg-token-idle 3s ease-in-out infinite alternate}.ttg-token.is-turn{animation:ttg-token-active 1.2s ease-in-out infinite alternate}@keyframes ttg-token-idle{0%{transform:translate(-50%,-50%) scale(1)}to{transform:translate(-50%,-52%) scale(1.02)}}@keyframes ttg-token-active{0%{transform:translate(-50%,-50%) scale(1.05);filter:drop-shadow(0 0 4px rgba(255,213,106,.4))}to{transform:translate(-50%,-55%) scale(1.12);filter:drop-shadow(0 0 16px rgba(255,213,106,.9))}}.ttg-stack{perspective:600px;position:relative;transition:transform .2s ease}.ttg-stack:hover:not(:disabled){transform:translateY(-3px) scale(1.03)}.ttg-stack:active:not(:disabled){transform:translateY(-1px) scale(.99)}.ttg-stack-pile{position:relative;width:56px;height:78px}.ttg-stack-back{position:absolute;inset:0;border-radius:6px;background-image:linear-gradient(135deg,hsla(0,0%,100%,.18),transparent);box-shadow:0 2px 8px rgba(0,0,0,.5)}.ttg-stack-back-1{transform:translate(0);z-index:3}.ttg-stack-back-2{transform:translate(-3px,-3px) rotate(-3deg);z-index:2;opacity:.85}.ttg-stack-back-3{transform:translate(-6px,-6px) rotate(-6deg);z-index:1;opacity:.6}.ttg-stack:hover:not(:disabled) .ttg-stack-back-1{animation:ttg-stack-jitter .5s ease-in-out infinite alternate}@keyframes ttg-stack-jitter{0%{transform:translate(0) rotate(0)}to{transform:translate(2px,-2px) rotate(2deg)}}.ttg-open-card{animation:ttg-card-flipin .7s cubic-bezier(.4,1.6,.5,1) both,ttg-card-float 3.5s ease-in-out .7s infinite alternate;box-shadow:0 20px 60px rgba(0,0,0,.7),0 0 40px rgba(255,213,106,.25)}@keyframes ttg-card-flipin{0%{transform:translate(-50%,-50%) scale(.3) rotateY(180deg) rotate(-10deg);opacity:0}60%{transform:translate(-50%,-52%) scale(1.06) rotateY(0) rotate(2deg);opacity:1}to{transform:translate(-50%,-50%) scale(1) rotateY(0) rotate(0);opacity:1}}@keyframes ttg-card-float{0%{transform:translate(-50%,-50%) scale(1)}to{transform:translate(-50%,-52%) scale(1.012)}}.ttg-open-card-img{animation:ttg-card-img-shine 4s ease-in-out infinite}.ttg-open-card-close{position:absolute;top:-14px;right:-14px;width:36px;height:36px;border-radius:50%;background:rgba(20,16,31,.95);color:#fff;border:2px solid rgba(255,213,106,.8);font-size:16px;cursor:pointer;z-index:21;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,.5);transition:transform .15s ease,background .15s ease}.ttg-open-card-close:hover{transform:scale(1.1) rotate(90deg);background:var(--danger,#c0392b)}@keyframes ttg-card-img-shine{0%,to{filter:brightness(1) saturate(1)}50%{filter:brightness(1.08) saturate(1.1)}}.ttg-dice{perspective:200px;transform-style:preserve-3d;background:linear-gradient(135deg,#fff,#f0e8d8);box-shadow:0 8px 24px rgba(0,0,0,.6),inset 0 -4px 0 rgba(0,0,0,.15),inset 0 4px 0 hsla(0,0%,100%,.5);animation:ttg-dice-land .4s ease-out .9s both}.ttg-dice.rolling{animation:ttg-dice-tumble .9s cubic-bezier(.5,.1,.5,1.2)}@keyframes ttg-dice-tumble{0%{transform:translateY(-80px) rotateX(0) rotateY(0) scale(.5);opacity:0}20%{opacity:1;transform:translateY(-40px) rotateX(1turn) rotateY(180deg) scale(1.05)}60%{transform:translateY(0) rotateX(2turn) rotateY(540deg) scale(1.15)}80%{transform:translateY(-10px) rotateX(780deg) rotateY(640deg) scale(1.1)}to{transform:translateY(0) rotateX(2turn) rotateY(2turn) scale(1)}}@keyframes ttg-dice-land{0%{box-shadow:0 8px 24px rgba(0,0,0,.6),0 0 0 0 rgba(255,213,106,.9)}to{box-shadow:0 8px 24px rgba(0,0,0,.6),0 0 0 40px rgba(255,213,106,0)}}.ttg-btn-dice{animation:ttg-dice-call 1.6s ease-in-out infinite}@keyframes ttg-dice-call{0%,to{transform:scale(1);box-shadow:0 6px 20px rgba(255,213,106,.4)}50%{transform:scale(1.08);box-shadow:0 10px 30px rgba(255,213,106,.65)}}.ttg-turn-banner{position:absolute;top:28%;left:50%;transform:translate(-50%,-50%);background:linear-gradient(135deg,rgba(255,213,106,.97),rgba(240,162,2,.97));color:#1a1330;padding:16px 44px;border-radius:18px;font-weight:800;text-align:center;z-index:30;box-shadow:0 20px 60px rgba(0,0,0,.7),inset 0 -3px 0 rgba(0,0,0,.15),inset 0 3px 0 hsla(0,0%,100%,.5);perspective:800px;pointer-events:none;animation:ttg-turn-banner 2.2s cubic-bezier(.4,1.6,.5,1) forwards}.ttg-turn-banner-sub{font-size:11px;opacity:.7;letter-spacing:2px;text-transform:uppercase}.ttg-turn-banner-name{font-size:32px;line-height:1;margin-top:4px}@keyframes ttg-turn-banner{0%{transform:translate(-50%,-50%) scale(.4) rotateX(90deg);opacity:0}18%{transform:translate(-50%,-50%) scale(1.1) rotateX(0);opacity:1}82%{transform:translate(-50%,-50%) scale(1) rotateX(0);opacity:1}to{transform:translate(-50%,-50%) scale(1.4) rotateX(-90deg);opacity:0}}.ttg-fireflies{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:3}.ttg-firefly{position:absolute;background:radial-gradient(circle,#ffe9a0 0,#ffd56a 40%,transparent 70%);border-radius:50%;opacity:0;filter:blur(.5px);animation-name:ttg-firefly-float;animation-iteration-count:infinite;animation-timing-function:ease-in-out}@keyframes ttg-firefly-float{0%{transform:translateY(0) translateX(0) scale(.5);opacity:0}20%{opacity:.9;transform:translateY(-30px) translateX(calc(var(--drift, 0px) * .3)) scale(1)}80%{opacity:.6;transform:translateY(-80px) translateX(calc(var(--drift, 0px) * .7)) scale(.9)}to{transform:translateY(-120px) translateX(var(--drift,0)) scale(.4);opacity:0}}.ttg-shake{animation:ttg-shake .5s linear 2}@keyframes ttg-shake{0%,to{transform:translate(0)}10%{transform:translate(-5px,2px)}20%{transform:translate(5px,-2px)}30%{transform:translate(-4px,1px)}40%{transform:translate(4px,3px)}50%{transform:translate(-3px,-3px)}60%{transform:translate(3px,2px)}70%{transform:translate(-2px,-1px)}80%{transform:translate(2px,1px)}90%{transform:translate(-1px)}}.ttg-player-card.is-turn{animation:ttg-player-glow 1.8s ease-in-out infinite alternate}@keyframes ttg-player-glow{0%{box-shadow:0 0 8px rgba(255,213,106,.25)}to{box-shadow:0 0 22px rgba(255,213,106,.65)}}.ttg-fly-card{position:fixed;z-index:200;border-radius:16px;overflow:hidden;pointer-events:none;box-shadow:0 20px 60px rgba(0,0,0,.7),0 0 40px rgba(255,213,106,.4);transform-origin:top left}.ttg-fly-card img{width:100%;height:100%;object-fit:cover;display:block}.ttg-player-card.is-receiving{animation:ttg-player-receive .6s ease-out}@keyframes ttg-player-receive{0%{transform:scale(1)}50%{transform:scale(1.08);box-shadow:0 0 20px rgba(255,213,106,.7)}to{transform:scale(1)}}.ttg-log-row{animation:ttg-log-in .4s ease-out}@keyframes ttg-log-in{0%{transform:translateX(20px);opacity:0}to{transform:translateX(0);opacity:1}}.tt-field-wrap{position:relative;width:100%;display:flex;align-items:center;justify-content:center}.tt-mist{position:absolute;inset:-10%;pointer-events:none;background:radial-gradient(ellipse 60% 40% at 30% 60%,hsla(0,0%,100%,.08),transparent 60%),radial-gradient(ellipse 50% 30% at 80% 30%,rgba(180,200,220,.08),transparent 60%),radial-gradient(ellipse 40% 30% at 60% 80%,rgba(180,200,220,.06),transparent 60%);filter:blur(20px);animation:tt-mist-drift 24s ease-in-out infinite alternate;z-index:0}@keyframes tt-mist-drift{0%{transform:translate(-2%) scale(1);opacity:.7}50%{transform:translate(3%,-1%) scale(1.05);opacity:1}to{transform:translate(-3%,2%) scale(1.02);opacity:.8}}.tt-sparkles{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.tt-sparkle{position:absolute;top:100%;color:#ffd56a;font-size:14px;opacity:0;animation:tt-sparkle-rise 1.6s ease-out forwards}@keyframes tt-sparkle-rise{0%{transform:translateY(0) scale(.5);opacity:0}20%{opacity:1}to{transform:translateY(-120px) scale(1.3);opacity:0}}.tt-flame-overlay{position:fixed;inset:0;background:radial-gradient(circle at 50% 60%,rgba(255,80,0,.35) 0,rgba(0,0,0,.92) 70%);z-index:10000;display:grid;place-items:center;animation:tt-flame-bg 2.4s ease-out forwards}@keyframes tt-flame-bg{0%{opacity:0}10%{opacity:1}85%{opacity:1}to{opacity:0}}.tt-flame-core{display:flex;flex-direction:column;align-items:center;gap:36px}.tt-flame-circle{position:relative;width:220px;height:220px}.tt-flame{position:absolute;inset:0;background:radial-gradient(circle,#ffea00 0,#ff7800 35%,#d23000 65%,transparent 80%);border-radius:50%;filter:blur(8px);animation:tt-flame-pulse .55s ease-in-out infinite alternate;transform-origin:50% 70%}.tt-flame.tt-flame-2{background:radial-gradient(circle,#fff8c8 0,#fa0 30%,transparent 70%);filter:blur(4px);animation-duration:.4s;animation-direction:alternate-reverse;inset:20px}.tt-flame.tt-flame-3{background:radial-gradient(circle,#fff 0,#ffea00 40%,transparent 70%);filter:blur(2px);animation-duration:.32s;inset:60px;opacity:.85}@keyframes tt-flame-pulse{0%{transform:scale(.9) translateY(0)}to{transform:scale(1.1) translateY(-8px)}}.tt-flame-text{text-align:center;animation:tt-flame-text-in .6s .3s both}@keyframes tt-flame-text-in{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.sidebar,.toolpanel{background:var(--bg-panel);overflow-y:auto;padding:14px}.sidebar{border-right:1px solid var(--border)}.toolpanel{border-left:1px solid var(--border)}.panel-title{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-dim);margin:0 0 10px}.lib-tabs{display:flex;gap:4px;margin-bottom:12px;background:var(--bg);border:1px solid var(--border);border-radius:9px;padding:3px}.lib-tabs button{flex:1 1;background:transparent;border:none;color:var(--text-dim);font-size:12px;padding:5px 6px;border-radius:6px;transition:background .15s ease,color .15s ease}.lib-tabs button.active{background:var(--accent);color:#fff}.deck-collapsible{margin-bottom:6px}.deck-toggle{width:100%;display:flex;align-items:center;gap:8px;padding:9px 10px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:13px;font-weight:600;cursor:pointer;text-align:left;transition:background .15s ease,border-color .15s ease}.deck-toggle.open,.deck-toggle:hover{border-color:var(--accent)}.deck-toggle.open{background:var(--bg)}.deck-toggle .caret{color:var(--text-dim);font-size:11px;width:12px}.deck-toggle .deck-title{flex:1 1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.deck-toggle .deck-count{font-weight:400;font-size:11px}.deck-toggle .deck-delete{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;border-radius:6px;font-size:13px;color:var(--text-dim);opacity:0;transition:opacity .15s ease,color .15s ease,background .15s ease}.deck-toggle:hover .deck-delete{opacity:1}.deck-toggle .deck-delete:hover{color:var(--danger);background:var(--bg-panel)}.deck-body{padding:8px 0 12px 6px;border-left:2px solid var(--border);margin-left:10px;margin-top:2px}.deck-instructions{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.deck-instruction-btn{background:var(--bg-elevated,hsla(0,0%,100%,.06));color:var(--text,#f0e8d8);border:1px solid var(--accent,#f0a202);border-radius:8px;padding:6px 10px;font-size:12px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:background .15s ease,transform .1s ease}.deck-instruction-btn:hover{background:rgba(240,162,2,.18);transform:translateY(-1px)}.instr-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:100;display:flex;align-items:center;justify-content:center;padding:24px}.instr-frame{background:var(--bg,#15121f);border:1px solid var(--border,hsla(43,82%,67%,.25));border-radius:14px;max-width:1000px;width:100%;max-height:95vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.6)}.instr-bar{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border,hsla(43,82%,67%,.18));font-size:14px}.instr-close{background:transparent;border:1px solid hsla(0,0%,100%,.2);color:inherit;border-radius:8px;width:30px;height:30px;cursor:pointer;font-size:14px}.instr-close:hover{background:hsla(0,0%,100%,.08)}.instr-canvas{flex:1 1;min-height:0;overflow:auto;display:flex;align-items:center;justify-content:center;background:#000}.instr-canvas img{max-width:100%;max-height:100%;display:block;object-fit:contain}.instr-nav{display:flex;justify-content:space-between;padding:10px 16px;gap:12px;border-top:1px solid var(--border,hsla(43,82%,67%,.18))}.instr-nav button{background:var(--bg-elevated,hsla(0,0%,100%,.06));color:inherit;border:1px solid var(--border,hsla(43,82%,67%,.18));border-radius:8px;padding:6px 14px;font-size:13px;cursor:pointer}.instr-nav button:disabled{opacity:.35;cursor:not-allowed}.instr-nav button:hover:not(:disabled){background:rgba(255,213,106,.15)}.section{margin:4px 0}.section-toggle{width:100%;display:flex;align-items:center;gap:8px;padding:6px 8px;background:transparent;border:none;color:var(--text);font-size:12px;cursor:pointer;text-align:left;border-radius:7px;transition:background .15s ease}.section-toggle:hover{background:var(--bg-elevated)}.section-toggle.open{color:var(--accent)}.section-toggle .caret{color:var(--text-dim);font-size:10px;width:10px}.section-toggle .section-title{flex:1 1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.face-mode{display:flex;flex-direction:column;gap:4px;padding:6px 8px 8px;font-size:11px}.face-mode-btns{display:flex;gap:4px;flex-wrap:wrap}.face-mode-btns button{background:var(--bg);border:1px solid var(--border);color:var(--text-dim);font-size:11px;padding:4px 8px;border-radius:7px;transition:background .15s ease,color .15s ease,border-color .15s ease}.face-mode-btns button:hover{color:var(--text)}.face-mode-btns button.active{background:var(--accent);border-color:var(--accent);color:#fff}.deck{margin-bottom:16px}.deck-head{font-size:13px;font-weight:600;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;gap:6px}.deck-head .deck-delete{background:transparent;border:none;color:var(--text-dim);font-size:14px;padding:2px 6px;border-radius:6px;opacity:0;transition:opacity .15s ease}.deck:hover .deck-head .deck-delete{opacity:1}.deck-head .deck-delete:hover{color:var(--danger);background:var(--bg-elevated)}.deck-cards{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:6px;gap:6px}.lib-card{aspect-ratio:2/3;border-radius:6px;overflow:hidden;border:1px solid var(--border);cursor:-webkit-grab;cursor:grab;background:var(--bg)}.lib-card img{width:100%;height:100%;object-fit:cover;pointer-events:none}.lib-card:active{cursor:-webkit-grabbing;cursor:grabbing}.upload-deck-btn{width:100%;display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px;border:2px dashed var(--border);border-radius:10px;background:transparent;color:var(--text-dim);font-size:13px;transition:border-color .15s ease,color .15s ease,background .15s ease}.upload-deck-btn:hover{border-color:var(--accent);color:var(--text);background:var(--bg-elevated)}.sell-card{padding:14px;border-radius:12px;background:linear-gradient(135deg,var(--bg-elevated),var(--bg-panel));border:1px solid var(--accent);box-shadow:0 4px 14px rgba(0,0,0,.08)}.canvas-wrap{position:relative;overflow:hidden;background:radial-gradient(circle at 50% 0,var(--canvas-glow) 0,var(--bg) 70%)}.canvas{position:absolute;inset:0}.table-card{position:absolute;width:120px;cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.table-card .face{width:120px;height:180px;border-radius:10px;box-shadow:var(--shadow-card);overflow:hidden;transition:box-shadow .15s ease;position:relative}.card-resize{position:absolute;right:2px;bottom:2px;width:22px;height:22px;background:rgba(0,0,0,.5);color:#fff;border-radius:6px;font-size:12px;cursor:nwse-resize;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .12s ease;z-index:2;-webkit-user-select:none;-moz-user-select:none;user-select:none}.table-card:hover .card-resize{opacity:1}.table-card.dragging{cursor:-webkit-grabbing;cursor:grabbing;z-index:999!important}.table-card.dragging .face{box-shadow:var(--shadow-card-drag)}.table-card img{width:100%;height:100%;object-fit:cover;pointer-events:none}.table-card.is-field .face{height:auto;border-radius:8px}.table-card.is-field img{height:auto;object-fit:contain;display:block}.card-caption-wrap{margin-top:6px;width:100%}.card-caption{width:100%;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:6px 28px 6px 8px;font-size:12px;color:var(--text);resize:none;font-family:inherit;cursor:text;box-shadow:0 2px 8px rgba(0,0,0,.15);display:block;line-height:1.4}.card-caption:focus{outline:none;border-color:var(--accent)}.card-caption-scroll{height:80px;overflow-y:auto}.card-caption-collapsed{display:flex;align-items:center;gap:6px;text-align:left;cursor:pointer;height:28px;padding-right:22px}.card-caption-collapsed .card-caption-text{flex:1 1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.card-caption-actions{position:absolute;top:4px;right:4px;display:flex;gap:2px;flex-direction:column}.card-caption-toggle{background:transparent;border:none;color:var(--text-dim);font-size:10px;cursor:pointer;padding:0;line-height:1;border-radius:4px;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;opacity:.7}.card-caption-toggle:hover{opacity:1;background:var(--bg-elevated);color:var(--text)}.caption-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.7);display:grid;place-items:center;z-index:6000}.caption-modal{width:min(600px,92vw);max-height:80vh;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden}.caption-modal-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);font-weight:600;font-size:14px}.caption-modal-close{background:transparent;border:none;color:var(--text-dim);font-size:16px;cursor:pointer;padding:4px 8px;border-radius:6px}.caption-modal-close:hover{color:var(--text);background:var(--bg-elevated)}.caption-modal-text{flex:1 1;min-height:320px;background:var(--bg);border:none;outline:none;padding:16px;color:var(--text);font-size:15px;font-family:inherit;line-height:1.5;resize:none}.card-actions{position:absolute;top:-34px;left:50%;transform:translateX(-50%);display:flex;gap:4px;opacity:0;transition:opacity .12s ease;white-space:nowrap}.table-card:hover .card-actions{opacity:1}.mini-btn{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);border-radius:7px;padding:3px 8px;font-size:12px}.canvas-hint{top:50%;left:50%;transform:translate(-50%,-50%);font-size:14px;pointer-events:none}.canvas-hint,.slot{position:absolute;color:var(--text-dim);text-align:center}.slot{width:130px;height:190px;border:2px dashed var(--border);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px;background:hsla(0,0%,50%,.04)}.slot .slot-num{font-size:20px;font-weight:700;color:var(--accent)}.slot .slot-label{font-size:12px;margin-top:4px;color:var(--text)}.slot .slot-hint{font-size:10px;margin-top:2px}.mode-tabs{display:flex;gap:6px}.mode-tabs button{background:var(--bg);border:1px solid var(--border);color:var(--text-dim);border-radius:9px;padding:7px 14px;font-size:13px}.mode-tabs button.active{background:var(--accent);border-color:var(--accent);color:#fff}.note-box{width:100%;min-height:90px;resize:vertical;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px;color:var(--text);font-size:13px;font-family:inherit}.private-note{border-color:var(--accent)}.private-note,.tag{background:var(--bg-elevated)}.tag{display:inline-block;font-size:11px;padding:2px 8px;border-radius:20px;color:var(--accent);border:1px solid var(--border)}.muted{color:var(--text-dim);font-size:13px}.spread-card{display:block;background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;padding:14px;text-decoration:none;color:var(--text);transition:border-color .15s ease,transform .06s ease,box-shadow .15s ease;cursor:pointer}.spread-card:hover{border-color:var(--accent);text-decoration:none;box-shadow:0 8px 24px rgba(0,0,0,.18)}.spread-card:active{transform:translateY(1px)}.emo-btn{padding:10px 14px;background:var(--bg);border:1px solid var(--border);font-size:12px;color:var(--text-dim);transition:all .15s ease;min-width:80px}.emo-btn.active,.emo-btn:hover{color:var(--text)}.emo-btn.active{background:var(--bg-elevated);border-color:var(--accent);box-shadow:0 2px 8px rgba(0,0,0,.08)}.mood-cal{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px}.mood-cal-wd{font-size:11px;text-align:center;color:var(--text-dim);padding:4px 0;text-transform:uppercase;letter-spacing:.5px}.mood-cal-day{aspect-ratio:1;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;min-height:56px;cursor:pointer;color:var(--text);transition:transform .05s ease,background .15s ease,border-color .15s ease}.mood-cal-day:hover{background:var(--bg-elevated);border-color:var(--accent)}.mood-cal-day:active{transform:scale(.97)}.mood-cal-day.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.mood-cal-day.filled{background:var(--bg-elevated)}.mood-cal-day.selected{background:var(--accent);color:#fff;box-shadow:0 4px 10px rgba(0,0,0,.15)}.mood-cal-day.selected .mood-cal-num{color:hsla(0,0%,100%,.8)}.mood-cal-num{position:absolute;top:4px;left:6px;font-size:10px;color:var(--text-dim)}.mood-cal-emo{font-size:22px;line-height:1}.diary-tabs{display:flex;gap:6px;margin-bottom:24px;background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:4px;flex-wrap:wrap}.diary-tabs button{background:transparent;border:none;color:var(--text-dim);padding:8px 14px;border-radius:9px;font-size:13px;cursor:pointer;transition:background .15s ease,color .15s ease;flex:1 1;min-width:140px}.diary-tabs button:hover{color:var(--text)}.diary-tabs button.active{background:var(--accent);color:#fff}.placeholder-block{margin-top:20px;padding:20px;background:var(--bg-panel);border:1px solid var(--border);border-radius:14px}select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.6);display:grid;place-items:center;z-index:6000}.modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:460px;padding:24px;color:var(--text)}.modal h2{margin:0 0 6px;font-size:18px}.modal .modal-sub{margin:0 0 16px}.drop-zone,.modal .modal-sub{color:var(--text-dim);font-size:13px}.drop-zone{border:2px dashed var(--border);border-radius:12px;padding:24px;text-align:center;cursor:pointer;transition:border-color .15s ease,background .15s ease}.drop-zone.drag-over,.drop-zone:hover{border-color:var(--accent);background:var(--bg-elevated)}.ttw-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:radial-gradient(ellipse at top,rgba(120,80,160,.18),transparent 60%),radial-gradient(ellipse at bottom,rgba(180,130,60,.15),transparent 65%),#15121f;color:#f0e8d8}.ttw-card{background:linear-gradient(180deg,rgba(40,32,56,.9),rgba(28,22,40,.95));border:1px solid rgba(255,213,106,.25);border-radius:18px;padding:32px 28px;max-width:520px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.55)}.ttw-card-wide{max-width:880px}.ttw-step{display:inline-block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;background:rgba(255,213,106,.1);border:1px solid rgba(255,213,106,.3);padding:4px 10px;border-radius:999px;color:#ffd56a;margin-bottom:14px}.ttw-h1{font-size:26px;line-height:1.2;margin:0 0 10px;font-weight:700;color:#fff7e0}.ttw-sub{font-size:14px;opacity:.75;margin:0 0 22px;line-height:1.5}.ttw-hint-sm{font-size:12px;opacity:.55;margin-top:6px}.ttw-textarea{width:100%;background:rgba(0,0,0,.3);color:#f0e8d8;border:1px solid hsla(43,82%,67%,.25);border-radius:10px;padding:12px;font-size:14px;font-family:inherit;line-height:1.5;resize:vertical}.ttw-textarea:focus{outline:none;border-color:rgba(255,213,106,.6);box-shadow:0 0 0 3px rgba(255,213,106,.15)}.ttw-help-toggle{background:transparent;border:none;color:#ffd56a;font-size:13px;cursor:pointer;padding:8px 0;margin-top:4px}.ttw-help-toggle:hover{text-decoration:underline}.ttw-help{margin-top:8px;background:rgba(0,0,0,.25);border:1px dashed rgba(255,213,106,.25);border-radius:12px;padding:14px 16px}.ttw-help-title{font-weight:700;color:#ffd56a;margin-bottom:8px}.ttw-help-p{font-size:13px;line-height:1.5;margin:0 0 12px;opacity:.85}.ttw-help-foot{font-size:12px;line-height:1.5;margin:12px 0 0;opacity:.6;font-style:italic}.ttw-help-list{display:flex;flex-direction:column;gap:6px}.ttw-help-item{text-align:left;background:rgba(255,213,106,.04);border:1px solid rgba(255,213,106,.15);color:#f0e8d8;border-radius:8px;padding:9px 12px;font-size:12.5px;line-height:1.4;cursor:pointer;transition:background .15s,border-color .15s}.ttw-help-item:hover{background:rgba(255,213,106,.1);border-color:rgba(255,213,106,.4)}.ttw-btn-primary{background:linear-gradient(135deg,#f0a202,#c47800);color:#fff;border:none;border-radius:10px;padding:12px 22px;font-size:14px;font-weight:700;cursor:pointer;width:100%;margin-top:18px;box-shadow:0 6px 20px rgba(240,162,2,.25)}.ttw-btn-primary:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.ttw-btn-primary:hover:not(:disabled){filter:brightness(1.1)}.ttw-btn-ghost{background:transparent;border:1px solid rgba(255,213,106,.3);color:#f0e8d8;border-radius:10px;padding:12px 18px;font-size:13px;cursor:pointer}.ttw-btn-ghost:hover{background:rgba(255,213,106,.08)}.ttw-row{display:flex;gap:10px;align-items:center;margin-top:18px}.ttw-row .ttw-btn-primary{margin-top:0;flex:1 1}.ttw-row .ttw-btn-ghost{flex:0 0 auto}.ttw-arch-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px;margin-top:8px}@media (max-width:720px){.ttw-arch-grid{grid-template-columns:repeat(2,1fr)}}.ttw-arch{background:rgba(0,0,0,.3);border:2px solid rgba(255,213,106,.2);border-radius:14px;padding:12px;cursor:pointer;text-align:center;color:#f0e8d8;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.ttw-arch:hover{transform:translateY(-2px);border-color:rgba(255,213,106,.45)}.ttw-arch.is-selected{transform:translateY(-3px) scale(1.02);box-shadow:0 8px 24px rgba(0,0,0,.55)}.ttw-arch-img{width:100%;aspect-ratio:1/1;border-radius:12px;overflow:hidden;background:#000;margin-bottom:10px}.ttw-arch-img img{width:100%;height:100%;object-fit:cover;display:block}.ttw-arch-title{font-size:16px;font-weight:700;color:#fff7e0}.ttw-arch-sub{font-size:12px;opacity:.65;margin-top:2px}.ttw-arch-hint{margin-top:8px;font-size:12px;font-style:italic;color:#ffd56a}.ttg-player-color{border:2px solid rgba(255,213,106,.4);overflow:hidden}.ttg-player-avatar{width:100%;height:100%;object-fit:cover;display:block}.ttg-player-request{font-size:11px;font-style:italic;color:#ffd56a;opacity:.85;margin-top:4px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ttg-token{background:rgba(20,16,30,.85);overflow:hidden}.ttg-token-avatar{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%}.ttg-token-emoji{font-size:20px}.ttg-cell-marker{position:absolute;transform:translate(-50%,-50%);width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:700;color:#fff;border:2px solid hsla(0,0%,100%,.85);box-shadow:0 2px 6px rgba(0,0,0,.5);pointer-events:none;opacity:.7;z-index:3;text-shadow:0 1px 2px rgba(0,0,0,.7)}.ttg-field-switch{display:inline-flex;gap:0;background:rgba(0,0,0,.35);border:1px solid rgba(255,213,106,.25);border-radius:10px;padding:3px}.ttg-field-btn{background:transparent;border:none;color:#f0e8d8;font-size:12px;font-weight:600;padding:5px 12px;border-radius:7px;cursor:pointer;transition:background .15s}.ttg-field-btn:hover{background:rgba(255,213,106,.08)}.ttg-field-btn.is-active{background:linear-gradient(135deg,#f0a202,#c47800);color:#fff}.ttg-field.is-terem .ttg-field-bg{object-fit:contain}.admin-wrap{min-height:100vh;background:var(--bg,#15121f);color:var(--text,#f0e8d8)}.admin-header{justify-content:space-between;padding:14px 24px;border-bottom:1px solid var(--border,hsla(0,0%,100%,.1));background:rgba(0,0,0,.25);flex-wrap:wrap}.admin-header,.admin-title{display:flex;align-items:center;gap:12px}.admin-badge{background:linear-gradient(135deg,#f0a202,#c47800);color:#fff;font-weight:700;padding:4px 10px;border-radius:8px;font-size:14px}.admin-user{opacity:.7;font-size:13px}.admin-nav{display:flex;gap:14px;align-items:center}.admin-nav a{color:inherit;text-decoration:none;padding:6px 12px;border-radius:8px;font-size:14px;transition:background .15s}.admin-nav a:hover{background:hsla(0,0%,100%,.06)}.admin-nav .admin-back{opacity:.65;font-size:13px}.admin-main{padding:24px;max-width:1200px;margin:0 auto}.admin-stats{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:16px}.admin-stat{padding:10px 16px;border:1px solid var(--border,hsla(0,0%,100%,.12));border-radius:10px;background:hsla(0,0%,100%,.04);font-size:14px}.admin-stat b{font-size:18px;color:#ffd56a}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table td,.admin-table th{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border,hsla(0,0%,100%,.08));vertical-align:middle}.admin-table th{font-weight:600;color:var(--text-dim,hsla(40,44%,89%,.6));background:hsla(0,0%,100%,.03)}.admin-table tr.busy{opacity:.5}.admin-table tr:hover td{background:rgba(255,213,106,.04)}.admin-select{background:rgba(0,0,0,.3);padding:4px 6px}.admin-select,.admin-toggle{color:inherit;border:1px solid var(--border,hsla(0,0%,100%,.15));border-radius:6px;font-size:12px}.admin-toggle{background:hsla(0,0%,100%,.06);padding:4px 10px;cursor:pointer}.admin-toggle.is-on{background:rgba(46,204,113,.25);border-color:rgba(46,204,113,.6);color:#7ee8a8}.admin-danger{background:rgba(192,57,43,.18);border:1px solid rgba(192,57,43,.5);color:#ff8a80;border-radius:6px;padding:4px 8px;cursor:pointer;font-size:14px}.admin-danger:hover{background:rgba(192,57,43,.35)}.admin-err{font-size:11px;color:#ff8a80;margin-top:4px}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:14px;gap:14px}.admin-card{background:hsla(0,0%,100%,.04);border:1px solid var(--border,hsla(0,0%,100%,.1));border-radius:12px;padding:16px}.admin-card-title{font-weight:700;font-size:15px;margin-bottom:12px;color:#ffd56a}.admin-card-row{display:flex;justify-content:space-between;padding:6px 0;border-top:1px dashed hsla(0,0%,100%,.08);font-size:13px}.admin-card-row:first-child{border-top:none}.admin-card-label{opacity:.75}.admin-card-value{font-weight:700;font-size:16px}.admin-card-value.is-good{color:#7ee8a8}.nav-admin{background:linear-gradient(135deg,rgba(240,162,2,.15),rgba(196,120,0,.15));border:1px solid rgba(240,162,2,.4);border-radius:8px}.nav-admin:hover{background:linear-gradient(135deg,rgba(240,162,2,.3),rgba(196,120,0,.3))}.admin-table tr.is-banned td{background:rgba(192,57,43,.05)}.admin-table tr.is-banned:hover td{background:rgba(192,57,43,.1)}.admin-reset-row td{padding:0!important}.admin-reset-info{display:flex;align-items:center;gap:8px;background:rgba(255,213,106,.1);border-top:1px dashed rgba(255,213,106,.3);padding:10px 12px}.admin-reset-info strong{font-size:12px;color:#ffd56a;white-space:nowrap}.admin-reset-input{flex:1 1;background:rgba(0,0,0,.4);border:1px solid rgba(255,213,106,.2);color:inherit;padding:6px 10px;border-radius:6px;font-family:monospace;font-size:11px}.admin-reset-info button{background:hsla(0,0%,100%,.08);border:1px solid hsla(0,0%,100%,.15);color:inherit;border-radius:6px;padding:5px 10px;font-size:11px;cursor:pointer}.admin-reset-info button:hover{background:rgba(255,213,106,.2)}.admin-decks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:14px;gap:14px}.admin-deck-card{background:hsla(0,0%,100%,.04);border:1px solid var(--border,hsla(0,0%,100%,.1));border-radius:10px;padding:12px}.admin-deck-thumbs{display:flex;gap:4px;margin-bottom:10px;min-height:70px;align-items:center}.admin-deck-thumbs img{width:46px;height:70px;object-fit:cover;border-radius:4px;border:1px solid hsla(0,0%,100%,.1)}.admin-deck-title{font-weight:600;font-size:14px;margin-bottom:4px}.admin-deck-meta{font-size:11px}.onb-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 16px;background:radial-gradient(ellipse at top,var(--accent-tint),transparent 60%),radial-gradient(ellipse at bottom,var(--accent-tint),transparent 65%),var(--bg);color:var(--text)}.onb-frame{max-width:520px;width:100%;background:var(--bg-panel);border:1px solid var(--border);border-radius:20px;padding:36px 28px;box-shadow:0 20px 60px rgba(0,0,0,.4);text-align:center}.onb-step h1,.onb-step h2{margin:0 0 8px;font-size:24px;line-height:1.25;color:var(--text-heading)}.onb-sub{opacity:.75;font-size:14px;line-height:1.5;margin:0 0 24px}.onb-small{font-size:11px;opacity:.55;margin-top:12px}.onb-illustration{display:flex;justify-content:center;margin:20px 0}.onb-illustration img{width:180px;height:auto;opacity:.95;filter:drop-shadow(0 6px 12px rgba(0,0,0,.4))}.onb-btn{background:var(--accent);color:var(--text-on-accent);border:none;border-radius:12px;padding:14px 24px;font-size:15px;font-weight:700;cursor:pointer;width:100%;box-shadow:0 6px 20px rgba(240,162,2,.25)}.onb-btn:hover:not(:disabled){filter:brightness(1.1)}.onb-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.onb-btn-ghost{background:transparent;border:1px solid var(--accent-tint-strong);color:inherit;border-radius:10px;padding:10px 18px;font-size:13px;cursor:pointer}.onb-btn-ghost:hover{background:var(--accent-tint)}.onb-row{display:flex;gap:10px;margin-top:14px}.onb-row>*{flex:1 1}.onb-card{width:280px;height:420px;margin:16px auto;cursor:pointer;position:relative;transform-style:preserve-3d;transition:transform .6s ease-in-out;animation:onb-pulse 2.4s ease-in-out infinite;display:block;background:transparent;border:none;padding:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.onb-card:disabled{cursor:default}.onb-card:active:not(:disabled){animation:none;transform:scale(.97)}.onb-card.is-flipping,.onb-card.is-open{animation:none;transform:rotateY(180deg)}.onb-card-side{position:absolute;inset:0;border-radius:16px;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-shadow:0 12px 30px rgba(0,0,0,.5)}.onb-card-front{transform:rotateY(180deg)}.onb-card-side img{width:100%;height:100%;object-fit:cover}@keyframes onb-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02);box-shadow:0 14px 36px rgba(255,213,106,.2)}}.onb-card-mini{width:120px;height:180px;margin:0 auto 16px;border-radius:10px;overflow:hidden}.onb-card-mini img{width:100%;height:100%;object-fit:cover}.onb-textarea{width:100%;background:var(--bg-elevated);color:inherit;border:1px solid var(--border);border-radius:10px;padding:12px;font-size:14px;line-height:1.5;font-family:inherit;resize:vertical;min-height:80px}.onb-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint-strong)}.onb-counter{text-align:right;font-size:11px;opacity:.5;margin-top:-8px;margin-bottom:12px}.onb-reflection-box{background:var(--accent-tint);border:1px dashed var(--accent-tint-strong);border-radius:12px;padding:16px;margin:12px 0;text-align:left;font-size:14px;line-height:1.5}.onb-loader{display:inline-block;opacity:.6}.onb-form{display:flex;flex-direction:column;gap:10px}.onb-form .input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-size:14px;color:inherit}.onb-form .input:focus{outline:none;border-color:var(--accent)}.onb-bonus{background:rgba(46,204,113,.12);border:1px solid rgba(46,204,113,.3);border-radius:8px;padding:8px 12px;font-size:12px;color:#7ee8a8;margin:4px 0}.onb-err{color:#ff8a80;font-size:13px}.daily-wrap{padding:24px 32px;max-width:1280px;margin:0 auto}.daily-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;flex-wrap:wrap;gap:16px}.daily-greet{font-size:26px;margin:0;color:var(--text-heading)}.daily-date{opacity:.6;margin:4px 0 0;font-size:14px}.daily-deck{display:flex;align-items:center;gap:8px;font-size:13px}.daily-deck-btn{background:var(--accent-tint);border:1px solid var(--accent-tint-strong);color:inherit;border-radius:8px;padding:6px 12px;font-size:13px;cursor:pointer}.daily-deck-btn:hover{background:var(--accent-tint-strong)}.daily-main{display:grid;grid-template-columns:1fr 240px;grid-gap:24px;gap:24px}@media (max-width:820px){.daily-main{grid-template-columns:1fr}}.daily-center{display:flex;flex-direction:column;align-items:center;background:var(--surface-soft);border:1px solid var(--border);border-radius:16px;padding:28px 20px;min-height:600px}.daily-pull-hint{opacity:.6;font-size:13px;margin:4px 0 12px}.daily-card-closed{width:220px;height:330px;border-radius:14px;overflow:hidden;cursor:pointer;margin-bottom:18px;box-shadow:0 10px 30px rgba(0,0,0,.5);animation:onb-pulse 3s ease-in-out infinite}.daily-card-closed img{width:100%;height:100%;object-fit:cover}.daily-card-open{width:220px;height:330px;border-radius:14px;overflow:hidden;margin-bottom:12px;box-shadow:0 10px 30px rgba(0,0,0,.5)}.daily-card-open img{width:100%;height:100%;object-fit:cover}.daily-btn-pull{background:var(--accent);color:var(--text-on-accent);border:none;border-radius:12px;padding:14px 28px;font-size:15px;font-weight:700;cursor:pointer;margin-top:8px;box-shadow:0 6px 20px rgba(240,162,2,.25)}.daily-steps{width:100%;max-width:480px;margin-top:20px}.daily-steps-progress{display:flex;justify-content:space-between;gap:8px;margin-bottom:20px;padding:0 10px}.daily-step-dot{width:42px;height:42px;border-radius:50%;background:var(--surface-soft);border:1px solid hsla(0,0%,100%,.1);display:grid;place-items:center;font-size:18px;opacity:.4;transition:all .2s}.daily-step-dot.is-passed{opacity:.7;background:var(--accent-tint);border-color:var(--accent-tint-strong)}.daily-step-dot.is-current{opacity:1;background:var(--accent);border-color:var(--text-warm);transform:scale(1.15);box-shadow:0 4px 12px rgba(240,162,2,.4)}.daily-step{background:var(--surface-soft);border-radius:12px;padding:16px 18px}.daily-step h3{margin:0 0 4px;font-size:17px;color:var(--text-heading)}.daily-step .muted{font-size:13px;margin-bottom:12px}.daily-textarea{width:100%;background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-family:inherit;font-size:14px;color:inherit;resize:vertical;min-height:70px}.daily-textarea:focus{outline:none;border-color:var(--accent)}.daily-row{display:flex;gap:10px;margin-top:12px}.daily-row>*{flex:1 1}.daily-completion{width:100%;max-width:520px;margin-top:18px}.daily-completion h2{color:var(--text-heading);margin:0 0 14px}.daily-summary{background:var(--surface-soft);border-radius:10px;padding:14px 16px;margin-bottom:18px}.daily-summary-row{font-size:13px;line-height:1.5;margin-bottom:8px}.daily-summary-row b{color:var(--text-warm);margin-right:6px}.daily-mood{margin:16px 0;text-align:center}.daily-mood-row{display:flex;justify-content:center;gap:10px;margin-top:10px}.daily-mood-btn{width:44px;height:44px;border-radius:50%;background:var(--surface-soft);border:2px solid hsla(0,0%,100%,.12);font-size:22px;cursor:pointer;transition:all .15s}.daily-mood-btn.is-on,.daily-mood-btn:hover{background:var(--accent-tint-strong)}.daily-mood-btn.is-on{border-color:var(--text-warm);transform:scale(1.15)}.daily-reflection{background:var(--accent-tint);border:1px dashed var(--accent-tint-strong);border-radius:12px;padding:16px;margin-top:14px}.daily-reflection strong{color:var(--text-warm)}.daily-reflection p{margin:8px 0 0;font-size:14px;line-height:1.5}.daily-history{background:var(--surface-soft);border:1px solid var(--border);border-radius:16px;padding:16px;max-height:600px;overflow-y:auto}.daily-history h3{margin:0 0 12px;font-size:14px;color:var(--text-warm)}.daily-history-list{display:flex;flex-direction:column;gap:6px}.daily-history-item{display:flex;align-items:center;gap:8px;padding:4px}.daily-history-item img{width:50px;height:75px;object-fit:cover;border-radius:4px}.daily-history-item span{font-size:11px}.daily-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.daily-modal{background:var(--bg,#15121f);border:1px solid var(--accent-tint-strong);border-radius:14px;max-width:720px;width:100%;max-height:80vh;overflow:auto}.daily-modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border)}.daily-modal-head button{background:transparent;border:none;color:inherit;cursor:pointer;font-size:16px}.daily-modal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:10px;gap:10px;padding:16px}.daily-deck-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px;background:hsla(0,0%,100%,.04);border:2px solid transparent;border-radius:10px;cursor:pointer;color:inherit;font-size:12px}.daily-deck-card:hover{background:var(--accent-tint)}.daily-deck-card:disabled{opacity:.4;cursor:not-allowed}.daily-deck-card.is-current{border-color:var(--text-warm);background:var(--accent-tint-strong)}.daily-deck-card img{width:80px;height:120px;object-fit:cover;border-radius:6px}.daily-zoom-overlay{position:fixed;inset:0;background:rgba(0,0,0,.88);display:flex;align-items:center;justify-content:center;z-index:200;padding:24px;cursor:zoom-out;animation:daily-zoom-in .2s ease}.daily-zoom-overlay img{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.6);cursor:default}.daily-zoom-close{position:absolute;top:20px;right:20px;width:44px;height:44px;border-radius:50%;background:hsla(0,0%,100%,.12);border:1px solid hsla(0,0%,100%,.25);color:#fff;font-size:18px;cursor:pointer}.daily-zoom-close:hover{background:hsla(0,0%,100%,.22)}@keyframes daily-zoom-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.daily-card-open{cursor:zoom-in}.practice-list-wrap{padding:28px 32px;max-width:1100px;margin:0 auto}.practice-h1{font-size:26px;margin:0 0 4px;color:var(--text-heading)}.practice-sub{opacity:.7;margin:0 0 24px}.practice-drafts{margin-bottom:24px;padding:14px 16px;background:var(--accent-tint);border-radius:12px;border:1px solid var(--border)}.practice-drafts h3{margin:0 0 10px;font-size:13px;color:var(--text-warm)}.practice-drafts-row{display:flex;gap:10px;flex-wrap:wrap}.practice-draft-card-wrap{position:relative;display:inline-flex}.practice-draft-card{display:flex;align-items:center;gap:10px;background:var(--surface-soft);border:1px solid var(--border);border-radius:10px;padding:8px 36px 8px 12px;color:inherit;text-decoration:none}.practice-draft-card:hover{background:var(--accent-tint)}.practice-draft-del{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;background:transparent;border:1px solid var(--border);color:var(--text-dim);font-size:11px;cursor:pointer;display:grid;place-items:center;line-height:1;transition:background .15s,color .15s,border-color .15s}.practice-draft-del:hover{background:var(--danger);border-color:var(--danger);color:#fff}.practice-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.practice-tab{padding:8px 16px;border-radius:999px;border:1px solid var(--border);background:var(--surface-soft);color:inherit;cursor:pointer;font-size:14px;transition:background .15s,border-color .15s,color .15s}.practice-tab:hover{border-color:var(--accent)}.practice-tab.is-active{background:var(--text-warm);border-color:var(--text-warm);color:#fff}.practice-start{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:16px;gap:16px;margin-bottom:24px}.practice-entry{display:flex;align-items:center;gap:16px;text-align:left;padding:22px 20px;border-radius:16px;cursor:pointer;color:inherit;background:var(--accent-tint);border:1px solid var(--accent-tint-strong);transition:transform .15s,border-color .15s}.practice-entry:hover{transform:translateY(-2px);border-color:var(--accent)}.practice-entry-icon{font-size:44px;line-height:1}.practice-entry-title{font-weight:700;font-size:18px;color:var(--text-heading);margin-bottom:2px}.practice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:14px;gap:14px;margin-bottom:24px}.practice-card{background:var(--surface-soft);border:2px solid var(--border);border-radius:14px;padding:18px 16px;text-align:center;cursor:pointer;transition:transform .15s,border-color .15s;color:inherit}.practice-card:hover{transform:translateY(-2px);border-color:var(--accent)}.practice-card.is-picked{border-color:var(--text-warm);background:var(--accent-tint)}.practice-card-icon{font-size:36px;display:block;margin-bottom:8px}.practice-card-title{font-weight:700;font-size:16px;color:var(--text-heading)}.practice-card-sub{font-size:12px;margin-top:4px;line-height:1.4}.practice-card-meta{display:flex;justify-content:center;gap:10px;font-size:11px;opacity:.7;margin-top:10px}.practice-detail{background:var(--accent-tint);border:1px solid var(--accent-tint-strong);border-radius:14px;padding:22px 24px}.practice-detail h2{margin:0 0 8px;color:var(--text-heading)}.practice-detail p{line-height:1.5;opacity:.9}.practice-detail-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;opacity:.8;margin:14px 0}.practice-deck-pick{display:flex;align-items:center;gap:10px;margin:6px 0 14px}.practice-deck-pick select{padding:7px 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface-soft);color:inherit;font-size:14px;cursor:pointer;max-width:260px}.practice-history{margin-top:28px;padding-top:18px;border-top:1px solid var(--border)}.practice-history h3{margin:0 0 12px;font-size:14px;color:var(--text-warm)}.practice-history-row{display:flex;gap:10px;flex-wrap:wrap}.practice-history-card{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;background:var(--surface-soft);border:1px solid var(--border);border-radius:10px;padding:8px 12px;transition:border-color .15s}.practice-history-card:hover{border-color:var(--accent)}.emo-journal{display:flex;flex-direction:column;gap:20px}.emo-checkin{background:var(--surface-soft);border:1px solid var(--border);border-radius:14px;padding:18px 20px}.emo-checkin h3{margin:0 0 12px;color:var(--text-heading)}.emo-palette{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.emo-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 12px;border-radius:12px;border:2px solid var(--border);background:var(--surface);color:inherit;cursor:pointer;min-width:76px;transition:border-color .15s,transform .12s}.emo-btn:hover{transform:translateY(-2px);border-color:var(--accent)}.emo-btn.is-on{border-color:var(--text-warm);background:var(--accent-tint)}.emo-emoji{font-size:26px;line-height:1}.emo-label{font-size:11px;opacity:.8}.emo-feed,.emo-insight-box{display:flex;flex-direction:column}.emo-feed{gap:16px}.emo-day-title{font-size:12px;font-weight:700;color:var(--text-warm);margin-bottom:8px;text-transform:uppercase;letter-spacing:.03em}.emo-entry{display:flex;gap:12px;padding:10px 12px;border-radius:10px;background:var(--surface-soft);border:1px solid var(--border);margin-bottom:6px}.emo-entry-emoji{font-size:24px;line-height:1.2}.emo-entry-body{flex:1 1}.emo-entry-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:14px}.emo-entry-head .muted{font-size:11px}.emo-entry-note{font-size:13px;opacity:.9;margin-top:3px;line-height:1.4}.practice-runner{padding:20px 32px;max-width:800px;margin:0 auto}.practice-runner-top{display:flex;align-items:center;gap:12px;margin-bottom:12px}.practice-progress{display:flex;justify-content:center;gap:6px;margin:14px 0 20px}.practice-dot{width:10px;height:10px;border-radius:50%;background:hsla(0,0%,100%,.15)}.practice-dot.is-passed{background:var(--accent)}.practice-dot.is-current{background:var(--accent);transform:scale(1.4)}.practice-step{background:var(--surface-soft);border:1px solid var(--border);border-radius:14px;padding:20px 24px;text-align:center}.practice-step-head{margin-bottom:16px}.practice-step-head h3{margin:4px 0 6px;color:var(--text-heading);font-size:20px}.practice-step-head .muted{font-size:13px;line-height:1.5}.practice-card-area{width:200px;height:300px;margin:12px auto;border-radius:12px;overflow:hidden;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.5);transition:transform .2s;animation:onb-pulse 3s ease-in-out infinite}.practice-card-area.is-open{animation:none}.practice-card-area:hover{transform:translateY(-3px)}.practice-card-area img{width:100%;height:100%;object-fit:cover}.practice-options{margin:12px 0;display:flex;flex-direction:column;align-items:center}.practice-options-row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.practice-option{width:110px;height:165px;padding:0;border:2px solid transparent;border-radius:10px;overflow:hidden;cursor:pointer;background:none;box-shadow:0 6px 18px rgba(0,0,0,.35);transition:transform .15s,border-color .15s}.practice-option:hover{transform:translateY(-4px);border-color:var(--accent)}.practice-option img{width:100%;height:100%;object-fit:cover;display:block}.practice-option-wrap{display:flex;flex-direction:column;align-items:center;gap:8px}.practice-option-pick{padding:6px 18px;font-size:13px}.is-zoomable,.is-zoomable img{cursor:zoom-in}.daily-zoom-overlay,.daily-zoom-overlay img{cursor:zoom-out}.practice-question{text-align:center;font-weight:600;color:var(--text-heading);margin:14px 0 6px;line-height:1.45}.practice-chat{margin-top:12px;display:flex;flex-direction:column;gap:8px}.chat-msg{padding:10px 14px;border-radius:14px;max-width:85%;line-height:1.45;font-size:14px}.chat-msg.chat-assistant{background:var(--accent-tint);border:1px solid var(--accent-tint-strong);align-self:flex-start;border-bottom-left-radius:4px}.chat-msg.chat-user{background:var(--surface-soft);border:1px solid var(--border);align-self:flex-end;border-bottom-right-radius:4px}.chat-input-row{display:flex;gap:8px;align-items:flex-end;margin-top:4px}.chat-input-row textarea{flex:1 1}.chat-input-row .onb-btn{white-space:nowrap}.practice-final-choice{display:flex;flex-direction:column;gap:10px;align-items:center}.practice-final-choice .muted{margin-bottom:4px}.practice-self{display:flex;flex-direction:column;gap:4px}.practice-final{background:var(--surface-soft);border:1px solid var(--border);border-radius:14px;padding:24px}.practice-final h2{margin:0 0 16px;color:var(--text-heading);text-align:center}.practice-final-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:10px;gap:10px;margin-bottom:20px}.practice-final-card{background:var(--surface-soft);border-radius:10px;padding:8px}.practice-final-card img{width:100%;height:130px;object-fit:cover;border-radius:6px;margin-bottom:6px}.practice-final-info{padding:0 2px}.plan-chip{display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:14px;font-size:12px;font-weight:700;text-decoration:none;letter-spacing:.02em;transition:filter .15s}.plan-chip:hover{filter:brightness(1.1);text-decoration:none}.plan-chip-free{background:var(--surface-soft);color:var(--text-dim);border:1px solid var(--border)}.plan-chip-pro{background:linear-gradient(135deg,var(--accent),var(--accent-soft));color:var(--text-on-accent);border:1px solid var(--accent);box-shadow:0 4px 12px var(--accent-tint-strong)}.sub-wrap{padding:32px 24px;max-width:920px;margin:0 auto}.sub-banner{background:var(--accent-tint-strong);color:var(--text-heading);border:1px solid var(--accent);border-radius:12px;padding:12px 16px;margin-bottom:20px;font-size:14px}.sub-h1{font-size:28px;margin:0 0 6px}.sub-sub{opacity:.75;margin:0 0 28px;font-size:15px}.sub-cards{display:grid;grid-template-columns:1fr 1fr;grid-gap:18px;gap:18px}@media (max-width:720px){.sub-cards{grid-template-columns:1fr}}.sub-card{background:var(--bg-panel);border:2px solid var(--border);border-radius:16px;padding:24px 24px 22px;position:relative}.sub-card-pro{border-color:var(--accent)}.sub-card.is-current{box-shadow:0 0 0 3px var(--accent-tint-strong)}.sub-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.sub-card-head h2{margin:0;font-size:20px}.sub-badge{display:inline-flex;align-items:center;height:22px;padding:0 10px;border-radius:11px;font-size:11px;font-weight:700}.sub-badge-now{background:var(--accent);color:var(--text-on-accent)}.sub-price{font-size:36px;font-weight:800;color:var(--text-heading);margin:8px 0 18px}.sub-price span{font-size:14px;font-weight:500;color:var(--text-dim);margin-left:4px}.sub-features{list-style:none;padding:0;margin:0 0 18px;display:flex;flex-direction:column;gap:8px}.sub-features li{font-size:14px;line-height:1.4;padding-left:4px}.sub-btn{width:100%;background:linear-gradient(135deg,var(--accent),var(--accent-soft));color:var(--text-on-accent);border:none;border-radius:12px;padding:14px 20px;font-size:15px;font-weight:700;cursor:pointer;box-shadow:0 6px 20px var(--accent-tint-strong)}.sub-btn:hover:not(:disabled){filter:brightness(1.1)}.sub-btn:disabled{opacity:.5;cursor:wait}.sub-btn-ghost{background:transparent;border:1px solid var(--border);color:var(--text-dim);border-radius:10px;padding:8px 14px;font-size:12px;cursor:pointer;margin-top:10px}.sub-btn-ghost:hover{background:var(--surface-soft);color:var(--text)}.sub-info{font-size:13px;line-height:1.5}.sub-fine{font-size:11px;color:var(--text-dim);margin-top:14px;line-height:1.5}.sub-err{color:var(--danger);font-size:12px;margin-top:8px}