:root{--color-bg: #fdf3e4;--color-bg-alt: #f8e8cc;--color-surface: #ffffff;--color-border: #ecd9b8;--color-text: #2b2013;--color-text-muted: #8a7a5c;--color-primary: #f2557d;--color-primary-hover: #e13c68;--color-primary-shadow: #b91f4a;--color-primary-contrast: #ffffff;--color-secondary: #2f8f52;--color-secondary-hover: #26773f;--color-secondary-shadow: #1a5c2c;--color-accent: #f0a324;--color-accent-shadow: #c67c0e;--color-danger: #d8482f;--color-danger-shadow: #a4321e;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 22px;--radius-pill: 999px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--font-sans: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--font-display: "Baloo 2", var(--font-sans);--shadow-card: 0 2px 0 var(--color-border), 0 6px 16px -8px rgba(43, 32, 19, .25);--felt-bg-gradient: radial-gradient(120% 90% at 50% -20%, #3f7345 0%, #2f5233 45%, #1c3119 100%);--felt-header-bg: #0a160c;--felt-text: #fdf3e4;--felt-text-bright: #cfe8d3;--felt-text-muted: #a7c8ad;--felt-text-dim: #8fae95;--felt-border: rgba(253, 243, 228, .12);color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0;overscroll-behavior:none;height:100dvh}body{font-family:var(--font-sans);background:radial-gradient(circle at 15% -10%,#fff6e8 0%,transparent 45%),var(--color-bg);background-attachment:fixed;color:var(--color-text);line-height:1.5;font-weight:600;-webkit-font-smoothing:antialiased}#root{min-height:100dvh;display:flex;flex-direction:column}h1,h2,h3{font-family:var(--font-display);font-weight:700;line-height:1.15;margin:0 0 var(--space-2);color:var(--color-secondary)}h1{font-size:clamp(1.9rem,5vw,2.75rem)}h2{font-size:clamp(1.3rem,3.4vw,1.65rem)}p{margin:0 0 var(--space-3)}a{color:var(--color-primary);text-decoration:none;font-weight:800}a:hover{text-decoration:underline}label{display:flex;flex-direction:column;gap:var(--space-1);font-size:.9rem;font-weight:800;color:var(--color-text-muted)}input,select,textarea{font-family:inherit;font-size:1rem;font-weight:600;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-text);transition:border-color .15s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary)}button{font-family:var(--font-display);font-size:1.05rem;font-weight:700;letter-spacing:.01em;padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);border:none;background:var(--color-primary);color:var(--color-primary-contrast);cursor:pointer;box-shadow:0 4px 0 var(--color-primary-shadow);transition:background-color .15s ease,transform .08s ease,box-shadow .08s ease;min-height:44px}button:hover:not(:disabled){background:var(--color-primary-hover)}button:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 var(--color-primary-shadow)}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:0 4px #0000001a}fieldset{border:2px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4)}legend{padding:0 var(--space-2);font-family:var(--font-display);font-weight:700;color:var(--color-secondary)}ul{padding-left:1.2em}.container{width:100%;max-width:32rem;margin:0 auto;padding:var(--space-6) var(--space-4);padding-top:max(var(--space-6),env(safe-area-inset-top));padding-bottom:max(var(--space-6),env(safe-area-inset-bottom));padding-left:max(var(--space-4),env(safe-area-inset-left));padding-right:max(var(--space-4),env(safe-area-inset-right))}.container-wide{width:100%;max-width:64rem;margin:0 auto;padding:var(--space-6) var(--space-4);padding-top:max(var(--space-6),env(safe-area-inset-top));padding-bottom:max(var(--space-6),env(safe-area-inset-bottom));padding-left:max(var(--space-4),env(safe-area-inset-left));padding-right:max(var(--space-4),env(safe-area-inset-right))}.card{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-card)}.card-link{transition:transform .08s ease,box-shadow .08s ease,border-color .15s ease}.card-link:hover{border-color:var(--color-primary);transform:translateY(-2px);box-shadow:0 6px 0 var(--color-border)}.card-link:active{transform:translateY(0);box-shadow:var(--shadow-card)}.btn-secondary{background:var(--color-surface);color:var(--color-secondary);border:2px solid var(--color-border);box-shadow:0 4px 0 var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-alt)}.btn-secondary:active:not(:disabled){box-shadow:0 1px 0 var(--color-border)}a.btn-secondary{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.05rem;font-weight:700;letter-spacing:.01em;padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);min-height:44px;transition:background-color .15s ease,transform .08s ease,box-shadow .08s ease}a.btn-secondary:active{transform:translateY(3px);box-shadow:0 1px 0 var(--color-border)}.btn-sm{min-height:32px;padding:var(--space-1) var(--space-3);font-size:.85rem;box-shadow:0 3px 0 var(--color-primary-shadow)}.btn-sm:active:not(:disabled){box-shadow:0 1px 0 var(--color-primary-shadow)}.btn-link{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-primary-contrast)!important;font-family:var(--font-display);font-size:1.1rem;font-weight:700;text-decoration:none!important;box-shadow:0 5px 0 var(--color-primary-shadow);transition:transform .08s ease,box-shadow .08s ease,background-color .15s ease}.btn-link:hover{background:var(--color-primary-hover)}.btn-link:active{transform:translateY(4px);box-shadow:0 1px 0 var(--color-primary-shadow)}.btn-link.btn-link-secondary{background:var(--color-secondary);box-shadow:0 5px 0 var(--color-secondary-shadow)}.btn-link.btn-link-secondary:hover{background:var(--color-secondary-hover)}.btn-link.btn-link-secondary:active{box-shadow:0 1px 0 var(--color-secondary-shadow)}.link-row{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4)}.link-row a{display:inline-flex;align-items:center;min-height:44px;padding:var(--space-2) var(--space-3);margin:calc(-1 * var(--space-2)) calc(-1 * var(--space-3))}.back-link{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-3) var(--space-3) var(--space-3) 0;margin:calc(-1 * var(--space-3)) 0 calc(var(--space-4) - var(--space-3)) 0;color:var(--color-text-muted)!important;font-family:var(--font-display);font-weight:600;font-size:.95rem}.back-link:hover{color:var(--color-primary)!important}.page-icon-heading{display:flex;align-items:center;gap:var(--space-2)}.page-icon-heading .icon{font-size:1.9rem}.auth-form{width:100%;max-width:24rem;margin:max(var(--space-6),env(safe-area-inset-top)) auto max(var(--space-6),env(safe-area-inset-bottom));padding:var(--space-5) var(--space-4);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:var(--space-4)}.auth-form p a{display:inline-block;padding:var(--space-2);margin:calc(-1 * var(--space-2))}.form-error,.form-message{margin:0;padding:var(--space-3);border-radius:var(--radius-sm);font-size:.9rem;font-weight:700}.form-error{background:#fce2dc;color:var(--color-danger)}.form-message{background:#e2f3e6;color:var(--color-secondary)}.app-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-5);padding-top:max(var(--space-3),env(safe-area-inset-top));padding-left:max(var(--space-5),env(safe-area-inset-left));padding-right:max(var(--space-5),env(safe-area-inset-right));background:var(--color-secondary);box-shadow:0 3px 0 var(--color-secondary-shadow);flex-wrap:wrap}.app-header a{color:#fff;font-family:var(--font-display);font-size:1.1rem}.app-header span{color:#eafbee;font-weight:700}.badge{display:inline-flex;align-items:center;gap:var(--space-1);background:var(--color-accent);color:#4a2f04;border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);font-family:var(--font-display);font-size:.85rem;font-weight:700;box-shadow:0 2px 0 var(--color-accent-shadow)}.progress-track{width:100%;height:10px;border-radius:999px;background:var(--color-bg-alt);overflow:hidden}.progress-fill{height:100%;background:var(--color-accent);border-radius:999px}.game-canvas-area{touch-action:none;background:radial-gradient(ellipse at center,#1d4029,#12271a 55%,#0a1610)}.game-canvas-frame{position:absolute;top:0;right:0;bottom:0;left:0;max-width:56rem;margin:0 auto}.turn-banner{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:5;font-family:var(--font-display);font-size:1.6rem;font-weight:800;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.6);text-align:center;padding:0 var(--space-4);animation:turn-banner-pop 1.4s ease-out both}@keyframes turn-banner-pop{0%{opacity:0;transform:scale(.85)}15%{opacity:1;transform:scale(1)}75%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1)}}.turn-timer{display:flex;align-items:center;gap:var(--space-2);width:6rem;flex-shrink:0}.turn-timer-label{font-size:.8rem;white-space:nowrap}.turn-overlay{position:absolute;left:0;right:0;bottom:.75rem;display:flex;flex-direction:column;align-items:center;gap:var(--space-1);color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.8);padding:0 var(--space-3)}.turn-overlay-row{display:flex;align-items:center;justify-content:center;gap:var(--space-2);flex-wrap:wrap}.turn-overlay-status,.turn-overlay-outcome{margin:0;font-size:.9rem}.player-chip-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.player-chip{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);border:2px solid transparent}.player-chip.is-current-turn{border-color:var(--color-primary);background:var(--color-bg-alt)}.player-chip-avatar{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;border-radius:50%;overflow:hidden;font-size:1rem;font-weight:800;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35);box-shadow:inset 0 0 0 2px #ffffff59}.player-chip-avatar-img{width:135%;height:135%;object-fit:contain}.player-chip-info{display:flex;flex-direction:column;min-width:0;line-height:1.25}.player-chip-name{font-weight:700;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-chip-badges{display:flex;gap:var(--space-1)}.player-chip-badges:empty{display:none}.player-chip-score{font-size:.78rem;color:var(--color-text-muted)}.chat-messages{flex:1}@media(max-width:640px){.game-row{flex-direction:column!important;min-height:0}.game-row .game-canvas-area{flex:1!important;min-height:0}.player-list-aside{width:100%!important;height:5.25rem;max-height:5.25rem;flex-shrink:0;border-bottom:1px solid var(--color-border);padding:.4rem!important;overflow-y:hidden!important;overflow-x:auto}.player-list-aside .player-chip-list{flex-direction:row;height:100%}.player-list-aside .player-chip{flex-direction:column;flex-shrink:0;width:3.75rem;text-align:center;gap:.15rem;padding:.25rem}.player-list-aside .player-chip-info{align-items:center}.player-list-aside .player-chip-name{max-width:3.5rem;font-size:.7rem}.player-list-aside .player-chip-score{font-size:.68rem}.player-list-aside .player-chip-badges{display:none}.player-list-aside.fade-left{mask-image:linear-gradient(to right,transparent,black 20px);-webkit-mask-image:linear-gradient(to right,transparent,black 20px)}.player-list-aside.fade-right{mask-image:linear-gradient(to left,transparent,black 20px);-webkit-mask-image:linear-gradient(to left,transparent,black 20px)}.player-list-aside.fade-left.fade-right{mask-image:linear-gradient(to right,transparent,black 20px,black calc(100% - 20px),transparent);-webkit-mask-image:linear-gradient(to right,transparent,black 20px,black calc(100% - 20px),transparent)}.turn-overlay{bottom:.5rem;gap:.25rem}.turn-overlay-status,.turn-overlay-outcome{font-size:.8rem}.turn-timer{width:4.5rem}.turn-overlay .btn-sm{padding:.25rem .6rem;font-size:.8rem}.chat-panel{flex:0 0 auto!important;max-height:min(24dvh,9rem)!important;min-height:5.5rem}}.spinner{display:inline-block;width:.9em;height:.9em;border:.15em solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;vertical-align:-.15em;margin-right:.4em}@keyframes spin{to{transform:rotate(360deg)}}.training-sheet{background:var(--color-surface);border-top:2px solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:0 -6px 20px -10px #2b201359;padding:var(--space-4);padding-bottom:max(var(--space-4),env(safe-area-inset-bottom));padding-left:max(var(--space-4),env(safe-area-inset-left));padding-right:max(var(--space-4),env(safe-area-inset-right));display:flex;flex-direction:column;gap:var(--space-3);max-height:62dvh;overflow-y:auto}.training-sheet-heading{margin:0;text-align:center;font-family:var(--font-display);font-size:.95rem;color:var(--color-text-muted)}.training-label-grid,.training-label-grid-fallback{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2)}.training-label-btn{padding:var(--space-2) var(--space-3);font-size:.85rem;min-height:2.75rem;box-shadow:0 3px 0 var(--color-primary-shadow)}.training-label-btn.btn-secondary{box-shadow:0 3px 0 var(--color-border)}.training-checkbox{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:2px solid var(--color-border);background:var(--color-bg-alt);font-family:var(--font-display);font-size:.85rem;font-weight:700;color:var(--color-text);cursor:pointer}.training-checkbox input[type=checkbox]{width:1.15rem;height:1.15rem;flex-shrink:0;accent-color:var(--color-primary);cursor:pointer}.home-hero{position:relative;border-radius:var(--radius-lg);background:radial-gradient(120% 140% at 50% 0%,#3a6b40,#2f5233 55%,#21391f);padding:var(--space-5) var(--space-4) var(--space-5);box-shadow:inset 0 0 0 1px #ffffff0d,0 14px 26px -14px #21391fa6;overflow:hidden}.home-hero-tag{font-family:var(--font-display);font-weight:700;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:#cfe8d3;margin:0 0 var(--space-1)}.home-hero-headline{font-family:var(--font-display);font-weight:800;font-size:1.5rem;color:#fff;margin:0 0 var(--space-4);text-wrap:balance;line-height:1.15}.home-hero-cta{display:block;width:100%;border:none;border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-primary-contrast);font-family:var(--font-display);font-weight:800;font-size:1.05rem;padding:var(--space-4) var(--space-4) 1.05rem;box-shadow:0 5px 0 var(--color-primary-shadow),0 10px 18px -6px #00000073;cursor:pointer;transition:transform .08s ease,box-shadow .08s ease;text-align:left;text-decoration:none}.home-hero-cta:active{transform:translateY(4px);box-shadow:0 1px 0 var(--color-primary-shadow),0 4px 10px -4px #0006}.home-hero-cta .cta-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.home-hero-cta .cta-sub{display:block;font-family:var(--font-sans);font-weight:700;font-size:.72rem;color:#ffd7e2;margin-top:var(--space-1)}.home-hero-cta .cta-arrow{font-size:1.2rem;flex-shrink:0}.home-chunky-btn{border:none;border-radius:var(--radius-md);font-family:var(--font-display);font-weight:800;font-size:.9rem;padding:var(--space-3) var(--space-3) .85rem;text-align:left;cursor:pointer;transition:transform .08s ease,box-shadow .08s ease;color:#fff;text-decoration:none;display:block}.home-chunky-btn:active{transform:translateY(3px)}.home-chunky-btn.green{background:var(--color-secondary);box-shadow:0 4px 0 var(--color-secondary-shadow)}.home-chunky-btn.green:active{box-shadow:0 1px 0 var(--color-secondary-shadow)}.home-chunky-btn.amber{background:var(--color-accent);box-shadow:0 4px 0 var(--color-accent-shadow)}.home-chunky-btn.amber:active{box-shadow:0 1px 0 var(--color-accent-shadow)}.scroll-row{position:relative;display:flex;align-items:center}.scroll-row-track{display:flex;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;min-width:0}.scroll-row-track::-webkit-scrollbar{display:none}.scroll-row-track.fade-left{mask-image:linear-gradient(to right,transparent,black 28px);-webkit-mask-image:linear-gradient(to right,transparent,black 28px)}.scroll-row-track.fade-right{mask-image:linear-gradient(to left,transparent,black 28px);-webkit-mask-image:linear-gradient(to left,transparent,black 28px)}.scroll-row-track.fade-left.fade-right{mask-image:linear-gradient(to right,transparent,black 28px,black calc(100% - 28px),transparent);-webkit-mask-image:linear-gradient(to right,transparent,black 28px,black calc(100% - 28px),transparent)}.scroll-row-arrow{display:none}@media(hover:hover)and (pointer:fine){.scroll-row-arrow:not([hidden]){display:flex;position:absolute;z-index:2;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;flex-shrink:0;border-radius:999px;border:2px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-card);color:var(--color-text);font-size:1.1rem;line-height:1;cursor:pointer;padding:0}.scroll-row-arrow-left{left:-.5rem}.scroll-row-arrow-right{right:-.5rem}}.home-footer-link{font-size:.78rem;font-weight:700;letter-spacing:normal;color:var(--color-text-muted);text-decoration:underline;text-underline-offset:2px;background:none;border:none;box-shadow:none;min-height:auto;cursor:pointer;font-family:inherit;padding:0}.home-footer-link:hover:not(:disabled){background:none;color:var(--color-text)}.home-footer-link:active:not(:disabled){transform:none;box-shadow:none}.felt-home{background:var(--felt-bg-gradient);color:var(--felt-text);display:flex;flex-direction:column}.felt-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-6);padding-top:max(var(--space-4),env(safe-area-inset-top));padding-left:max(var(--space-6),env(safe-area-inset-left));padding-right:max(var(--space-6),env(safe-area-inset-right));border-bottom:1px solid var(--felt-border);flex-wrap:wrap}.felt-header-left{display:flex;align-items:center;gap:var(--space-6)}.felt-header-brand{display:flex;align-items:center;gap:var(--space-2);color:var(--felt-text);text-decoration:none;font-family:var(--font-display);font-weight:800;font-size:1.15rem;letter-spacing:-.01em}.felt-header-brand img{width:30px;height:32px;display:block}.felt-header-nav{display:flex;gap:var(--space-5);font-family:var(--font-display);font-weight:800;font-size:.9rem}.felt-header-nav a{color:var(--felt-text-bright);text-decoration:none}.felt-header-nav a:hover{color:var(--felt-text)}.felt-header-right{display:flex;align-items:center;gap:var(--space-3)}.felt-vip-pill{display:inline-flex;align-items:center;gap:var(--space-1);background:linear-gradient(#f7bf55,#f0a324);color:#4a2f04;font-family:var(--font-display);font-weight:800;font-size:.85rem;border-radius:var(--radius-pill);padding:.5rem var(--space-3);box-shadow:0 3px 0 var(--color-accent-shadow);text-decoration:none;white-space:nowrap}.felt-vip-pill-short{display:none}.felt-user-chip{display:flex;align-items:center;gap:var(--space-2);background:#fdf3e41a;border:1px solid rgba(253,243,228,.18);border-radius:var(--radius-pill);padding:.2rem var(--space-3) .2rem .2rem;text-decoration:none;color:var(--felt-text)}.felt-user-avatar{width:30px;height:30px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#2b4a2e}.felt-user-avatar img{width:150%;height:150%;object-fit:contain}.felt-user-meta{display:flex;flex-direction:column;line-height:1.15}.felt-user-name{font-weight:800;font-size:.78rem}.felt-user-level{font-size:.68rem;color:var(--felt-text-muted);font-weight:700}.felt-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--space-6);align-items:center;padding:var(--space-7) var(--space-6)}.felt-hero-copy{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4)}.felt-hero-eyebrow{display:inline-flex;align-items:center;font-family:var(--font-display);font-weight:800;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--felt-text-muted);border:1px solid rgba(253,243,228,.22);border-radius:var(--radius-pill);padding:.35rem .85rem}.felt-hero-headline{font-family:var(--font-display);font-weight:800;font-size:clamp(2.2rem,4.4vw,3.6rem);line-height:.98;letter-spacing:-.02em;margin:0;color:#fff;text-wrap:balance}.felt-hero-headline-accent{color:var(--color-primary)}.felt-hero-sub{margin:0;font-size:1.05rem;font-weight:600;color:var(--felt-text-bright);max-width:44ch;text-wrap:pretty}.felt-hero-cta-row{display:flex;align-items:stretch;gap:var(--space-3);flex-wrap:wrap}.felt-hero-cta-primary{display:flex;flex-direction:column;justify-content:center;gap:.2rem;background:var(--color-primary);color:var(--color-primary-contrast);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);box-shadow:0 6px 0 var(--color-primary-shadow),0 18px 30px -12px #0000008c;text-decoration:none;transition:transform .08s ease,box-shadow .08s ease}.felt-hero-cta-primary:active{transform:translateY(4px);box-shadow:0 2px 0 var(--color-primary-shadow)}.felt-cta-row{display:flex;align-items:center;gap:var(--space-3);font-family:var(--font-display);font-weight:800;font-size:1.4rem;line-height:1}.felt-cta-arrow{font-size:1.3rem}.felt-cta-sub{display:flex;align-items:center;gap:var(--space-2);font-size:.78rem;font-weight:700;color:#ffd7e2}.felt-pulse-dot{width:7px;height:7px;border-radius:50%;background:#8ef0a8;flex-shrink:0;animation:felt-pulse-dot 1.6s ease-in-out infinite}@keyframes felt-pulse-dot{0%,to{opacity:1}50%{opacity:.25}}.felt-hero-cta-secondary{display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:.95rem;color:var(--felt-text);background:none;border:2px solid rgba(253,243,228,.28);border-radius:var(--radius-lg);padding:0 var(--space-4);text-decoration:none;box-shadow:none;min-height:auto}.felt-hero-microcopy{margin:0;font-size:.78rem;font-weight:700;color:var(--felt-text-dim)}.felt-hero-stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:320px}.felt-stage-circle{position:relative;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle at 40% 30%,#4c8353,#2c4d2f 60%,#22391f);box-shadow:inset 0 0 0 10px #00000024,inset 0 -16px 34px #00000059,0 34px 50px -26px #000000b3;display:flex;align-items:center;justify-content:center}.felt-stage-sparkle{position:absolute;color:#ffe38a;font-size:1.2rem;opacity:0;animation:felt-sparkle 2.6s ease-in-out infinite}.felt-stage-sparkle.sp-1{left:16%;top:14%;animation-delay:.1s}.felt-stage-sparkle.sp-2{right:14%;top:22%;font-size:.95rem;animation-delay:.9s}.felt-stage-sparkle.sp-3{left:44%;bottom:12%;font-size:1rem;animation-delay:1.7s}@keyframes felt-sparkle{0%,to{opacity:0;transform:scale(.6)}50%{opacity:1;transform:scale(1)}}.felt-stage-pigs{display:flex;align-items:flex-end;gap:var(--space-2)}.felt-stage-pig{width:130px;filter:drop-shadow(0 14px 14px rgba(0,0,0,.4))}.felt-stage-pig.pig-a{transform:rotate(-8deg)}.felt-stage-pig.pig-b{width:116px;transform:rotate(6deg)}.felt-stage-card{position:absolute;background:var(--color-bg);color:var(--color-text);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);box-shadow:0 10px 24px -10px #0009;font-family:var(--font-display);font-weight:800}.felt-stage-card.card-turn{right:0;top:6px;transform:rotate(3deg)}.felt-stage-card-label{display:block;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.felt-stage-card-value{display:block;font-size:1.6rem;line-height:1;color:var(--color-secondary)}.felt-stage-card.card-toast{left:-8px;bottom:26px;font-size:.9rem;transform:rotate(-4deg);padding:var(--space-2) var(--space-3)}.felt-body{background:var(--color-bg);color:var(--color-text);border-radius:2.1rem 2.1rem 0 0;padding:var(--space-6) var(--space-6) var(--space-7);padding-bottom:max(var(--space-7),env(safe-area-inset-bottom));padding-left:max(var(--space-6),env(safe-area-inset-left));padding-right:max(var(--space-6),env(safe-area-inset-right));display:flex;flex-direction:column;gap:var(--space-6)}.felt-section{display:flex;flex-direction:column;gap:var(--space-4)}.felt-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.felt-section-heading h2{font-family:var(--font-display);font-weight:800;font-size:1.4rem;margin:0;color:var(--color-secondary)}.felt-section-heading a{font-family:var(--font-display);font-weight:800;font-size:.85rem;color:var(--color-primary);text-decoration:none}.felt-section-heading.learn{align-items:baseline;gap:var(--space-4)}.felt-section-sub{font-size:.92rem;font-weight:700;color:var(--color-text-muted)}.felt-tables-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}.felt-table-card{display:flex;align-items:center;gap:var(--space-3);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);box-shadow:0 2px 0 var(--color-border)}.felt-table-icon{width:44px;height:44px;border-radius:var(--radius-md);background:#e2f2e6;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}.felt-table-meta{display:flex;flex-direction:column;line-height:1.25;min-width:0}.felt-table-name{font-family:var(--font-display);font-weight:800;font-size:1.02rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.felt-table-sub{font-size:.78rem;font-weight:700;color:var(--color-text-muted)}.felt-table-join{margin-left:auto;flex-shrink:0;font-family:var(--font-display);font-weight:800;font-size:.85rem;color:#fff;background:var(--color-secondary);border-radius:var(--radius-pill);padding:.45rem var(--space-3);box-shadow:0 3px 0 var(--color-secondary-shadow);text-decoration:none}.felt-table-join[aria-disabled=true]{background:var(--color-border);color:var(--color-text-muted);box-shadow:none;cursor:default}.felt-learn-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-3)}.felt-position-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-2);box-shadow:0 2px 0 var(--color-border);text-align:center}.felt-position-card img{width:100%;max-width:78px;height:66px;object-fit:contain}.felt-position-label{font-family:var(--font-display);font-weight:800;font-size:.9rem}.felt-position-points{font-size:.78rem;font-weight:800;color:var(--color-text-muted)}.felt-position-card.bad{background:var(--color-bg);border:2px dashed var(--color-danger);box-shadow:none}.felt-position-card.bad .felt-position-label,.felt-position-card.bad .felt-position-points{color:var(--color-danger)}.felt-promo-row{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--space-4);align-items:stretch}.felt-vip-promo{position:relative;overflow:hidden;border-radius:var(--radius-lg);background:linear-gradient(135deg,#f7c463,#f0a324 55%,#dd8f13);color:#4a2f04;padding:var(--space-5);box-shadow:0 6px 0 var(--color-accent-shadow);display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1)}.felt-vip-promo-eyebrow{font-family:var(--font-display);font-weight:800;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;opacity:.75}.felt-vip-promo-title{font-family:var(--font-display);font-weight:800;font-size:1.7rem;line-height:1.1;margin-bottom:var(--space-2)}.felt-vip-promo-perks{display:flex;gap:var(--space-4);flex-wrap:wrap;font-size:.85rem;font-weight:800}.felt-vip-promo-cta{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-3);background:#2b2013;color:#ffe0a3;font-family:var(--font-display);font-weight:800;font-size:.95rem;border-radius:var(--radius-md);padding:.7rem var(--space-4);text-decoration:none;box-shadow:0 4px #00000059}.felt-vip-promo-pig{position:absolute;right:-10px;bottom:-18px;width:130px;opacity:.28;transform:rotate(-12deg);pointer-events:none}.felt-quicklinks{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.felt-quicklink{display:flex;flex-direction:column;gap:var(--space-2);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-3);text-decoration:none;color:var(--color-text);box-shadow:0 2px 0 var(--color-border);font-family:var(--font-display);font-weight:800;font-size:.9rem}.felt-quicklink-icon{width:36px;height:36px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.felt-quicklink-icon svg{width:18px;height:18px}.felt-quicklink-icon.tint-inventory{background:#e2f2e6}.felt-quicklink-icon.tint-hiscores{background:#fdecd0}.felt-quicklink-icon.tint-challenges{background:#e2ecf7}.felt-quicklink-icon.tint-achievements{background:#ece2f7}.felt-quicklink-icon.tint-admin{background:#fbdfd8}.felt-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;border-top:2px solid var(--color-border);padding-top:var(--space-5);font-size:.78rem;font-weight:700;color:var(--color-text-muted)}.felt-footer-links{display:flex;gap:var(--space-4)}.felt-footer-links a{color:inherit}@media(prefers-reduced-motion:reduce){.felt-stage-sparkle,.felt-pulse-dot{animation:none!important}}@media(max-width:900px){.felt-hero,.felt-promo-row{grid-template-columns:1fr}}@media(max-width:640px){.felt-header-nav,.felt-vip-pill-full{display:none}.felt-vip-pill-short{display:inline}.felt-vip-pill{padding:.4rem .7rem}.felt-header{padding:var(--space-3) var(--space-4);padding-top:max(var(--space-3),env(safe-area-inset-top));padding-left:max(var(--space-4),env(safe-area-inset-left));padding-right:max(var(--space-4),env(safe-area-inset-right))}.felt-hero{gap:14px;padding:var(--space-2) var(--space-4) var(--space-5);text-align:center}.felt-hero-copy{display:contents}.felt-hero-eyebrow{order:1;justify-self:center}.felt-hero-headline{order:2;font-size:2.1rem}.felt-hero-sub,.felt-hero-microcopy{display:none}.felt-hero-stage{order:3;min-height:220px}.felt-hero-cta-row{order:4;width:100%;flex-direction:column}.felt-hero-cta-primary,.felt-hero-cta-secondary{width:100%;text-align:center}.felt-hero-cta-primary{margin-bottom:6px}.felt-cta-row,.felt-cta-sub{justify-content:center}.felt-stage-circle{width:220px;height:220px}.felt-stage-pig{width:96px}.felt-stage-pig.pig-b{width:84px}.felt-stage-card,.felt-vip-promo-pig{display:none}.felt-body{border-radius:1.6rem 1.6rem 0 0;padding:var(--space-5) var(--space-4) var(--space-6);padding-bottom:max(var(--space-6),env(safe-area-inset-bottom));padding-left:max(var(--space-4),env(safe-area-inset-left));padding-right:max(var(--space-4),env(safe-area-inset-right))}.felt-tables-grid{grid-template-columns:1fr}.felt-learn-grid{grid-template-columns:repeat(3,1fr)}}.felt-room{height:100dvh;display:flex;flex-direction:column;background:var(--felt-bg-gradient);color:var(--felt-text)}.felt-leave-btn{font-family:var(--font-display);font-weight:800;font-size:.85rem;color:#ffc7d5;background:none;border:2px solid rgba(242,85,125,.5);border-radius:11px;padding:.5rem 1.1rem;min-height:auto;box-shadow:none;cursor:pointer}.felt-leave-btn:hover{background:#f2557d1f}.felt-leave-btn:active{transform:none;box-shadow:none}.felt-waiting-body{flex:1;min-height:0;overflow-y:auto;display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);align-items:center;padding:var(--space-6) var(--space-7)}.felt-waiting-left{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4)}.felt-room-eyebrow{font-family:var(--font-display);font-weight:800;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--felt-text-muted);margin:0}.felt-code-card{display:flex;align-items:center;gap:var(--space-3);background:var(--felt-text);color:#2b2013;border-radius:20px;padding:var(--space-3) var(--space-4);box-shadow:0 14px 26px -14px #0009;flex-wrap:wrap}.felt-code-card-info{display:flex;flex-direction:column;line-height:1.1}.felt-code-card-label{font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#8a7a5c}.felt-code-card-value{font-family:var(--font-display);font-weight:800;font-size:2rem;letter-spacing:.14em}.felt-code-card-actions{display:flex;flex-direction:column;gap:var(--space-2);margin-left:var(--space-2)}.felt-code-btn{font-family:var(--font-display);font-weight:800;font-size:.8rem;color:#fff;border:none;border-radius:11px;padding:.5rem 1rem;min-height:auto;cursor:pointer;white-space:nowrap}.felt-code-btn.copy{background:#2f8f52;box-shadow:0 3px #1a5c2c}.felt-code-btn.copy:hover{background:#2f8f52}.felt-code-btn.discord{background:#5865f2;box-shadow:0 3px #3c46b8}.felt-code-btn.discord:hover{background:#5865f2}.felt-code-btn:active{transform:translateY(2px);box-shadow:none}.felt-waiting-status{margin:0;font-size:.85rem;font-weight:700;color:var(--felt-text-bright)}.felt-cpu-policy{font-family:var(--font-display);font-weight:700;font-size:.78rem;color:var(--felt-text);background:#fdf3e414;border:1px solid rgba(253,243,228,.22);border-radius:var(--radius-pill);padding:.3rem .6rem}.felt-waiting-right{display:flex;flex-direction:column;gap:var(--space-4)}.felt-seats-card{background:var(--felt-text);color:#2b2013;border-radius:26px;padding:var(--space-4) var(--space-5);box-shadow:0 18px 34px -18px #0009}.felt-seats-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-3)}.felt-seats-head h2{margin:0;font-family:var(--font-display);font-weight:800;font-size:1.2rem;color:#2f8f52}.felt-seats-count{font-size:.8rem;font-weight:800;color:#8a7a5c}.felt-seats-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.felt-seat{display:flex;align-items:center;gap:var(--space-2);background:#fff;border:2px solid #ecd9b8;border-radius:16px;padding:.6rem .7rem;min-width:0}.felt-seat.is-vip{border-color:#f0a324}.felt-seat-meta{display:flex;flex-direction:column;line-height:1.2;min-width:0}.felt-seat-name{font-size:.82rem;font-weight:800;color:#2b2013;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.felt-seat-sub{font-size:.68rem;font-weight:800;color:#8a7a5c}.felt-seat-remove{margin-left:auto;background:none;border:none;color:#8a7a5c;font-size:1.1rem;min-height:auto;box-shadow:none;padding:0 .2rem;line-height:1;cursor:pointer}.felt-seat-remove:hover{color:#2b2013;background:none}.felt-seat-empty{display:flex;align-items:center;justify-content:center;border:2px dashed #d9c7a4;border-radius:16px;padding:.6rem .7rem;color:#8a7a5c;font-size:.76rem;font-weight:800}.felt-scoring-card{background:#0a160c66;border:1px solid var(--felt-border);border-radius:22px;padding:var(--space-4)}.felt-scoring-heading{font-family:var(--font-display);font-weight:800;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--felt-text-muted);margin:0 0 var(--space-3)}.felt-scoring-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-2)}.felt-scoring-item{display:flex;flex-direction:column;align-items:center;gap:.15rem;text-align:center}.felt-scoring-item img{width:100%;max-width:56px;height:48px;object-fit:contain}.felt-scoring-item span:first-of-type{font-size:.66rem;font-weight:800}.felt-scoring-points{font-size:.7rem;font-weight:800;color:#ffe38a}.felt-scoring-item.bad span{color:#ff9d88}@media(max-width:900px){.felt-waiting-body{grid-template-columns:1fr;padding:var(--space-5) var(--space-4)}}@media(max-width:640px){.felt-code-card{width:100%}.felt-code-card-actions{flex:1}.felt-scoring-grid{grid-template-columns:repeat(3,1fr)}}.inv-level-card{display:flex;align-items:center;gap:var(--space-3);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);box-shadow:var(--shadow-card)}.inv-level-badge{flex-shrink:0;width:3.25rem;height:3.25rem;border-radius:50%;background:var(--color-primary);color:var(--color-primary-contrast);display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--font-display);box-shadow:inset 0 -3px #0000002e;line-height:1.1}.inv-level-badge strong{font-size:1.15rem}.inv-level-badge span{font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;opacity:.85}.inv-level-caption{margin:var(--space-2) 0 0;font-size:.78rem;color:var(--color-text-muted)}.inv-section-label{font-family:var(--font-display);font-weight:700;font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-muted);margin:0 0 var(--space-1)}.inv-section-sub{margin:0 0 var(--space-3);font-size:.85rem;color:var(--color-text-muted)}.inv-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:var(--space-3)}.inv-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-1);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-3);box-shadow:var(--shadow-card)}.inv-card.locked{opacity:.55}.inv-card-preview{width:72px;height:72px;display:flex;align-items:center;justify-content:center}.inv-card-swatch{width:72px;height:72px;border-radius:var(--radius-md);box-shadow:inset 0 -4px #00000026}.inv-card-name{font-family:var(--font-display);font-weight:700;font-size:.88rem}.inv-status-badge{font-size:.68rem;font-weight:800;font-family:var(--font-display);padding:.15rem .55rem;border-radius:var(--radius-pill);background:var(--color-bg-alt);color:var(--color-text-muted)}.inv-status-badge.equipped{background:var(--color-secondary);color:#fff}.inv-status-badge.owned{background:var(--color-accent);color:#4a2f04}.inv-card .btn-secondary,.inv-card .btn-accent,.inv-card button:not(.btn-secondary){width:100%;margin-top:var(--space-1);padding:var(--space-2) var(--space-3);font-size:.85rem;min-height:auto}.btn-accent{background:var(--color-accent);color:#4a2f04;border:none;box-shadow:0 4px 0 var(--color-accent-shadow)}.btn-accent:hover:not(:disabled){background:#f5b23e}.btn-accent:active:not(:disabled){box-shadow:0 1px 0 var(--color-accent-shadow)}a.btn-accent{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.05rem;font-weight:700;letter-spacing:.01em;padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);min-height:44px;transition:background-color .15s ease,transform .08s ease,box-shadow .08s ease}a.btn-accent:active{transform:translateY(3px);box-shadow:0 1px 0 var(--color-accent-shadow)}.lobby-option-header{display:flex;align-items:center;gap:var(--space-3)}.lobby-option-icon{font-size:1.6rem;flex-shrink:0}.lobby-option-header strong{font-family:var(--font-display);font-size:.95rem;display:block}.lobby-option-header p{margin:.1rem 0 0;font-size:.8rem;color:var(--color-text-muted)}.htp-section-header{display:flex;align-items:center;gap:var(--space-3)}.htp-icon-badge{flex-shrink:0;width:2.5rem;height:2.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem}.htp-icon-badge.tint-pink{background:#fde3ea}.htp-icon-badge.tint-green{background:#e2f2e6}.htp-icon-badge.tint-red{background:#fbdfd8}.htp-icon-badge.tint-neutral{background:var(--color-bg-alt)}.htp-position-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-left-width:5px;border-left-style:solid}.htp-position-card.accent-pink{border-left-color:var(--color-primary)}.htp-position-card.accent-green{border-left-color:var(--color-secondary)}.htp-position-card.accent-red{border-left-color:var(--color-danger)}.htp-position-card.accent-neutral{border-left-color:var(--color-border)}.htp-position-card img{border-radius:var(--radius-sm)}.hiscore-rank{flex-shrink:0;width:2.25rem;height:2.25rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:.9rem;color:var(--color-text-muted);background:var(--color-bg-alt)}.hiscore-rank.medal{font-size:1.2rem}.hiscore-rank.gold{background:#fdecd0}.hiscore-rank.silver{background:#e7ecf1}.hiscore-rank.bronze{background:#f3ded1}.reward-icon-badge{flex-shrink:0;width:3rem;height:3rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;line-height:1}.reward-icon-badge.done{background:#fdecd0}.reward-icon-badge.pending{background:var(--color-bg-alt)}.reward-card.done{border-color:var(--color-accent);background:#fffaf0}.stat-tile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:var(--space-3)}.stat-tile{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);text-align:center}.stat-tile-value{font-family:var(--font-display);font-weight:800;font-size:1.35rem;font-variant-numeric:tabular-nums}.stat-tile-label{font-size:.72rem;color:var(--color-text-muted);margin-top:.2rem;text-transform:uppercase;letter-spacing:.03em}.admin-tabs{display:flex;gap:2px;background:var(--color-bg-alt);border-radius:var(--radius-md);padding:3px;overflow-x:auto}.admin-tab{flex:1 1 auto;white-space:nowrap;border:none;background:none;min-height:auto;box-shadow:none;padding:.5rem .9rem;font-size:.85rem;font-family:var(--font-display);font-weight:700;color:var(--color-text-muted);border-radius:calc(var(--radius-md) - 3px);cursor:pointer;text-transform:capitalize}.admin-tab:hover:not(:disabled){background:none;color:var(--color-text)}.admin-tab.active{background:var(--color-surface);color:var(--color-primary);box-shadow:0 1px 3px #2b201326}.admin-table{width:100%;font-size:.85rem;border-collapse:collapse}.admin-table th{text-align:left;padding:.4rem .5rem;color:var(--color-text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;border-bottom:2px solid var(--color-border)}.admin-table td{padding:.5rem;border-bottom:1px solid var(--color-border);vertical-align:top}.admin-table tr:last-child td{border-bottom:none}
