/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.start{inset-inline-start:var(--spacing)}.contents{display:contents}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}}:root{--ink:#152039;--paper:#fffaf0;--line:#27395f29;--shadow:0 24px 70px #0913342e}*{box-sizing:border-box}html,body{min-height:100%}body{color:var(--ink);background:#17223e;margin:0;font-family:Microsoft YaHei,PingFang SC,Noto Sans SC,Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.54}.classroom-app{--base:#182546;--base-deep:#111a34;--accent:#f7b843;--accent-strong:#f19b34;--sky:#5679d8;color:#fdf9ed;background:radial-gradient(circle at 18% 12%, #ffde7633, transparent 28rem), radial-gradient(circle at 82% 70%, #738dff33, transparent 32rem), linear-gradient(135deg, var(--base-deep), var(--base));min-height:100vh;position:relative;overflow:hidden}.classroom-app:before,.classroom-app:after{content:"";pointer-events:none;filter:blur(1px);opacity:.45;border-radius:999px;position:fixed}.classroom-app:before{background:#fff8cf;width:14px;height:14px;top:16vh;left:12vw;box-shadow:18vw 7vh 0 -4px #f9d76a,35vw -4vh 0 -6px #fff,66vw 11vh 0 -5px #f7d48e,74vw 34vh 0 -3px #fff,17vw 62vh 0 -4px #f7d48e,58vw 72vh 0 -6px #fff,80vw 79vh 0 -3px #f9d76a}.classroom-app:after{border:1px solid #fff1bd38;width:25rem;height:25rem;bottom:-13rem;right:-11rem;box-shadow:0 0 0 4rem #fff1bd08,0 0 0 9rem #fff1bd06}.theme-festival{--base:#6c2142;--base-deep:#3d193c;--accent:#ffcf67;--accent-strong:#f27058;--sky:#f57976;background:radial-gradient(circle at 20% 12%, #ffeb8047, transparent 30rem), radial-gradient(circle at 85% 64%, #ff75703d, transparent 34rem), linear-gradient(135deg, var(--base-deep), var(--base))}.theme-calm{--base:#18515a;--base-deep:#11373d;--accent:#d9eca9;--accent-strong:#94cdb8;--sky:#77c9d5;background:radial-gradient(circle at 18% 15%, #d8efbd2b, transparent 30rem), linear-gradient(135deg, var(--base-deep), var(--base))}.site-notice,.admin-notice{z-index:30;color:#fffae7;background:#49192aeb;border:1px solid #fff0ba59;border-radius:999px;max-width:min(90vw,540px);padding:10px 16px;font-size:.9rem;position:fixed;top:18px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0003}.home-screen{grid-template-rows:auto auto 1fr auto;min-height:100vh;padding:22px clamp(20px,4vw,64px) 28px;display:grid}.home-header,.tool-header,.admin-header{justify-content:space-between;align-items:center;gap:20px;display:flex}.sync-dot{color:#ffffffc7;background:#ffffff14;border:1px solid #ffffff2b;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:.82rem;display:inline-flex}.sync-dot:before{content:"";background:#8fedab;border-radius:50%;width:8px;height:8px;box-shadow:0 0 12px #8fedab}.admin-link,.back-home-link{color:#fff7d7;background:#ffffff14;border:1px solid #ffe9a773;border-radius:12px;justify-content:center;align-items:center;min-height:42px;padding:9px 15px;text-decoration:none;transition:transform .16s,background .16s;display:inline-flex}.admin-link:hover,.back-home-link:hover{background:#ffffff26;transform:translateY(-2px)}.home-hero{text-align:center;padding-top:clamp(22px,4vw,48px)}.hero-kicker,.tool-header p,.panel-heading p,.admin-header p{color:var(--accent);letter-spacing:.18em;text-transform:uppercase;margin:0 0 9px;font-size:.78rem;font-weight:800}.home-hero h1{letter-spacing:.04em;text-shadow:0 5px 30px #00000047;margin:0;font-size:clamp(2.7rem,6vw,5.6rem);font-weight:900;line-height:1}.home-hero>p:last-child{color:#ffffffc7;letter-spacing:.14em;margin:14px 0 0;font-size:clamp(1rem,2.1vw,1.4rem)}.orbit-wrap{aspect-ratio:1;width:min(82vw,760px);min-height:460px;margin:max(12px,1.6vh) auto 4px;position:relative}.orbit-ring{border:1px solid #ffedb133;border-radius:50%;position:absolute;inset:15%}.orbit-ring.inner{opacity:.78;border-style:dashed;animation:34s linear infinite turn;inset:30%}.orbit-ring.outer{transform:rotate(-16deg);box-shadow:inset 0 0 80px #fff6c508}.orbit-tool{--angle:0deg;color:#fffdf4;text-align:center;width:clamp(105px,15vw,138px);min-height:clamp(108px,15vw,138px);transform:translate(-50%, -50%) rotate(var(--angle)) translateY(clamp(-280px, -30vw, -195px)) rotate(calc(var(--angle) * -1));background:linear-gradient(145deg,#ffffff26,#ffffff0b);border:1px solid #fff3bf4f;border-radius:24px;place-content:center;gap:4px;padding:12px 8px;transition:transform .18s,background .18s,border-color .18s;display:grid;position:absolute;top:50%;left:50%;box-shadow:0 13px 30px #03081b38}.orbit-tool:hover{transform:translate(-50%, -50%) rotate(var(--angle)) translateY(clamp(-288px, -31vw, -203px)) rotate(calc(var(--angle) * -1));background:linear-gradient(145deg,#ffe88957,#ffffff1a);border-color:#fff3bfcc}.tool-icon{font-size:clamp(1.7rem,3.5vw,2.4rem);line-height:1}.orbit-tool small{color:#ffffffa6;max-width:108px;font-size:.66rem;line-height:1.35}.birthday-core{color:#fff7cc;background:radial-gradient(circle,#ffe37247,#ffffff0f 52%,#0000 69%);border:1px solid #fff6c561;border-radius:50%;place-items:center;width:clamp(110px,16vw,158px);height:clamp(110px,16vw,158px);font-size:clamp(2.4rem,5vw,4.1rem);display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 18px #fff7c706,0 0 45px #ffd65b36}.birthday-core.has-birthday{border-color:#ffea71f2;animation:1.8s ease-in-out infinite pulse;box-shadow:0 0 0 12px #ffe16a14,0 0 58px #ffd65b94}.home-footnote{color:#ffffff94;text-align:center;margin:0;font-size:.82rem}.tool-screen{min-height:100vh;padding:24px clamp(18px,4vw,58px) 42px;position:relative}.tool-header{max-width:1440px;margin:0 auto 26px}.tool-header h1{color:#fffdf2;margin:0;font-size:clamp(1.8rem,4vw,3rem)}.tool-header p{margin-bottom:5px}.back-button,.logout-button{color:#fffaf0;background:#ffffff1a;border:1px solid #ffffff30;border-radius:12px;min-height:42px;padding:9px 14px}.back-button:hover,.logout-button:hover{background:#ffffff2e}.admin-link.compact{font-size:.86rem}.primary-button,.soft-button{border:0;border-radius:13px;min-height:44px;padding:11px 18px;font-weight:800;transition:transform .16s,filter .16s}.primary-button{color:#2d1d0a;background:linear-gradient(135deg, var(--accent), #ffe08d);box-shadow:0 9px 18px #e4a32c33}.primary-button.large{min-height:54px;padding-inline:28px;font-size:1.05rem}.soft-button{color:#fff9e5;background:#ffffff1a;border:1px solid #ffffff38}.dining-screen,.draw-stage,.wheel-stage,.flip-stage,.timer-stage,.star-stage,.praise-stage{max-width:1440px;margin:0 auto}.reveal-card{max-width:580px;min-height:360px;box-shadow:var(--shadow);text-align:center;background:#ffffff17;border:1px solid #ffefb24d;border-radius:34px;place-content:center;gap:16px;margin:9vh auto;padding:44px;display:grid}.reveal-card h2{margin:0;font-size:clamp(1.6rem,3vw,2.4rem)}.reveal-card p{color:#ffffffb3;margin:0 0 10px}.honor-strips{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px;display:grid}.honor-strip,.duty-line{border-radius:17px;justify-content:space-between;align-items:center;gap:14px;min-height:70px;padding:14px 18px;display:flex}.honor-strip span,.duty-line{color:#ffffffb3;font-size:.9rem}.honor-strip b{color:#fffdf0;font-size:clamp(1.1rem,2.2vw,1.65rem)}.star-strip{background:linear-gradient(135deg,#ffc12e4d,#ffffff1a);border:1px solid #ffdc6aa6}.crown-strip{background:linear-gradient(135deg,#997cea59,#ffffff14);border:1px solid #bdb1ff99}.duty-line{border:1px dashed #ffffff40;grid-column:1/-1;min-height:40px;padding:8px 14px}.group-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;display:grid}.dining-group{background:#ffffff14;border:1px solid #fff5ca33;border-radius:20px;min-height:55vh;padding:14px}.dining-group>span{color:var(--accent);letter-spacing:.12em;margin-bottom:12px;font-size:.78rem;font-weight:900;display:inline-block}.dining-group>div{flex-wrap:wrap;align-content:flex-start;gap:12px;display:flex}.dining-group b{color:#fffdf4;text-align:center;background:#ffffff12;border-radius:9px;width:calc(50% - 6px);min-width:74px;padding:8px 4px;font-size:clamp(1rem,1.85vw,1.55rem);line-height:1.1}.count-line{color:#ffffffa6;text-align:center;margin:17px 0 0}.draw-stage{padding:22px 0;position:relative}.leaderboard-trigger{color:#fff6d4;background:#ffbd2e26;border:1px solid #ffdf698c;border-radius:12px;min-height:42px;padding:9px 14px;position:absolute;top:0;right:0}.count-picker{background:#ffffff14;border:1px solid #ffffff2e;border-radius:30px;justify-items:center;gap:22px;max-width:720px;margin:6vh auto 20px;padding:36px;display:grid}.count-picker p{margin:0;font-size:clamp(1.25rem,2.5vw,1.9rem);font-weight:800}.number-chips{grid-template-columns:repeat(6,minmax(42px,1fr));gap:10px;width:min(100%,560px);display:grid}.number-chips.compact{grid-template-columns:repeat(9,minmax(36px,1fr));width:min(100%,470px)}.chip{color:#fff8e8;background:#ffffff14;border:1px solid #ffffff38;border-radius:12px;min-height:45px;font-weight:800}.chip.active{color:#35200b;background:linear-gradient(135deg,#ffe69a,#f8b143);border-color:#ffdc79;box-shadow:0 0 18px #ffce634f}.custom-count{color:#ffffffbf;align-items:center;gap:10px;display:flex}.custom-count input,.timer-controls input{color:#fff;text-align:center;background:#ffffff1a;border:1px solid #ffffff3b;border-radius:10px;width:98px;min-height:42px}.winner-panel{text-align:center;background:linear-gradient(135deg,#ffd25c33,#ffffff1a);border:1px solid #ffd86f80;border-radius:27px;max-width:900px;margin:34px auto;padding:30px}.winner-panel p{color:#ffe795;margin:0 0 14px;font-weight:800}.winner-panel>div,.flip-winners{flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:22px;display:flex}.winner-panel b,.flip-winners b{color:#202034;background:#fff8de;border-radius:12px;padding:10px 15px;font-size:clamp(1.1rem,2vw,1.5rem)}.wheel-stage{justify-items:center;padding:20px 0;display:grid;position:relative}.wheel{aspect-ratio:1;border:12px solid #fff6d1db;border-radius:50%;place-items:center;width:min(68vw,510px);margin:22px 0;transition:transform 4s cubic-bezier(.1,.76,.15,1);display:grid;box-shadow:0 0 0 8px #ffca4838,0 28px 45px #0000004d}.wheel-pointer{z-index:2;color:#fff0a3;text-shadow:0 4px 12px #0000004d;margin-bottom:-34px;font-size:3.4rem}.wheel-core{aspect-ratio:1;color:#fffdf2;text-align:center;background:#273c75;border:6px solid #fff7d4;border-radius:50%;place-items:center;width:34%;font-size:clamp(.9rem,2vw,1.25rem);font-weight:900;line-height:1.18;display:grid;box-shadow:0 3px 15px #0000004d}.spotlight-name{color:#ffffff8c;text-align:center;min-height:64px;margin-top:13px;font-size:clamp(1.3rem,4.4vw,3.4rem);font-weight:900}.spotlight-name.shown{color:#ffe589;text-shadow:0 0 25px #ffcf4ecc;animation:.42s ease-out pop}.flip-stage{gap:22px;display:grid}.flip-intro{background:#ffffff14;border:1px solid #ffffff2b;border-radius:20px;flex-wrap:wrap;justify-content:center;align-items:center;gap:15px 22px;padding:18px;display:flex}.flip-intro p{color:#fffc;margin:0}.card-grid{perspective:1000px;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(8px,1.5vw,18px);max-width:1120px;margin:0 auto;display:grid}.flip-card{min-height:clamp(105px,16vw,190px);transform-style:preserve-3d;background-image:radial-gradient(circle at 31% 28%,#fff 0 1%,#0000 1.6%),radial-gradient(circle at 66% 42%,#f8de94 0 1.3%,#0000 2%),linear-gradient(145deg,#204168,#426f94 45%,#d9b86c 46%,#b46451 100%);background-position:0 0;background-size:400% 300%;border:0;border-radius:17px;padding:0;position:relative;overflow:hidden;box-shadow:0 10px 22px #00000040}.card-face{backface-visibility:hidden;place-items:center;padding:14px;transition:transform .56s cubic-bezier(.2,.7,.2,1);display:grid;position:absolute;inset:0}.card-back{border-radius:inherit;background:inherit;background-position:inherit;color:#ffffffe6;text-shadow:0 3px 8px #00000059;border:2px solid #fff6cad1;font-size:clamp(2rem,5vw,4rem)}.card-front{border-radius:inherit;color:#3b2943;text-align:center;background:linear-gradient(145deg,#fff8db,#ffe28d);border:2px solid #ffe794e6;font-size:clamp(.9rem,1.8vw,1.35rem);font-weight:900;line-height:1.28;transform:rotateY(180deg)}.timer-stage{justify-items:center;gap:30px;padding-top:4vh;display:grid}.timer-display{color:#fff;letter-spacing:.03em;text-shadow:0 0 18px #fff6,0 8px 24px #00000059;font-family:Arial Rounded MT Bold,Microsoft YaHei,sans-serif;font-size:clamp(4.3rem,15vw,12rem);font-weight:900;line-height:.9}.timer-display.urgent{color:#ff756d;animation:.65s ease-in-out infinite alternate pulse}.timer-presets{grid-template-columns:repeat(7,minmax(64px,1fr));gap:9px;width:min(100%,900px);display:grid}.timer-presets button{color:#fffdf3;background:#ffffff17;border:1px solid #ffffff36;border-radius:11px;min-height:44px;font-weight:800}.timer-presets button:hover{background:#ffd66947}.timer-controls{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.star-stage{text-align:center;place-content:center;justify-items:center;gap:23px;min-height:70vh;display:grid;position:relative;overflow:hidden}.star-rays{aspect-ratio:1;filter:blur(1px);opacity:.85;background:repeating-conic-gradient(#ffde6c4f 0deg 6deg,#0000 6deg 18deg);border-radius:50%;width:min(72vw,720px);animation:28s linear infinite turn;position:absolute}.star-prompt,.reveal-star,.star-stage>p{z-index:1}.star-prompt{color:#fffc;font-size:clamp(1.2rem,3vw,2rem)}.reveal-star{color:#fff5be;letter-spacing:.05em;background:linear-gradient(135deg,#ffd55059,#ffffff1a);border:2px solid #ffe78e;border-radius:28px;min-width:min(80vw,590px);min-height:120px;padding:22px;font-size:clamp(2rem,7vw,5rem);font-weight:900;box-shadow:0 0 55px #ffd44f54}.star-stage>p{color:#ffefab;font-size:1.15rem}.praise-stage{text-align:center;place-content:center;justify-items:center;gap:26px;min-height:65vh;display:grid}.praise-question{color:#fffef7;max-width:720px;font-size:clamp(1.7rem,4vw,3.4rem);font-weight:900;line-height:1.35}.praise-result{background:linear-gradient(135deg,#ffc84942,#ffffff1a);border:1px solid #ffd6688c;border-radius:27px;min-width:min(88vw,680px);padding:30px}.praise-result p{color:#fffc;margin:0 0 8px}.praise-result h2{color:#fff0a7;margin:0 0 15px;font-size:clamp(2rem,5vw,4rem)}.praise-result strong{color:#fffcef;margin-top:16px;display:block}.board-layout{grid-template-rows:auto minmax(58vh,1fr) auto;gap:12px;max-width:1440px;min-height:75vh;margin:0 auto;display:grid}.board-toolbar,.board-pager{background:#ffffff14;border:1px solid #ffffff2b;border-radius:17px;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:10px;display:flex}.toolbar-label{color:#ffffffa6;font-size:.82rem;font-weight:700}.color-list,.width-list{gap:7px;display:flex}.color-dot{border:2px solid #0000;border-radius:50%;width:29px;height:29px}.color-dot.active{border-color:#fff;box-shadow:0 0 0 2px #ffffff42}.width-dot{background:#ffffff12;border:1px solid #0000;border-radius:7px;place-items:center;width:37px;height:29px;display:grid}.width-dot.active{border-color:#ffe88bd9}.width-dot span{background:#fff7d8;border-radius:9px;max-width:25px;height:4px;display:block}.tool-button{color:#fffaf0;background:#ffffff14;border:1px solid #fff3;border-radius:8px;min-height:33px;padding:6px 9px;font-size:.84rem}.tool-button.active{color:#2b281c;background:#fff3b4}.tool-button.danger{color:#ffd4cf}.board-shell{background:#fff9eb;border:10px solid #e8dec6;border-radius:20px;min-height:58vh;overflow:hidden;box-shadow:inset 0 0 0 1px #473d251c,0 16px 28px #0000002e}.board-shell canvas{touch-action:none;cursor:crosshair;width:100%;height:100%;display:block}.board-pager{color:#ffffffc7}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#080d21c2;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-card{color:#2b3046;background:#fffaf0;border:1px solid #ffeb9675;border-radius:28px;width:min(92vw,720px);max-height:min(86vh,820px);position:relative;overflow:auto;box-shadow:0 30px 80px #0006}.modal-close{z-index:1;color:#54435b;background:#4131531a;border:0;border-radius:50%;width:37px;height:37px;font-size:1.6rem;position:absolute;top:13px;right:15px}.birthday-celebration{color:#5a2846;text-align:center;background:radial-gradient(circle at 15% 25%,#ff818947,#0000 12rem),radial-gradient(circle at 84% 72%,#ffd2574d,#0000 12rem),linear-gradient(135deg,#fff3d8,#ffe4cb);place-content:center;gap:14px;min-height:430px;padding:45px;display:grid;position:relative;overflow:hidden}.birthday-celebration:before{content:"✦  ✦  ✦  ✦  ✦";color:#f19174;letter-spacing:1.2rem;width:100%;font-size:2rem;position:absolute;top:20px;left:0}.birthday-celebration p,.leaderboard-modal>p{color:#bf5e64;letter-spacing:.15em;margin:0;font-weight:900}.birthday-celebration h2{color:#983a59;margin:0;font-size:clamp(2.1rem,6vw,4.5rem)}.balloons{letter-spacing:.2em;font-size:2.2rem}.cake{font-size:5.8rem}.leaderboard-modal{padding:36px}.leaderboard-modal h2{margin:8px 0 20px;font-size:clamp(1.7rem,4vw,2.6rem)}.leaderboard-modal ol{gap:10px;margin:0;padding:0;list-style:none;display:grid}.leaderboard-modal li{background:#f7efe0;border-radius:13px;grid-template-columns:35px 1fr auto;align-items:center;gap:12px;padding:12px;display:grid}.leaderboard-modal li span{color:#fffaf2;background:#d38d4c;border-radius:50%;place-items:center;width:28px;height:28px;font-weight:900;display:grid}.admin-loading,.admin-login-page{color:#fff8e8;background:radial-gradient(circle at 18% 15%,#ffd46333,#0000 29rem),linear-gradient(135deg,#141e3d,#273c70);min-height:100vh}.admin-loading{text-align:center;place-content:center;gap:14px;display:grid}.admin-loading span{font-size:3rem}.admin-login-page{place-items:center;padding:25px;display:grid;position:relative}.admin-login-page .back-home-link{position:absolute;top:24px;left:24px}.admin-login-card{width:min(92vw,440px);box-shadow:var(--shadow);text-align:center;background:#ffffff1a;border:1px solid #ffe69759;border-radius:28px;gap:16px;padding:42px;display:grid}.admin-login-card>span{font-size:3rem}.admin-login-card>p{color:#ffdb75;letter-spacing:.18em;margin:0;font-size:.8rem;font-weight:900}.admin-login-card h1{margin:0;font-size:2rem}.admin-login-card label,.form-grid label,.password-form label,.cards-form label{color:#ffffffbf;text-align:left;gap:7px;font-size:.85rem;font-weight:700;display:grid}.admin-login-card input,.form-grid input,.form-grid select,.password-form input,.cards-form input,.add-student input,.student-editor input{color:#28324b;background:#ffffffeb;border:1px solid #25355833;border-radius:9px;outline-color:#d29840;min-height:43px;padding:8px 11px}.admin-login-card small{color:#ffffff94;line-height:1.45}.login-error{color:#ffd8d2;background:#84202f73;border-radius:9px;padding:10px}.admin-page{color:#26314d;background:radial-gradient(circle at 92% 4%,#fad37840,#0000 25rem),#f6f1e7;min-height:100vh;padding:24px clamp(18px,4vw,56px) 54px}.admin-header{max-width:1280px;margin:0 auto 25px}.admin-header .back-home-link{color:#354463;background:#fffdf7;border-color:#28395e2e}.admin-header p,.panel-heading p{color:#bd7d2d}.admin-header h1{margin:0;font-size:clamp(1.5rem,3vw,2.35rem)}.logout-button{color:#9a3f48;background:#fff8f6;border-color:#a1434e38}.admin-tabs{gap:8px;max-width:1280px;margin:0 auto 18px;padding-bottom:3px;display:flex;overflow-x:auto}.admin-tabs button{color:#58627a;background:#fffdf8;border:1px solid #25355824;border-radius:11px;flex:none;min-height:42px;padding:9px 14px;font-size:.9rem;font-weight:800}.admin-tabs button.active{color:#4d3211;background:linear-gradient(135deg,#ffe49a,#f4bf5a);border-color:#e3a846}.admin-notice{color:#37513c;width:min(100%,1280px);box-shadow:none;background:#edf8e9;border-color:#538b5d42;margin:0 auto 16px;position:static;transform:none}.admin-panel{background:#fffdf8;border:1px solid #293a5b21;border-radius:24px;max-width:1280px;margin:0 auto;padding:clamp(22px,4vw,38px);box-shadow:0 15px 36px #30344e14}.panel-heading{margin-bottom:25px}.panel-heading h2{margin:0;font-size:clamp(1.5rem,3vw,2.2rem)}.panel-note{color:#677189;margin:-8px 0 20px;line-height:1.7}.form-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px;display:grid}.form-grid label,.password-form label,.cards-form label{color:#49546b}.sync-explainer{background:#f3f7ff;border-radius:16px;gap:15px;margin-top:32px;padding:19px;display:flex}.sync-explainer>span{font-size:2rem}.sync-explainer b{color:#315681}.sync-explainer p{color:#64718a;margin:5px 0 0;line-height:1.6}.add-student{background:#fbf8f0;border:1px dashed #35486f40;border-radius:14px;grid-template-columns:minmax(130px,1fr) minmax(130px,1fr) auto auto;align-items:center;gap:10px;margin-bottom:22px;padding:14px;display:grid}.switch-label{color:#5a657a;white-space:nowrap;align-items:center;gap:6px;font-size:.86rem;display:inline-flex}.students-table{gap:8px;display:grid}.student-editor{border:1px solid #2e3f621a;border-radius:13px;grid-template-columns:minmax(120px,1.2fr) minmax(138px,1fr) auto auto auto;align-items:center;gap:9px;padding:9px;display:grid}.mini-save,.mini-delete{border:0;border-radius:8px;min-height:36px;padding:6px 10px;font-size:.82rem;font-weight:800}.mini-save{color:#355270;background:#dff1ec}.mini-delete{color:#9b4450;background:#fff0ed}.privilege-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.privilege-item{color:#3e4a63;background:#fff;border:1px solid #2d3c5e24;border-radius:11px;align-items:center;gap:8px;min-height:47px;padding:8px 10px;display:flex}.privilege-item.checked{background:#f3eaff;border-color:#bf90db}.privilege-item.disabled{color:#9ba3b2;background:#f4f5f7}.privilege-item input{accent-color:#8c5cbc}.privilege-item em{color:#9a8a62;margin-left:auto;font-size:.72rem;font-style:normal}.row-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:23px;display:flex}.row-actions .soft-button{color:#5d6475;background:#f7f4ed;border-color:#293a5b29}.cards-form{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:22px;display:grid}.password-form{gap:16px;max-width:560px;display:grid}@keyframes turn{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes pop{0%{opacity:0;transform:scale(.6)}72%{transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@media (width<=900px){.orbit-wrap{width:min(98vw,660px);min-height:390px}.orbit-tool{width:100px;min-height:100px;transform:translate(-50%, -50%) rotate(var(--angle)) translateY(clamp(-230px, -33vw, -160px)) rotate(calc(var(--angle) * -1));border-radius:19px}.orbit-tool:hover{transform:translate(-50%, -50%) rotate(var(--angle)) translateY(clamp(-235px, -34vw, -165px)) rotate(calc(var(--angle) * -1))}.orbit-tool small{display:none}.honor-strips,.group-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dining-group{min-height:250px}.dining-group b{font-size:1.14rem}.timer-presets{grid-template-columns:repeat(4,minmax(60px,1fr))}.privilege-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=640px){.home-screen,.tool-screen,.admin-page{padding-inline:14px}.home-header,.tool-header,.admin-header{align-items:flex-start;gap:10px}.tool-header{grid-template-columns:auto 1fr;display:grid}.tool-header .compact{grid-column:1/-1}.home-header .sync-dot{display:none}.orbit-wrap{min-height:360px;margin-top:12px}.orbit-tool{width:76px;min-height:76px;transform:translate(-50%, -50%) rotate(var(--angle)) translateY(clamp(-166px, -32vw, -140px)) rotate(calc(var(--angle) * -1));border-radius:16px;padding:7px 3px}.orbit-tool:hover{transform:translate(-50%, -50%) rotate(var(--angle)) translateY(clamp(-170px, -33vw, -144px)) rotate(calc(var(--angle) * -1))}.tool-icon{font-size:1.45rem}.orbit-tool strong{font-size:.67rem}.birthday-core{width:86px;height:86px;font-size:2rem}.honor-strips,.group-grid,.form-grid,.cards-form{grid-template-columns:1fr}.duty-line{grid-column:auto}.dining-group{min-height:auto}.dining-group b{width:calc(33.333% - 8px);min-width:0;font-size:1rem}.count-picker{margin-top:2vh;padding:25px 17px}.number-chips{grid-template-columns:repeat(4,minmax(42px,1fr))}.number-chips.compact{grid-template-columns:repeat(5,minmax(36px,1fr))}.leaderboard-trigger{justify-self:center;margin:0 auto 8px;position:static}.card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.timer-display{font-size:clamp(3.2rem,16vw,5.5rem)}.timer-presets{grid-template-columns:repeat(3,minmax(60px,1fr))}.board-layout{min-height:78vh}.board-shell{border-width:6px;min-height:55vh}.admin-header{grid-template-columns:1fr auto;display:grid}.admin-header>div{grid-area:1/1/auto/-1}.admin-header .back-home-link{grid-row:2}.logout-button{grid-area:2/2}.add-student,.student-editor{grid-template-columns:1fr 1fr}.student-editor .switch-label{grid-column:1/-1}.privilege-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.classroom-app{height:100dvh;min-height:100dvh;overflow:hidden}.home-screen{grid-template-rows:auto auto minmax(0,1fr) auto;gap:0;width:100%;height:100dvh;min-height:0;max-height:100dvh;padding:clamp(10px,1.7vh,20px) clamp(16px,4vw,58px) clamp(8px,1.2vh,16px);overflow:hidden}.home-hero{padding-top:clamp(4px,1.5vh,17px)}.home-hero h1{font-size:clamp(2.2rem,min(5.7vw,7dvh),5rem)}.home-hero>p:last-child{margin-top:clamp(5px,1.2vh,12px);font-size:clamp(.88rem,min(2vw,2.2vh),1.28rem)}.hero-kicker{margin-bottom:clamp(3px,.7vh,7px)}.orbit-wrap{aspect-ratio:auto;place-self:center;width:min(78vw,64dvh,720px);height:min(78vw,64dvh,720px);min-height:0;margin:0 auto}.orbit-tool{width:clamp(68px,min(12vw,13dvh),118px);min-height:clamp(68px,min(12vw,13dvh),118px);transform:translate(-50%, -50%) rotate(var(--angle)) translateY(max(-260px, -27vw, -24dvh)) rotate(calc(var(--angle) * -1));border-radius:clamp(15px,2.2vw,22px);padding:clamp(6px,1.1vh,11px) 7px}.orbit-tool:hover{transform:translate(-50%, -50%) rotate(var(--angle)) translateY(max(-268px, -28vw, -25dvh)) rotate(calc(var(--angle) * -1))}.tool-icon{font-size:clamp(1.45rem,min(3vw,4dvh),2.25rem)}.orbit-tool strong{font-size:clamp(.7rem,min(1.6vw,1.8vh),.98rem)}.orbit-tool small{font-size:clamp(.56rem,1.05vh,.65rem)}.birthday-core{width:clamp(78px,min(14vw,15dvh),132px);height:clamp(78px,min(14vw,15dvh),132px);font-size:clamp(2rem,min(4.4vw,5.5dvh),3.5rem)}.home-footnote{padding-top:clamp(2px,.6vh,7px);font-size:clamp(.68rem,1.25vh,.8rem)}.tool-screen{grid-template-rows:auto minmax(0,1fr);gap:clamp(8px,1.4vh,18px);width:100%;height:100dvh;min-height:0;max-height:100dvh;padding:clamp(10px,1.8vh,22px) clamp(16px,4vw,54px);display:grid;overflow:hidden}.tool-header{width:100%;margin:0 auto}.tool-header h1{font-size:clamp(1.45rem,min(3.2vw,4vh),2.6rem)}.dining-screen,.draw-stage,.wheel-stage,.flip-stage,.timer-stage,.star-stage,.praise-stage,.board-layout{width:100%;height:100%;min-height:0;max-height:100%;overflow:hidden}.dining-screen{grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(6px,1vh,12px);display:grid}.reveal-card{grid-row:1/-1;align-self:center;gap:clamp(9px,1.5vh,15px);width:min(88vw,560px);min-height:min(330px,55dvh);max-height:100%;margin:0 auto;padding:clamp(22px,4vh,40px)}.reveal-card>span{font-size:clamp(2.8rem,7vh,4rem)}.honor-strips{gap:clamp(6px,.8vw,10px);margin:0}.honor-strip,.duty-line{min-height:clamp(42px,6.5vh,60px);padding:clamp(7px,1.1vh,12px) clamp(10px,1.3vw,16px)}.duty-line{min-height:clamp(30px,4vh,38px)}.group-grid{grid-template-rows:minmax(0,1fr);gap:clamp(6px,.9vw,11px);height:100%;min-height:0}.dining-group{height:100%;min-height:0;padding:clamp(7px,1.2vh,12px);overflow:hidden}.dining-group>span{margin-bottom:clamp(5px,.8vh,9px)}.dining-group>div{gap:clamp(4px,.8vh,9px)}.dining-group b{width:calc(50% - 5px);min-width:0;padding:clamp(4px,.8vh,7px) 3px;font-size:clamp(.78rem,min(1.6vw,2.1vh),1.35rem)}.count-line{margin:0;font-size:clamp(.68rem,1.4vh,.9rem)}.draw-stage{grid-template-rows:minmax(0,auto) minmax(0,auto);align-content:center;gap:clamp(8px,1.4vh,16px);padding:0;display:grid}.count-picker{gap:clamp(9px,1.6vh,18px);width:min(92vw,720px);max-height:100%;margin:0 auto;padding:clamp(18px,3.2vh,32px)}.chip{min-height:clamp(34px,5vh,43px)}.winner-panel{width:min(92vw,900px);max-height:100%;margin:0 auto;padding:clamp(14px,2.4vh,24px)}.winner-panel>div,.flip-winners{gap:clamp(6px,1vh,10px);margin-bottom:clamp(8px,1.4vh,16px)}.winner-panel b,.flip-winners b{padding:clamp(6px,1vh,9px) clamp(9px,1.2vw,13px);font-size:clamp(.92rem,min(1.8vw,2.2vh),1.3rem)}.wheel-stage{grid-template-rows:auto minmax(0,1fr) auto auto;align-content:center;padding:0}.wheel{border-width:clamp(7px,1.3vh,11px);align-self:center;width:min(70vw,52dvh,480px);margin:clamp(3px,.8vh,10px) 0}.wheel-pointer{margin-bottom:clamp(-28px,-3.2vh,-18px);font-size:clamp(2.2rem,5.5vh,3.2rem)}.spotlight-name{min-height:clamp(38px,6vh,58px);margin-top:clamp(5px,.8vh,10px);font-size:clamp(1.1rem,min(4vw,5vh),3rem)}.flip-stage{grid-template-rows:auto auto minmax(0,1fr);gap:clamp(6px,1vh,12px)}.flip-intro{gap:clamp(7px,1vh,12px) clamp(10px,1.4vw,18px);padding:clamp(9px,1.4vh,14px)}.card-grid{grid-row:3;grid-template-rows:repeat(3,minmax(0,1fr));gap:clamp(6px,1vh,12px);width:min(100%,1120px);height:100%;min-height:0}.flip-winners{grid-row:2}.flip-card{height:100%;min-height:0}.timer-stage{align-content:center;gap:clamp(14px,3vh,28px);padding:0}.timer-display{font-size:clamp(3.8rem,min(15vw,20vh),10rem)}.star-stage,.praise-stage{gap:clamp(12px,2.5vh,22px);min-height:0}.star-rays{width:min(68vw,68dvh,680px)}.reveal-star{min-height:clamp(80px,15vh,116px);font-size:clamp(1.8rem,min(6vw,8vh),4.5rem)}.praise-question{font-size:clamp(1.4rem,min(3.6vw,4.8vh),3rem)}.praise-result{max-height:100%;padding:clamp(16px,2.8vh,26px)}.board-layout{grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(6px,1vh,10px)}.board-shell{height:100%;min-height:0}.modal-backdrop{padding:clamp(8px,2vh,18px)}.modal-card{max-height:calc(100dvh - clamp(16px,4vh,36px))}@media (height<=820px){.orbit-tool small{display:none}.home-hero h1{font-size:clamp(2rem,min(5vw,6.4vh),4.2rem)}.tool-header p{display:none}.primary-button.large{min-height:46px}}@media (height<=680px){.home-screen{padding-block:8px}.home-footnote,.home-header .sync-dot{display:none}.home-hero{padding-top:2px}.home-hero>p:last-child{margin-top:4px}.tool-screen{gap:6px;padding-block:8px}.tool-header h1{font-size:1.35rem}.back-button,.admin-link.compact{min-height:36px;padding-block:6px}}@media (width<=900px){.orbit-wrap{width:min(86vw,62dvh,620px);height:min(86vw,62dvh,620px)}.orbit-tool{width:clamp(66px,min(14vw,12dvh),100px);min-height:clamp(66px,min(14vw,12dvh),100px);transform:translate(-50%, -50%) rotate(var(--angle)) translateY(max(-220px, -31vw, -23dvh)) rotate(calc(var(--angle) * -1))}.orbit-tool:hover{transform:translate(-50%, -50%) rotate(var(--angle)) translateY(max(-226px, -32vw, -24dvh)) rotate(calc(var(--angle) * -1))}.group-grid{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr))}.dining-group{min-height:0}}@media (width<=640px){.home-screen,.tool-screen{padding-inline:10px}.home-header{align-items:center}.admin-link{min-height:36px;padding:6px 10px;font-size:.78rem}.tool-header{align-items:center;display:flex}.tool-header .compact{display:none}.tool-header>div{text-align:right;margin-left:auto}.orbit-wrap{width:min(94vw,61dvh,540px);height:min(94vw,61dvh,540px);margin:0 auto}.orbit-tool{width:clamp(62px,min(20vw,11dvh),78px);min-height:clamp(62px,min(20vw,11dvh),78px);transform:translate(-50%, -50%) rotate(var(--angle)) translateY(max(-195px, -39vw, -22dvh)) rotate(calc(var(--angle) * -1));padding:5px 2px}.orbit-tool:hover{transform:translate(-50%, -50%) rotate(var(--angle)) translateY(max(-200px, -40vw, -23dvh)) rotate(calc(var(--angle) * -1))}.tool-icon{font-size:1.35rem}.orbit-tool strong{font-size:.64rem}.birthday-core{width:clamp(68px,20vw,82px);height:clamp(68px,20vw,82px)}.honor-strips{grid-template-columns:repeat(2,minmax(0,1fr))}.duty-line{grid-column:1/-1}.group-grid{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.dining-group{padding:6px}.dining-group b{width:calc(50% - 3px);padding:3px 1px;font-size:clamp(.6rem,2.7vw,.78rem)}.number-chips{grid-template-columns:repeat(6,minmax(32px,1fr));gap:6px}.number-chips.compact{grid-template-columns:repeat(9,minmax(28px,1fr))}.leaderboard-trigger{margin:0;position:absolute;top:0;right:0}.card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.timer-presets{grid-template-columns:repeat(7,minmax(38px,1fr));gap:5px}.timer-presets button{min-height:36px;font-size:.72rem}.board-toolbar,.board-pager{gap:5px;padding:6px}.tool-button{min-height:29px;padding:4px 6px}}.classroom-app{--base:#3b1d5e;--base-deep:#17133a;--accent:#ffd54d;--accent-strong:#ff9d5c;--sky:#5ad0ff;isolation:isolate;background:radial-gradient(80rem 52rem at 12% 8%,#6f359ad1,#0000 58%) 0 0/112% 112%,radial-gradient(70rem 48rem at 88% 18%,#1c488bc7,#0000 56%) 0 0/115% 115%,radial-gradient(64rem 58rem at 50% 112%,#662379c7,#0000 62%) 0 0/118% 118%,linear-gradient(155deg,#161334 0%,#321b55 52%,#102650 100%) 0 0/100% 100%;animation:18s ease-in-out infinite alternate ambientGradient}.classroom-app.theme-festival{background:radial-gradient(72rem 50rem at 12% 8%,#9c3251e6,#0000 58%),radial-gradient(68rem 46rem at 88% 20%,#80294fb8,#0000 56%),radial-gradient(60rem 54rem at 50% 112%,#c4583294,#0000 62%),linear-gradient(155deg,#351633 0%,#6c2142 55%,#44214d 100%)}.classroom-app.theme-calm{background:radial-gradient(72rem 50rem at 10% 8%,#3d8483a8,#0000 58%),radial-gradient(68rem 46rem at 88% 20%,#286e829e,#0000 56%),radial-gradient(60rem 54rem at 50% 112%,#4f88657a,#0000 62%),linear-gradient(155deg,#102d38 0%,#18515a 55%,#173b4d 100%)}.classroom-app:before,.classroom-app:after{z-index:0;box-shadow:none;filter:blur(72px);opacity:.34}.classroom-app:before{background:#c56cda;width:min(44vw,620px);height:min(44vw,620px);animation:14s ease-in-out infinite alternate auroraDriftA;top:-20vw;left:-13vw}.classroom-app:after{background:#4e8ee8;border:0;width:min(42vw,580px);height:min(42vw,580px);animation:17s ease-in-out infinite alternate auroraDriftB;bottom:-18vw;right:-12vw}.ambient-floaters{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.ambient-floaters span{left:var(--float-x);color:#ffefb3b8;font-size:var(--float-size);opacity:0;text-shadow:0 0 16px #ffdd6eb8;animation:ambientRise var(--float-duration) linear var(--float-delay) infinite;line-height:1;position:absolute;bottom:-12vh}.home-screen,.tool-screen{z-index:1;animation:.42s cubic-bezier(.22,.8,.28,1) both viewReveal}.home-header{z-index:6;position:relative}.sync-dot,.admin-link{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(145deg,#ffffff21,#ffffff0e);border-color:#fff3;box-shadow:inset 0 1px #ffffff1f,0 10px 24px #05081c26}.admin-link{letter-spacing:.08em;border-radius:999px}.admin-link:hover{border-color:#ffde6fbf;box-shadow:0 0 24px #ffd24d2b,inset 0 1px #ffffff2e}.home-hero{z-index:3;position:relative}.hero-kicker{color:#f0e9ffd6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);letter-spacing:.3em;background:#ffffff12;border:1px solid #fff3;border-radius:999px;justify-content:center;align-items:center;margin-bottom:clamp(5px,1vh,10px);padding:clamp(5px,.8vh,7px) clamp(15px,2vw,24px);font-size:clamp(.68rem,min(1.2vw,1.5vh),.9rem);display:inline-flex;box-shadow:inset 0 1px #ffffff1a}.home-hero h1{color:#0000;filter:drop-shadow(0 7px 24px #ffae5240);text-shadow:none;background:linear-gradient(100deg,#ffd54d 6%,#ff8fb8 36%,#8ed0ff 70%,#a5ffce 96%) 0 0/220% 100%;-webkit-background-clip:text;background-clip:text;animation:5s ease-in-out infinite heroFloat,9s ease-in-out infinite titleShimmer}.home-hero>p:last-child{color:#ffe9b8;letter-spacing:.24em;justify-content:center;align-items:center;gap:clamp(10px,1.5vw,18px);display:inline-flex}.home-hero>p:last-child:before,.home-hero>p:last-child:after{content:"";background:linear-gradient(90deg,#0000,#ffd54db8);width:clamp(28px,5vw,60px);height:1px}.home-hero>p:last-child:after{transform:scaleX(-1)}.orbit-wrap{width:min(82vw,59dvh,620px);height:min(82vw,59dvh,620px);margin:clamp(-4px,-.4vh,0px) auto 0;overflow:visible}.orbit-ring.outer{border-color:#ffe89d3d;animation:5s ease-in-out infinite orbitBreathe;inset:8%;box-shadow:inset 0 0 90px #fff3b909,0 0 42px #5778e912}.orbit-ring.outer:before{content:"";border:1px solid #ffd54d94;border-color:#ffd54d94 #5ad0ff59 #0000 #0000;border-radius:50%;animation:18s linear infinite orbitTurn;position:absolute;inset:-7px}.orbit-ring.inner{border-color:#ffffff24;animation:26s linear infinite orbitTurnReverse;inset:29%}.orbit-tool{aspect-ratio:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:clamp(76px,min(12vw,14dvh),120px);min-height:clamp(76px,min(12vw,14dvh),120px);transform:translate(-50%, -50%) rotate(var(--angle)) translateY(max(-248px, -28vw, -22dvh)) rotate(calc(var(--angle) * -1));animation:orbitItemReveal .62s cubic-bezier(.2, 1.45, .38, 1) calc(var(--index) * 70ms) both;background:linear-gradient(150deg,#ffffff2b,#ffffff0b);border:1.5px solid #ffffff38;border-radius:50%;gap:clamp(4px,.8vh,8px);padding:clamp(7px,1.2vh,12px);transition:scale .18s,border-color .18s,background .18s,box-shadow .18s;overflow:hidden;scale:1;box-shadow:inset 0 1px #ffffff29,0 13px 34px #03071c47}.orbit-tool:before{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff3d,#0000 70%);border-radius:50%;position:absolute;inset:-60% 30% 35% -35%;transform:rotate(-28deg)}.orbit-tool:hover{z-index:4;transform:translate(-50%, -50%) rotate(var(--angle)) translateY(max(-248px, -28vw, -22dvh)) rotate(calc(var(--angle) * -1));background:linear-gradient(150deg,#ffe07a40,#ffffff16);border-color:#ffda5ebf;scale:1.1;box-shadow:inset 0 1px #ffffff40,0 18px 40px #0206195c,0 0 25px #ffd14533}.orbit-tool:active{scale:.96}.orbit-tool small{display:none}.tool-icon{z-index:1;filter:drop-shadow(0 5px 9px #00000040);animation:iconFloat 3.2s ease-in-out calc(var(--index,0) * -180ms) infinite;font-size:clamp(1.65rem,min(3.2vw,4.2dvh),2.55rem);position:relative}.orbit-tool strong{z-index:1;color:#fffdf8;letter-spacing:.08em;text-shadow:0 2px 7px #00000042;font-size:clamp(.72rem,min(1.45vw,1.8dvh),.96rem);line-height:1.15;position:relative}.birthday-core{z-index:3;color:#fff0a6;background:linear-gradient(150deg,#7a5a14eb,#372714b8);border:2px solid #ffde68b8;transition:scale .18s;animation:2.8s ease-in-out infinite coreGlow;overflow:visible;box-shadow:0 0 0 16px #ffe78106,0 0 42px #ffd34752,inset 0 1px #ffffff38}.birthday-core:before{content:"";border:1px dashed #ffe07140;border-radius:50%;animation:18s linear infinite orbitTurn;position:absolute;inset:-14px}.birthday-core:hover{scale:1.08}.home-footnote{color:#ece9ffa8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff0b;border:1px solid #ffffff1c;border-radius:999px;justify-self:center;align-items:center;gap:7px;padding:5px 13px;display:inline-flex}.tool-header h1{color:#0000;filter:drop-shadow(0 4px 16px #ffcf4d1f);background:linear-gradient(100deg,#fff9e4,#ffd875 52%,#f3c6ff);-webkit-background-clip:text;background-clip:text}.back-button,.logout-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(145deg,#ffffff21,#ffffff0e);border-radius:999px;box-shadow:inset 0 1px #ffffff1f}.primary-button{background-size:180% 100%;animation:4.5s ease-in-out infinite warmButtonGlow;position:relative;overflow:hidden}.primary-button:after{content:"";background:linear-gradient(90deg,#0000,#ffffff94,#0000);width:30%;animation:4.8s ease-in-out infinite buttonShine;position:absolute;top:-60%;bottom:-60%;left:-42%;transform:rotate(18deg)}.reveal-card,.count-picker,.winner-panel,.flip-intro,.praise-result,.honor-strip,.dining-group{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:inset 0 1px #ffffff1f,0 20px 50px #04071c29}.reveal-card>span{animation:2.8s ease-in-out infinite iconFloat}.dining-group:first-child{background:linear-gradient(165deg,#ffb3401f,#ffffff0e);border-top:4px solid #ffb340}.dining-group:nth-child(2){background:linear-gradient(165deg,#5ad0ff1f,#ffffff0e);border-top:4px solid #5ad0ff}.dining-group:nth-child(3){background:linear-gradient(165deg,#6ee7a01f,#ffffff0e);border-top:4px solid #6ee7a0}.dining-group:nth-child(4){background:linear-gradient(165deg,#ff7eb31f,#ffffff0e);border-top:4px solid #ff7eb3}.dining-group b,.winner-panel b,.flip-winners b{transition:transform .16s,background .16s}.dining-group b:hover,.winner-panel b:hover,.flip-winners b:hover{transform:translateY(-2px)scale(1.03)}.wheel{animation:2.8s ease-in-out infinite wheelAura}.flip-card{transition:translate .18s,filter .18s}.flip-card:hover:not(:disabled){filter:brightness(1.08);translate:0 -4px}.timer-display{color:#0000;background:linear-gradient(110deg,#fff,#ffe19a 52%,#fff);-webkit-background-clip:text;background-clip:text}@keyframes ambientGradient{0%{background-position:0 0,100% 0,50% 100%,0 0}to{background-position:6% 5%,94% 8%,54% 94%,0 0}}@keyframes auroraDriftA{0%{translate:0;scale:.92}to{translate:8vw 6vh;scale:1.12}}@keyframes auroraDriftB{0%{translate:0;scale:1}to{translate:-7vw -5vh;scale:1.16}}@keyframes ambientRise{0%{opacity:0;transform:translate(0)rotate(0)scale(.7)}12%{opacity:.52}82%{opacity:.28}to{opacity:0;transform:translate(42px,-118vh)rotate(300deg)scale(1.15)}}@keyframes viewReveal{0%{opacity:0;filter:blur(7px);scale:.985}to{opacity:1;filter:blur();scale:1}}@keyframes heroFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes titleShimmer{0%,to{background-position:0%}50%{background-position:100%}}@keyframes orbitBreathe{0%,to{opacity:.68;scale:.99}50%{opacity:1;scale:1.015}}@keyframes orbitTurn{to{transform:rotate(360deg)}}@keyframes orbitTurnReverse{to{transform:rotate(-360deg)}}@keyframes orbitItemReveal{0%{opacity:0;filter:blur(8px);scale:.35}to{opacity:1;filter:blur();scale:1}}@keyframes iconFloat{0%,to{transform:translateY(0)rotate(0)}42%{transform:translateY(-6px)rotate(-5deg)}64%{transform:translateY(-3px)rotate(4deg)}}@keyframes coreGlow{0%,to{box-shadow:0 0 0 16px #ffe78106,0 0 34px #ffd34747,inset 0 1px #ffffff38}50%{box-shadow:0 0 0 22px #ffe7810b,0 0 62px #ffd34780,inset 0 1px #ffffff47}}@keyframes warmButtonGlow{0%,to{background-position:0%;box-shadow:0 9px 18px #e4a32c33}50%{background-position:100%;box-shadow:0 12px 28px #ffbb3d57}}@keyframes buttonShine{0%,68%{opacity:0;left:-42%}75%{opacity:.9}92%,to{opacity:0;left:120%}}@keyframes wheelAura{0%,to{box-shadow:0 0 0 8px #ffca4833,0 28px 45px #0000004d}50%{box-shadow:0 0 0 11px #ffca4847,0 0 42px #ffce4c33,0 28px 45px #0000004d}}@media (height<=780px){.hero-kicker{margin-bottom:3px;padding-block:4px}.orbit-wrap{width:min(80vw,57dvh,570px);height:min(80vw,57dvh,570px)}.orbit-tool,.orbit-tool:hover{transform:translate(-50%, -50%) rotate(var(--angle)) translateY(max(-225px, -27vw, -21dvh)) rotate(calc(var(--angle) * -1))}}@media (width<=640px){.home-header .sync-dot{padding:6px 9px;font-size:.68rem;display:inline-flex}.hero-kicker{letter-spacing:.18em}.home-hero>p:last-child{letter-spacing:.12em}.orbit-wrap{width:min(82vw,56dvh,400px);height:min(82vw,56dvh,400px)}.orbit-tool{width:clamp(66px,min(19vw,10.5dvh),76px);min-height:clamp(66px,min(19vw,10.5dvh),76px);transform:translate(-50%, -50%) rotate(var(--angle)) translateY(max(-180px, -28vw, -18dvh)) rotate(calc(var(--angle) * -1))}.orbit-tool:hover{transform:translate(-50%, -50%) rotate(var(--angle)) translateY(max(-180px, -28vw, -18dvh)) rotate(calc(var(--angle) * -1))}.orbit-tool strong{letter-spacing:0;font-size:.62rem}.home-footnote{padding:4px 9px;font-size:.62rem}}@media (prefers-reduced-motion:reduce){.classroom-app,.classroom-app:before,.classroom-app:after,.ambient-floaters span,.home-screen,.tool-screen,.home-hero h1,.orbit-ring,.orbit-ring:before,.orbit-tool,.tool-icon,.birthday-core,.birthday-core:before,.primary-button,.primary-button:after,.wheel{animation:none!important}}.tool-screen{--tool-accent:#ffcf58;--tool-accent-rgb:255, 207, 88;--tool-secondary:#7cd8ff;z-index:2;color:#fffdf6;isolation:isolate;grid-template-rows:clamp(58px,8.2dvh,82px) minmax(0,1fr);width:100%;height:100dvh;min-height:0;animation:.52s cubic-bezier(.2,.78,.22,1) both subview-reveal;display:grid;position:relative;overflow:hidden}.tool-screen-dining{--tool-accent:#ffd05c;--tool-accent-rgb:255, 208, 92;--tool-secondary:#ff9e6d}.tool-screen-random{--tool-accent:#73e4ff;--tool-accent-rgb:115, 228, 255;--tool-secondary:#a893ff}.tool-screen-wheel{--tool-accent:#ffc84c;--tool-accent-rgb:255, 200, 76;--tool-secondary:#ff799d}.tool-screen-flip{--tool-accent:#74e7d1;--tool-accent-rgb:116, 231, 209;--tool-secondary:#ffc85f}.tool-screen-timer{--tool-accent:#8ce7ff;--tool-accent-rgb:140, 231, 255;--tool-secondary:#ffd564}.tool-screen-star{--tool-accent:#ffe271;--tool-accent-rgb:255, 226, 113;--tool-secondary:#ff9bca}.tool-screen-praise{--tool-accent:#ff9cc9;--tool-accent-rgb:255, 156, 201;--tool-secondary:#ffd469}.tool-screen:before{content:"";z-index:-2;background:radial-gradient(circle at 14% 16%, rgba(var(--tool-accent-rgb), .13), transparent 30%), radial-gradient(circle at 86% 76%, #5b79ff2b, transparent 36%), linear-gradient(135deg, #070e2533, #1626546b);position:absolute;inset:0}.tool-screen:after{content:"";z-index:-1;opacity:.28;pointer-events:none;background-image:linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px);background-size:46px 46px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 76%);mask-image:linear-gradient(#000,#0000 76%)}.tool-header{z-index:20;-webkit-backdrop-filter:blur(18px)saturate(130%);backdrop-filter:blur(18px)saturate(130%);background:linear-gradient(#070d22c9,#0b14307a);border-bottom:1px solid #ffffff1f;grid-template-columns:minmax(140px,1fr) auto minmax(140px,1fr);align-items:center;gap:18px;min-height:0;padding:clamp(8px,1.6dvh,14px) clamp(16px,3vw,44px);display:grid;position:relative;box-shadow:0 16px 40px #02081929}.back-button,.tool-gear,.leaderboard-trigger,.star-replay{color:#ffffffe6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff14;border:1px solid #ffffff38;box-shadow:inset 0 1px #ffffff1a,0 8px 24px #0000001f}.back-button{letter-spacing:.08em;cursor:pointer;border-radius:999px;justify-self:start;min-width:0;padding:9px 15px;font:700 clamp(.75rem,1.2vw,.94rem)/1 Microsoft YaHei,PingFang SC,sans-serif;transition:all .24s}.back-button:hover,.tool-gear:hover,.leaderboard-trigger:hover,.star-replay:hover{border-color:rgba(var(--tool-accent-rgb), .7);color:#fff;background:rgba(var(--tool-accent-rgb), .16);box-shadow:0 0 24px rgba(var(--tool-accent-rgb), .18);transform:translateY(-1px)}.tool-title-lockup{place-items:center;min-width:0;display:grid}.tool-title-lockup h1{color:#fff8e6;letter-spacing:.11em;text-align:center;text-shadow:0 3px 18px rgba(var(--tool-accent-rgb), .26);white-space:nowrap;margin:0;font-family:Microsoft YaHei,PingFang SC,Noto Sans SC,sans-serif;font-size:clamp(1.15rem,2.35vw,1.8rem);font-weight:900;line-height:1}.tool-header-side{justify-content:flex-end;justify-self:end;align-items:center;gap:10px;min-width:0;display:flex}.tool-header-side p{color:#ffffff9e;letter-spacing:.04em;text-overflow:ellipsis;white-space:nowrap;max-width:min(32vw,430px);margin:0;font-size:clamp(.68rem,1.05vw,.84rem);line-height:1.3;overflow:hidden}.tool-gear{border-radius:50%;flex:none;place-items:center;width:38px;height:38px;text-decoration:none;transition:all .24s;display:grid}.tool-stage-shell{isolation:isolate;min-width:0;min-height:0;display:grid;position:relative;overflow:clip}.stage-orb{z-index:-1;aspect-ratio:1;opacity:.32;filter:blur(36px);pointer-events:none;border-radius:50%;width:min(38vw,500px);animation:11s ease-in-out infinite alternate stage-orb-drift;position:absolute}.stage-orb-a{background:radial-gradient(circle, rgba(var(--tool-accent-rgb), .32), transparent 68%);top:-28%;left:-10%}.stage-orb-b{background:radial-gradient(circle,#6774ff5c,#0000 68%);animation-delay:-5s;bottom:-36%;right:-12%}.subpage-entry,.count-picker{z-index:2;text-align:center;flex-direction:column;justify-content:center;align-items:center;width:min(92vw,900px);height:100%;min-height:0;margin:auto;padding:clamp(14px,3dvh,34px);animation:.65s cubic-bezier(.16,.84,.22,1) 80ms both entry-stage-up;display:flex;position:relative}.subpage-entry:before,.count-picker:before{content:"";z-index:-1;aspect-ratio:1;border:1px solid rgba(var(--tool-accent-rgb), .17);width:min(48dvh,460px);box-shadow:0 0 0 clamp(22px, 4dvh, 52px) rgba(var(--tool-accent-rgb), .025), 0 0 0 clamp(52px, 9dvh, 104px) rgba(var(--tool-accent-rgb), .018);pointer-events:none;border-radius:50%;position:absolute}.entry-icon,.picker-dice,.timer-setup-icon{filter:drop-shadow(0 10px 22px rgba(var(--tool-accent-rgb), .26));margin-bottom:clamp(5px,1.1dvh,12px);font-size:clamp(3rem,10dvh,6.5rem);line-height:1;animation:3.2s ease-in-out infinite entry-icon-float;display:block}.entry-kicker{color:var(--tool-accent);letter-spacing:.38em;text-transform:uppercase;text-shadow:0 0 18px rgba(var(--tool-accent-rgb), .34);margin-bottom:clamp(8px,1.3dvh,14px);font-size:clamp(.7rem,1.4vw,.92rem);font-weight:900}.subpage-entry h2,.count-picker>p,.timer-setup>p{color:#fffdf6;letter-spacing:.08em;text-shadow:0 5px 24px #00000047;margin:0;font-family:Microsoft YaHei,PingFang SC,sans-serif;font-size:clamp(1.45rem,4vw,3.1rem);font-weight:900;line-height:1.2}.subpage-entry>p{color:#ffffffa6;letter-spacing:.05em;max-width:720px;margin:clamp(8px,1.4dvh,15px) 0 clamp(12px,2.4dvh,26px);font-size:clamp(.76rem,1.45vw,1rem);line-height:1.65}.primary-button,.soft-button{letter-spacing:.09em;cursor:pointer;border-radius:999px;min-width:132px;min-height:42px;padding:10px 22px;font-family:Microsoft YaHei,PingFang SC,sans-serif;font-size:clamp(.78rem,1.35vw,.96rem);font-weight:900;transition:transform .22s,box-shadow .22s,filter .22s}.primary-button{color:#3a2600;background:linear-gradient(135deg, #fff2a7, var(--tool-accent) 52%, #ffab55);box-shadow:inset 0 1px #ffffffb8, 0 9px 28px rgba(var(--tool-accent-rgb), .27);border:1px solid #ffffff7a}.primary-button.large{min-width:clamp(200px,26vw,310px);min-height:clamp(48px,7dvh,62px);padding-inline:34px;font-size:clamp(.9rem,1.7vw,1.12rem)}.soft-button{color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff17;border:1px solid #ffffff3d;box-shadow:inset 0 1px #ffffff1a}.primary-button:hover:not(:disabled),.soft-button:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-2px)scale(1.015)}.primary-button:disabled,.soft-button:disabled{opacity:.55;cursor:wait}.stage-footer{flex:none;justify-content:center;align-items:center;gap:10px;min-height:40px;display:flex}.dining-screen,.dining-results{width:100%;height:100%;min-height:0}.dining-screen{display:block}.dining-results{grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(6px,1.2dvh,12px);padding:clamp(8px,1.5dvh,15px) clamp(14px,2.5vw,34px) clamp(7px,1.1dvh,12px);display:grid;overflow:hidden}.honor-strips{justify-content:center;align-items:center;gap:clamp(7px,1.2vw,14px);min-height:0;display:flex}.honor-strip{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff13;border:1px solid #ffffff2e;border-radius:999px;align-items:center;gap:8px;max-width:48%;min-height:36px;padding:6px 15px;animation:.55s 80ms both honor-drop;display:flex;overflow:hidden;box-shadow:inset 0 1px #ffffff1a,0 8px 24px #0000001a}.honor-strip i{flex:none;font-size:clamp(1rem,2vw,1.3rem);font-style:normal}.honor-strip span{color:#ffffff94;letter-spacing:.08em;flex:none;font-size:clamp(.64rem,1vw,.78rem)}.honor-strip b{color:#ffe88d;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(.78rem,1.35vw,1rem);overflow:hidden}.crown-strip b{color:#ffd2e3}.group-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(8px,1.25vw,16px);min-height:0;display:grid;overflow:hidden}.dining-group{--group-color:#f7c650;border:1px solid #ffffff2e;border-top:3px solid var(--group-color);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);min-width:0;min-height:0;animation:dining-column-up .6s calc(var(--group-index) * 80ms) cubic-bezier(.2, .82, .22, 1) both;background:linear-gradient(#ffffff1f,#ffffff0e);border-radius:clamp(14px,2vw,22px);grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden;box-shadow:inset 0 1px #ffffff17,0 14px 34px #02081d26}.dining-group:nth-child(2){--group-color:#7ee6d6}.dining-group:nth-child(3){--group-color:#ff9eb8}.dining-group:nth-child(4){--group-color:#9db4ff}.dining-group h2{border-bottom:1px solid #ffffff1c;align-items:center;gap:8px;margin:0;padding:clamp(7px,1.2dvh,12px) clamp(9px,1.2vw,14px);font-size:clamp(.72rem,1.2vw,.94rem);display:flex}.dining-group h2 i{background:var(--group-color);width:8px;height:8px;box-shadow:0 0 12px var(--group-color);border-radius:50%;display:block}.dining-group h2 span{letter-spacing:.12em;flex:1}.dining-group h2 small{color:#ffffff73;font-size:.7em;font-weight:600}.dining-group>.dining-names{grid-template-rows:repeat(10,minmax(0,1fr));grid-template-columns:minmax(0,1fr);gap:clamp(2px,.42dvh,5px);min-height:0;padding:clamp(5px,.9dvh,9px);display:grid}.dining-names b{color:#fffef9;letter-spacing:.1em;text-align:center;min-height:0;animation:dining-name-in .38s calc(.22s + var(--name-index) * 35ms) both;background:linear-gradient(90deg,#ffffff0e,#ffffff1b,#ffffff0e);border:1px solid #ffffff1a;border-radius:8px;place-items:center;font-size:clamp(.64rem,min(1.3vw,1.78dvh),1rem);line-height:1;display:grid;overflow:hidden}.dining-footer{color:#ffffff80;letter-spacing:.06em;font-size:clamp(.62rem,1vw,.76rem)}.draw-stage,.random-result{width:100%;height:100%;min-height:0;position:relative}.leaderboard-trigger{z-index:5;cursor:pointer;border-radius:999px;padding:8px 15px;font-weight:800;transition:all .22s;position:absolute;top:clamp(10px,1.8dvh,18px);right:clamp(12px,2.5vw,32px)}.random-picker-original{gap:clamp(8px,1.4dvh,14px)}.random-picker-original>p,.timer-setup>p{font-size:clamp(1.15rem,2.7vw,2.15rem)}.number-chip-rows,.timer-preset-rows{gap:clamp(6px,1dvh,10px);margin:clamp(4px,.8dvh,8px) 0;display:grid}.number-chip-row,.timer-preset-row,.flip-count-row{justify-content:center;align-items:center;gap:clamp(6px,1vw,11px);display:flex}.chip{aspect-ratio:1;color:#ffffffc7;cursor:pointer;background:#ffffff14;border:1px solid #fff3;border-radius:50%;place-items:center;width:clamp(40px,min(6.3vw,7.2dvh),62px);font-size:clamp(.82rem,1.7vw,1.15rem);font-weight:900;transition:all .2s;display:grid;box-shadow:inset 0 1px #ffffff1c}.chip:hover,.chip.active{border-color:rgba(var(--tool-accent-rgb), .8);color:#142238;background:linear-gradient(145deg, #f9ffff, var(--tool-accent));box-shadow:0 0 24px rgba(var(--tool-accent-rgb), .28);transform:translateY(-2px)scale(1.05)}.custom-count{color:#ffffff9e;justify-content:center;align-items:center;gap:10px;font-size:clamp(.72rem,1.25vw,.9rem);display:flex}.custom-count input,.timer-custom-row input{color:#fff;text-align:center;background:#ffffff17;border:1px solid #ffffff3b;border-radius:12px;outline:none;width:76px;height:39px;font:800 1rem/1 Microsoft YaHei,sans-serif}.custom-count input:focus,.timer-custom-row input:focus{border-color:var(--tool-accent);box-shadow:0 0 0 3px rgba(var(--tool-accent-rgb), .12)}.custom-count small{color:#fff6}.random-result{grid-template-rows:auto minmax(0,1fr) auto auto;gap:clamp(6px,1.2dvh,12px);padding:clamp(12px,2dvh,22px) clamp(18px,4vw,66px) clamp(9px,1.5dvh,16px);display:grid;overflow:hidden}.random-round{border:1px solid rgba(var(--tool-accent-rgb), .35);color:var(--tool-accent);background:rgba(var(--tool-accent-rgb), .09);letter-spacing:.08em;border-radius:999px;justify-self:center;padding:7px 16px;font-size:clamp(.7rem,1.25vw,.9rem);font-weight:900}.random-round span{color:#ffffff7a;margin-left:10px;font-weight:600}.winner-wall{grid-template-columns:repeat(auto-fit,minmax(min(220px,42vw),1fr));place-content:center;place-items:center;gap:clamp(8px,1.4vw,18px);min-height:0;padding:clamp(5px,1.5dvh,18px);display:grid;overflow:hidden}.winner-wall b{border:1px solid rgba(var(--tool-accent-rgb), .2);color:#0000;background:linear-gradient(135deg, #fff 4%, #c5f5ff 44%, #ffe798 88%) text, linear-gradient(135deg, rgba(var(--tool-accent-rgb), .12), #ffffff0e);letter-spacing:.09em;text-align:center;width:100%;min-width:0;min-height:clamp(58px,10dvh,112px);text-shadow:0 0 32px rgba(var(--tool-accent-rgb), .2);animation:winner-pop .58s calc(var(--winner-index) * .11s) cubic-bezier(.14, .92, .22, 1.22) both;border-radius:clamp(14px,2.2vw,26px);place-items:center;padding:5px 16px;line-height:1;display:grid;overflow:hidden;box-shadow:inset 0 1px #ffffff1f,0 16px 40px #00000024}.random-history{color:#ffffff6b;white-space:nowrap;justify-content:center;gap:10px;font-size:clamp(.58rem,.9vw,.72rem);display:flex;overflow:hidden}.random-history span{text-overflow:ellipsis;max-width:34vw;overflow:hidden}.random-history b{color:#ffffffad}.random-actions{flex-wrap:wrap}.wheel-stage{grid-template-columns:minmax(0,1.25fr) minmax(250px,.75fr);align-items:center;width:100%;height:100%;min-height:0;padding:clamp(10px,2dvh,22px) clamp(20px,4vw,62px);display:grid;overflow:hidden}.wheel-machine{aspect-ratio:1;filter:drop-shadow(0 28px 34px #0000003d);border-radius:50%;justify-self:center;width:min(70dvh,56vw,610px);max-width:100%;animation:.7s cubic-bezier(.2,.8,.22,1) both wheel-machine-in;position:relative}.wheel{box-shadow:inset 0 0 0 4px #6e410d47, inset 0 0 35px #00000038, 0 0 0 5px #ffffff29, 0 0 48px rgba(var(--tool-accent-rgb), .22);border:clamp(7px,1vw,12px) solid #ffeca9f5;border-radius:50%;transition:transform 4s cubic-bezier(.12,.72,.08,1);position:absolute;inset:2.5%;overflow:hidden}.wheel:after{content:"";pointer-events:none;background:radial-gradient(circle,#0000 50%,#00000029 100%);border-radius:50%;position:absolute;inset:0}.wheel-label{z-index:2;width:48%;height:24px;transform:translateY(-50%) rotate(var(--segment-angle));transform-origin:0;pointer-events:none;position:absolute;top:50%;left:50%}.wheel-label b{color:#fffffff0;letter-spacing:.02em;text-overflow:ellipsis;text-shadow:0 1px 3px #0009;white-space:nowrap;max-width:54%;font-size:clamp(.45rem,min(.9vw,1.25dvh),.78rem);display:block;position:absolute;right:6%;overflow:hidden}.wheel-pointer{z-index:8;color:#fff1a8;text-shadow:0 5px 8px #0006, 0 0 16px rgba(var(--tool-accent-rgb), .6);font-size:clamp(2rem,4.7dvh,3.6rem);line-height:1;position:absolute;top:-1.5%;left:50%;transform:translate(-50%,-20%)rotate(180deg)}.wheel-hub{z-index:9;aspect-ratio:1;color:#fff7dc;letter-spacing:.08em;cursor:pointer;background:radial-gradient(circle at 35% 30%,#ffb85c,#e24c6c 70%);border:clamp(4px,.7vw,8px) solid #ffe999;border-radius:50%;place-items:center;width:clamp(74px,15%,106px);font-size:clamp(.68rem,1.4vw,1rem);font-weight:900;transition:transform .2s,filter .2s;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:inset 0 2px 7px #ffffff7a,0 8px 22px #25061875,0 0 28px #ffb15061}.wheel-result{text-align:center;border-left:1px solid #ffffff1f;align-content:center;justify-items:center;min-width:0;min-height:45%;padding:clamp(18px,3vw,36px);display:grid}.wheel-result span{color:var(--tool-accent);letter-spacing:.34em;font-size:clamp(.72rem,1.3vw,.96rem);font-weight:900}.wheel-result strong{color:#0000;letter-spacing:.08em;filter:drop-shadow(0 10px 22px rgba(var(--tool-accent-rgb),.3));background:linear-gradient(135deg,#fff,#ffe168 45%,#ff9a77);-webkit-background-clip:text;background-clip:text;margin-top:clamp(8px,1.4dvh,15px);font-size:clamp(3.2rem,min(9vw,12dvh),8rem);font-weight:900;line-height:1;animation:.62s cubic-bezier(.14,.92,.22,1.2) both winner-pop;display:block}.flip-stage,.flip-results{width:100%;height:100%;min-height:0}.flip-entry{gap:clamp(8px,1.5dvh,15px)}.flip-entry h2{font-size:clamp(1.3rem,3.3vw,2.4rem)}.flip-count-row{flex-wrap:wrap;max-width:720px}.flip-results{grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(7px,1.1dvh,12px);padding:clamp(8px,1.4dvh,14px) clamp(14px,2.4vw,30px) clamp(7px,1.1dvh,12px);display:grid;overflow:hidden}.flip-winners:before{content:"LUCKY";color:#ffffff61;letter-spacing:.22em;margin-right:4px;font-size:.62rem;font-weight:900}.flip-winners b{border:1px solid rgba(var(--tool-accent-rgb),.28);color:#d8fff8;background:rgba(var(--tool-accent-rgb),.09);letter-spacing:.08em;animation:winner-pop .45s calc(var(--winner-index) * 70ms) both;border-radius:999px;padding:5px 12px;font-size:clamp(.65rem,1vw,.8rem)}.card-grid{background:radial-gradient(circle at 50% 30%,#ffeeb447,#0000 27%),radial-gradient(at 50% 108%,#35946a8a,#0000 55%),linear-gradient(#6aa7bc80,#275158ad);border:1px solid #ffffff29;border-radius:clamp(17px,2.4vw,28px);grid-template-rows:repeat(3,minmax(0,1fr));grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(5px,.8vw,10px);min-height:0;padding:clamp(8px,1.25vw,14px);display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff21,0 22px 44px #0000002b}.card-grid:before{content:"🐼";z-index:0;color:#ffffffdb;filter:drop-shadow(0 18px 22px #03181e4d);pointer-events:none;font-size:min(42dvh,33vw);line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%)}.card-grid:after{content:"";z-index:0;pointer-events:none;background:linear-gradient(#091c2f05,#05111f24);position:absolute;inset:0}.flip-card{z-index:1;perspective:1000px;cursor:pointer;min-width:0;min-height:0;animation:flip-card-enter .48s calc(var(--card-index) * 35ms) both;background:0 0;border:0;outline:none;padding:0;position:relative}.card-face{backface-visibility:hidden;border:1px solid #ffffff3d;border-radius:clamp(9px,1.2vw,15px);place-items:center;transition:transform .72s cubic-bezier(.2,.75,.18,1);display:grid;position:absolute;inset:0;overflow:hidden}.card-back{-webkit-backdrop-filter:blur(.4px);backdrop-filter:blur(.4px);background:linear-gradient(135deg,#ffffff17,#ffffff05);box-shadow:inset 0 1px #ffffff1a,0 8px 22px #00000021}.card-back:before{content:"✦";color:#fff5c5ad;text-shadow:0 0 18px #ffe16f61;font-size:clamp(1rem,2.3vw,2rem)}.card-front{color:#563a19;letter-spacing:.05em;text-align:center;background:radial-gradient(circle at 20% 15%,#ffffffe6,#0000 30%),linear-gradient(145deg,#fffce4,#f5d892 68%,#e8b965);padding:clamp(7px,1.2vw,15px);font-size:clamp(.62rem,min(1.25vw,1.9dvh),1.05rem);font-weight:900;line-height:1.45;transform:rotateY(180deg);box-shadow:inset 0 0 0 3px #84561f1f,inset 0 0 22px #8b541221}.flip-card:hover .card-back{border-color:rgba(var(--tool-accent-rgb),.72);box-shadow:0 0 22px rgba(var(--tool-accent-rgb),.25)}.flip-actions{flex-wrap:wrap}.flip-actions span{color:#fff6;font-size:clamp(.58rem,.9vw,.7rem)}.timer-stage,.timer-running-box{width:100%;height:100%;min-height:0}.timer-setup{gap:clamp(7px,1.25dvh,13px)}.timer-preset-row button{aspect-ratio:1.05;color:#fff;cursor:pointer;background:linear-gradient(145deg,#ffffff1f,#ffffff0b);border:1px solid #ffffff30;border-radius:clamp(13px,1.7vw,20px);place-items:center;width:clamp(55px,min(8.2vw,9.5dvh),82px);transition:all .2s;display:grid;box-shadow:inset 0 1px #ffffff1c,0 10px 22px #0000001a}.timer-preset-row button:hover{border-color:rgba(var(--tool-accent-rgb),.72);color:#0b2738;background:linear-gradient(145deg, #f4ffff, var(--tool-accent));box-shadow:0 0 24px rgba(var(--tool-accent-rgb),.25);transform:translateY(-3px)}.timer-preset-row b{font-size:clamp(1rem,2vw,1.42rem);line-height:1}.timer-preset-row span{opacity:.62;margin-top:3px;font-size:clamp(.5rem,.8vw,.64rem)}.timer-custom-row{background:#ffffff0b;border:1px solid #ffffff21;border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding:8px 13px;display:flex}.timer-custom-row>span{color:#ffffff94;font-size:.78rem}.timer-custom-row label{color:#ffffff9e;align-items:center;gap:4px;font-size:.72rem;display:flex}.timer-custom-row input{width:clamp(48px,5vw,62px);height:34px}.timer-setup>small{color:#fff6;font-size:clamp(.58rem,.9vw,.72rem)}.timer-running-box{grid-template-rows:minmax(0,1fr) auto auto;align-content:center;place-items:center;gap:clamp(14px,2.8dvh,28px);padding:clamp(20px,5dvh,54px) clamp(26px,7vw,100px);display:grid}.timer-display{color:#0000;letter-spacing:-.04em;text-align:center;filter:drop-shadow(0 15px 30px #4fbeff3d);background:linear-gradient(#fff 4%,#bfefff 53%,#73d4ff 100%);-webkit-background-clip:text;background-clip:text;align-self:end;font-family:Arial Rounded MT Bold,Microsoft YaHei,sans-serif;font-size:clamp(6rem,min(22vw,35dvh),19rem);font-weight:900;line-height:.9}.timer-display.urgent{background:linear-gradient(#fff8e1,#ffbf61 48%,#ff6075);-webkit-background-clip:text;background-clip:text;animation:.75s ease-in-out infinite alternate timer-urgent}.timer-display.done{letter-spacing:.08em;background:linear-gradient(#fff,#ffe26f 55%,#ff9b6c);-webkit-background-clip:text;background-clip:text;align-self:center;font-size:clamp(3rem,min(10vw,17dvh),8rem);animation:.65s both winner-pop}.timer-progress{background:#ffffff12;border:1px solid #ffffff29;border-radius:999px;width:min(78vw,1020px);height:clamp(8px,1.5dvh,14px);overflow:hidden;box-shadow:inset 0 2px 8px #0000003b}.timer-progress span{border-radius:inherit;height:100%;box-shadow:0 0 20px rgba(var(--tool-accent-rgb),.48);background:linear-gradient(90deg,#65d8ff,#c0f5ff 52%,#ffe270);transition:width .9s linear;display:block}.timer-controls{justify-content:center;align-items:center;gap:12px;display:flex}.star-stage{place-items:center;width:100%;height:100%;min-height:0;display:grid;position:relative;overflow:hidden}.star-rays{aspect-ratio:1;opacity:.15;background:repeating-conic-gradient(#ffe776cc 0deg 5deg,#0000 5deg 14deg);border-radius:50%;width:min(118vw,150dvh);animation:30s linear infinite star-rays-spin;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-webkit-mask-image:radial-gradient(circle,#000 0 18%,#000000db 32%,#0000 72%);mask-image:radial-gradient(circle,#000 0 18%,#000000db 32%,#0000 72%)}.star-spark{z-index:1;color:#fff0a1;opacity:.2;filter:drop-shadow(0 0 8px #ffde5db3);animation:2.6s ease-in-out infinite spark-twinkle;position:absolute}.star-reveal-box{z-index:2;text-align:center;flex-direction:column;align-items:center;max-width:92vw;display:flex;position:relative}.star-main-icon{opacity:0;filter:drop-shadow(0 0 32px #ffdb558c);font-size:clamp(4rem,12dvh,8rem);line-height:1;display:block;transform:scale(.2)rotate(-45deg)}.star-label{color:var(--tool-accent);letter-spacing:.48em;opacity:0;margin-top:clamp(5px,1dvh,11px);font-size:clamp(.72rem,1.5vw,1rem);font-weight:900;transform:translateY(14px)}.star-reveal-box h2{color:#0000;letter-spacing:.1em;opacity:0;filter:drop-shadow(0 14px 28px #ffc4484d);background:linear-gradient(135deg,#fff 0%,#fff1a0 36%,#ffbf4f 70%,#ff8ba9 100%);-webkit-background-clip:text;background-clip:text;margin:clamp(8px,1.4dvh,16px) 0;font-size:clamp(4rem,min(13vw,19dvh),10rem);font-weight:900;line-height:.95;transform:scale(.66)}.star-reveal-box p{color:#ffffffb3;letter-spacing:.16em;opacity:0;margin:0 0 clamp(12px,2.2dvh,24px);font-family:KaiTi,STKaiti,Microsoft YaHei,serif;font-size:clamp(.92rem,2vw,1.35rem);transform:translateY(12px)}.star-replay{cursor:pointer;opacity:0;border-radius:999px;padding:9px 18px;font-size:clamp(.65rem,1vw,.8rem);transition:all .22s}.star-stage.revealed .star-main-icon{animation:.72s cubic-bezier(.13,.92,.22,1.3) both star-burst}.star-stage.revealed .star-label{animation:.48s .35s both reveal-up}.star-stage.revealed .star-reveal-box h2{animation:.75s cubic-bezier(.14,.9,.2,1.18) .48s both star-name-in}.star-stage.revealed .star-reveal-box p{animation:.5s .82s both reveal-up}.star-stage.revealed .star-replay{animation:.5s 1.02s both reveal-up}.praise-stage{width:100%;height:100%;min-height:0;display:grid;position:relative;overflow:hidden}.praise-hearts{color:#ff97c621;letter-spacing:.7em;text-align:center;white-space:nowrap;width:100%;font-size:clamp(2rem,7vw,5.5rem);animation:5s ease-in-out infinite hearts-float;position:absolute;top:8%;left:0;overflow:hidden}.praise-result{z-index:2;text-align:center;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;min-height:0;padding:clamp(16px,3dvh,36px);display:flex;position:relative}.praise-label{color:var(--tool-accent);letter-spacing:.36em;font-size:clamp(.75rem,1.4vw,1rem);font-weight:900;animation:.45s both reveal-up}.praise-result h2{color:#0000;letter-spacing:.09em;filter:drop-shadow(0 14px 28px #ff76b747);background:linear-gradient(135deg,#fff 0%,#ffd5e8 32%,#ff8fc5 66%,#ffdc74 100%);-webkit-background-clip:text;background-clip:text;margin:clamp(7px,1.2dvh,14px) 0;font-size:clamp(4.4rem,min(14vw,21dvh),11rem);font-weight:900;line-height:.95;animation:.7s cubic-bezier(.14,.9,.22,1.2) .12s both winner-pop}.praise-result>p{color:#ffffffad;letter-spacing:.06em;margin:clamp(4px,.8dvh,9px) 0 clamp(14px,2.4dvh,26px);font-size:clamp(.78rem,1.55vw,1.08rem);animation:.5s .38s both reveal-up}.praise-result>p b{color:#ffd4e8}.praise-team{justify-content:center;gap:clamp(8px,1.4vw,16px);margin-bottom:clamp(14px,2.4dvh,26px);display:flex}.praise-team span{border:1px solid rgba(var(--tool-accent-rgb),.32);color:#fff4fa;letter-spacing:.08em;min-width:clamp(112px,14vw,176px);min-height:clamp(54px,8dvh,78px);animation:praise-chip-in .55s calc(.48s + var(--winner-index) * .11s) cubic-bezier(.16,.86,.22,1.2) both;background:linear-gradient(135deg,#ff9dcb2e,#ffffff0f);border-radius:999px;place-items:center;padding:9px 18px;font-size:clamp(1rem,2.2vw,1.55rem);font-weight:900;display:grid;box-shadow:inset 0 1px #ffffff26,0 12px 30px #46082826}.board-screen{z-index:4;background:#172446;width:100%;height:100dvh;min-height:0;position:relative;overflow:hidden}.board-layout{width:100%;min-width:0;height:100%;min-height:0;display:flex;overflow:hidden}.board-shell{background:radial-gradient(circle at 50% 45%,#ffffffe6,#f6eed3f5 68%,#dac69bfa),#f3ead1;flex:auto;min-width:0;min-height:0;padding:clamp(8px,1.2vw,16px);position:relative;overflow:hidden;box-shadow:inset 0 0 55px #66461c38}.board-shell:before{content:"";pointer-events:none;border:2px solid #754e2338;border-radius:9px;position:absolute;inset:clamp(7px,1vw,13px);box-shadow:inset 0 0 0 5px #ffffff38}.board-shell canvas{z-index:1;cursor:crosshair;border-radius:7px;width:100%;height:100%;display:block;position:relative}.board-toolbar{scrollbar-width:none;background:linear-gradient(#0c1632f7,#15254cfa);border-left:1px solid #ffffff2b;flex-direction:column;flex:0 0 clamp(68px,6.2vw,84px);align-items:center;gap:clamp(5px,.75dvh,8px);height:100%;min-height:0;padding:clamp(8px,1.3dvh,13px) 7px;display:flex;overflow:hidden auto;box-shadow:-12px 0 34px #00000030}.board-toolbar::-webkit-scrollbar{display:none}.board-icon-button{aspect-ratio:1;color:#fff;cursor:pointer;background:#ffffff12;border:1px solid #ffffff29;border-radius:14px;flex:none;place-items:center;width:clamp(43px,4.5vw,54px);padding:0;font-size:clamp(1rem,1.9vw,1.3rem);transition:all .2s;display:grid;box-shadow:inset 0 1px #ffffff1a}.board-icon-button:hover,.board-icon-button.active{color:#1a2946;background:linear-gradient(145deg,#fff9d9,#ffd862);border-color:#ffd85bb8;transform:translate(-2px);box-shadow:0 0 20px #ffd44b3d}.board-page-number{color:#ffffffd1;letter-spacing:.05em;font-size:.72rem;font-weight:900}.board-separator{background:#ffffff24;flex:none;width:70%;height:1px;margin:1px 0}.color-list,.width-list{flex-wrap:wrap;flex:none;justify-content:center;align-items:center;gap:5px;width:100%;display:flex}.color-dot,.width-dot{cursor:pointer;border:2px solid #0000;border-radius:50%;place-items:center;padding:0;display:grid}.color-dot{aspect-ratio:1;background:var(--dot-color,#fff);width:clamp(19px,2vw,24px);box-shadow:0 2px 5px #00000059}.color-dot.active,.width-dot.active{border-color:#ffe36d;box-shadow:0 0 0 2px #ffffffd9,0 0 12px #ffda5773}.width-dot{background:#ffffff14;min-width:22px;min-height:22px}.width-dot:after{content:"";width:inherit;max-width:12px;height:inherit;background:#ffffffdb;border-radius:50%;max-height:12px;transform:scale(.42)}.board-pager{display:none!important}.draw-roll-overlay{z-index:120;color:#fff;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:radial-gradient(circle at 50% 48%,#5c7bff52,#0000 33%),#050a1ceb;flex-direction:column;justify-content:center;align-items:center;animation:.22s both overlay-in;display:flex;position:fixed;inset:0;overflow:hidden}.draw-roll-overlay:before,.draw-roll-overlay:after{content:"";aspect-ratio:1;border:1px solid #ffffff1c;border-radius:50%;width:min(74vw,74dvh);animation:2s linear infinite roll-ring;position:absolute}.draw-roll-overlay:after{border-style:dashed;width:min(54vw,54dvh);animation-duration:3s;animation-direction:reverse}.roll-deco{z-index:2;color:#ffe071;letter-spacing:.2em;filter:drop-shadow(0 0 18px #ffd95b73);font-size:clamp(1.1rem,2.5vw,1.8rem);position:relative}.draw-roll-overlay strong{z-index:2;color:#0000;letter-spacing:.1em;text-align:center;filter:drop-shadow(0 16px 30px #4fadff40);background:linear-gradient(135deg,#fff,#c8f4ff 42%,#ffe276 80%,#ff9ec7);-webkit-background-clip:text;background-clip:text;min-width:0;margin:clamp(18px,3dvh,34px) 0;font-size:clamp(5rem,min(16vw,22dvh),13rem);font-weight:900;line-height:.9;animation:.18s ease-in-out infinite alternate roll-name-pulse;position:relative}.draw-roll-overlay>span{z-index:2;color:#ffffff8f;letter-spacing:.45em;font-size:clamp(.72rem,1.4vw,.96rem);font-weight:800;position:relative}.modal-backdrop{z-index:130;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#030715bd;place-items:center;padding:0;display:grid;position:fixed;inset:0;overflow:hidden}.modal-card{max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);position:relative;overflow:hidden}.modal-close{z-index:20;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#080e2352;border:1px solid #ffffff40;border-radius:50%;place-items:center;width:40px;height:40px;font-size:1.2rem;display:grid;position:absolute;top:16px;right:16px}.birthday-modal-card{width:100vw;max-width:none;height:100dvh;max-height:none;box-shadow:none;background:radial-gradient(circle at 50% 42%,#ffce5233,#0000 28%),radial-gradient(circle at 18% 18%,#ff6da633,#0000 26%),linear-gradient(145deg,#111845f7,#31184bfa);border:0;border-radius:0}.birthday-celebration{text-align:center;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:28px;display:flex;position:relative;overflow:hidden}.birthday-floaters{pointer-events:none;position:absolute;inset:0;overflow:hidden}.birthday-floaters span{bottom:-12%;left:calc(4% + (var(--balloon-index) * 7.1%));opacity:0;filter:drop-shadow(0 8px 10px #0003);animation:balloon-rise calc(5.5s + (var(--balloon-index) * .18s)) calc(var(--balloon-index) * -.42s) linear infinite;font-size:clamp(1.8rem,4vw,3.8rem);position:absolute}.birthday-celebration .cake{filter:drop-shadow(0 18px 26px #0003);font-size:clamp(5rem,14dvh,9rem);line-height:1;animation:2.2s ease-in-out infinite birthday-cake-bounce}.birthday-celebration>p{color:#ffe479;letter-spacing:.55em;margin:clamp(7px,1dvh,12px) 0 0;font-size:clamp(.8rem,1.6vw,1.1rem);font-weight:900}.birthday-celebration h2{color:#0000;letter-spacing:.09em;filter:drop-shadow(0 14px 28px #ff9bc247);background:linear-gradient(135deg,#fff,#ffe785 42%,#ff91bd 78%);-webkit-background-clip:text;background-clip:text;margin:clamp(8px,1.5dvh,16px) 0;font-size:clamp(4rem,min(13vw,18dvh),10rem);font-weight:900;line-height:1;animation:.7s both winner-pop}.birthday-celebration>strong{color:#fffc;letter-spacing:.08em;max-width:820px;font-size:clamp(.9rem,1.8vw,1.2rem);line-height:1.8}.birthday-celebration>small{color:#fff6;letter-spacing:.14em;font-size:.72rem;position:absolute;bottom:24px}.leaderboard-modal-card{background:radial-gradient(circle at 50% 0,#74e1ff26,#0000 34%),linear-gradient(145deg,#141f45f7,#0d1532fa);border:1px solid #fff3;border-radius:clamp(22px,3vw,34px);width:min(92vw,680px);max-height:min(88dvh,820px);padding:clamp(22px,4vw,42px);box-shadow:0 34px 80px #0000006b,inset 0 1px #ffffff1f}.leaderboard-modal{text-align:center;flex-direction:column;height:100%;min-height:0;display:flex}.leaderboard-modal>p{color:#92e7ff;letter-spacing:.25em;margin:0;font-size:.76rem;font-weight:900}.leaderboard-modal h2{color:#fff;letter-spacing:.14em;margin:5px 0 16px;font-size:clamp(2rem,5vw,3.5rem)}.leaderboard-modal ol{gap:7px;min-height:0;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.leaderboard-modal li{color:#ffffffbf;text-align:left;background:#ffffff0e;border:1px solid #ffffff1a;border-radius:13px;grid-template-columns:48px 1fr auto;align-items:center;min-height:45px;padding:7px 14px;display:grid}.leaderboard-modal li.top{color:#fff;background:linear-gradient(90deg,#ffd34e24,#ffffff0f);border-color:#ffdb6347}.leaderboard-modal li span{text-align:center;font-size:1.25rem}.leaderboard-modal li b{letter-spacing:.08em}.leaderboard-modal li em{color:#ffe071;font-style:normal;font-weight:900}@keyframes subview-reveal{0%{opacity:0;transform:scale(1.012)}to{opacity:1;transform:scale(1)}}@keyframes stage-orb-drift{0%{transform:translate(-2%,-3%)scale(.9)}to{transform:translate(7%,5%)scale(1.08)}}@keyframes entry-stage-up{0%{opacity:0;transform:translateY(22px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes entry-icon-float{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-8px)rotate(2deg)}}@keyframes honor-drop{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes dining-column-up{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes dining-name-in{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes winner-pop{0%{opacity:0;transform:scale(.55)translateY(14px)}70%{opacity:1;transform:scale(1.05)translateY(-2px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes wheel-machine-in{0%{opacity:0;transform:scale(.8)rotate(-8deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes flip-card-enter{0%{opacity:0;transform:translateY(18px)rotateX(15deg)}to{opacity:1;transform:translateY(0)rotateX(0)}}@keyframes timer-urgent{0%{filter:drop-shadow(0 12px 24px #ff53683d);transform:scale(1)}to{filter:drop-shadow(0 18px 38px #ff53688c);transform:scale(1.04)}}@keyframes star-rays-spin{to{transform:translate(-50%,-50%)rotate(360deg)}}@keyframes spark-twinkle{0%,to{opacity:.15;transform:scale(.7)rotate(0)}50%{opacity:.95;transform:scale(1.25)rotate(35deg)}}@keyframes star-burst{0%{opacity:0;transform:scale(.2)rotate(-45deg)}70%{opacity:1;transform:scale(1.12)rotate(8deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes reveal-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes star-name-in{0%{opacity:0;transform:scale(.66)}to{opacity:1;transform:scale(1)}}@keyframes hearts-float{0%,to{transform:translateY(0)}50%{transform:translateY(16px)}}@keyframes praise-chip-in{0%{opacity:0;transform:translateY(20px)scale(.85)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes roll-ring{to{transform:rotate(360deg)}}@keyframes roll-name-pulse{0%{transform:scale(.98)}to{transform:scale(1.035)}}@keyframes balloon-rise{0%{opacity:0;transform:translateY(0)rotate(-8deg)}12%,78%{opacity:.86}to{opacity:0;transform:translateY(-125dvh)rotate(12deg)}}@keyframes birthday-cake-bounce{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-10px)rotate(2deg)}}@media (height<=700px){.tool-screen{grid-template-rows:58px minmax(0,1fr)}.tool-header{padding-block:7px}.tool-gear{width:34px;height:34px}.entry-icon,.picker-dice,.timer-setup-icon{font-size:clamp(2.8rem,8.5dvh,4.4rem)}.subpage-entry,.count-picker{padding-block:10px}.subpage-entry>p{margin-block:7px 13px;line-height:1.45}.primary-button.large{min-height:46px}.wheel-machine{width:min(68dvh,54vw,540px)}.timer-setup{gap:5px}.timer-preset-rows{gap:5px;margin:2px 0}.timer-preset-row button{width:clamp(48px,8dvh,64px)}.timer-custom-row{padding-block:5px}.timer-display{font-size:clamp(5rem,min(20vw,31dvh),13rem)}.praise-result h2,.star-reveal-box h2{font-size:clamp(3.6rem,min(12vw,17dvh),7.4rem)}.card-grid{gap:5px;padding:7px}.flip-actions .primary-button,.flip-actions .soft-button{min-height:36px;padding-block:7px}}@media (height<=610px){.tool-screen{grid-template-rows:52px minmax(0,1fr)}.tool-header{padding-block:5px}.back-button{padding:7px 12px}.tool-gear{width:31px;height:31px}.entry-icon,.picker-dice,.timer-setup-icon{margin-bottom:3px;font-size:2.7rem}.entry-kicker{margin-bottom:5px}.subpage-entry>p{margin:5px 0 9px}.primary-button.large{min-height:40px;padding-block:7px}.random-picker-original,.timer-setup{gap:4px}.number-chip-rows{gap:4px;margin:1px 0}.chip{width:clamp(36px,min(5.3vw,7.1dvh),44px)}.wheel-stage{padding-block:6px}.wheel-machine{width:min(69dvh,52vw,470px)}.wheel-result strong{font-size:clamp(2.8rem,min(8vw,11dvh),5.5rem)}.timer-preset-row button{border-radius:12px;width:clamp(43px,7.5dvh,53px)}.timer-custom-row input{height:30px}.timer-custom-row .primary-button{min-height:33px;padding-block:5px}.timer-setup>small{display:none}.honor-strip{min-height:30px;padding-block:4px}.dining-results{gap:5px;padding-block:6px}.dining-footer{min-height:26px}.flip-results{gap:5px;padding-block:6px}.flip-winners{min-height:27px}.flip-actions{min-height:31px}.flip-actions span{display:none}.praise-result>p,.praise-team{margin-bottom:10px}.praise-team span{min-height:44px}}@media (width<=900px){.tool-header{grid-template-columns:minmax(92px,1fr) auto minmax(92px,1fr);padding-inline:14px}.tool-header-side p{max-width:22vw}.wheel-stage{grid-template-columns:minmax(0,1fr) minmax(190px,.55fr);padding-inline:16px}.wheel-machine{width:min(66dvh,66vw,520px)}.wheel-result{padding-inline:12px}.winner-wall{grid-template-columns:repeat(auto-fit,minmax(min(180px,42vw),1fr))}.dining-results{padding-inline:10px}.group-grid{gap:7px}.dining-group h2{padding-inline:8px}}@media (width<=720px){.tool-header{grid-template-columns:58px minmax(0,1fr) 58px;gap:7px}.back-button{color:#0000;white-space:nowrap;width:42px;padding-inline:12px;overflow:hidden}.back-button:first-letter{color:#fff}.tool-header-side p{display:none}.tool-title-lockup h1{letter-spacing:.06em;font-size:clamp(.95rem,4.3vw,1.3rem)}.group-grid{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr))}.dining-group>.dining-names{grid-template-rows:repeat(5,minmax(0,1fr));grid-auto-columns:1fr;grid-auto-flow:column}.dining-footer span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.wheel-stage{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:1fr;padding:7px 12px}.wheel-machine{width:min(58dvh,72vw,430px)}.wheel-result{border-top:1px solid #ffffff1a;border-left:0;min-height:54px;padding:4px 10px}.wheel-result p{font-size:.68rem;line-height:1.3}.wheel-result span{display:none}.wheel-result strong{margin:0;font-size:clamp(2rem,8vw,4rem)}.random-result{padding-inline:10px}.winner-wall{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:3px}.random-history{display:none}.card-grid{gap:4px;padding:5px}.flip-winners:before,.flip-actions span{display:none}.timer-preset-row{gap:4px}.timer-preset-row button{width:min(12vw,8dvh)}.timer-custom-row>span{width:100%}.timer-display{font-size:clamp(4rem,min(24vw,28dvh),10rem)}.praise-team{gap:6px}.praise-team span{min-width:27vw;padding-inline:8px}}@media (width<=520px){.honor-strips{gap:4px}.honor-strip{max-width:50%;padding-inline:8px}.honor-strip span{display:none}.leaderboard-trigger{padding:6px 9px;font-size:.65rem;top:6px;right:7px}.custom-count{flex-wrap:wrap;gap:5px}.number-chip-row{gap:4px}.random-actions .primary-button,.random-actions .soft-button{min-width:0;padding-inline:12px}.flip-count-row{max-width:300px}.timer-custom-row{gap:5px}.timer-custom-row label{gap:2px}.timer-custom-row input{width:41px}.timer-custom-row .primary-button{width:100%}.star-reveal-box p{letter-spacing:.06em}.praise-team span{min-width:28vw;font-size:.85rem}.board-toolbar{flex-basis:58px;padding-inline:4px}.board-icon-button{border-radius:11px;width:40px}.color-dot{width:18px}}@media (prefers-reduced-motion:reduce){.tool-screen,.stage-orb,.subpage-entry,.count-picker,.entry-icon,.picker-dice,.timer-setup-icon,.honor-strip,.dining-group,.dining-names b,.winner-wall b,.wheel-machine,.flip-card,.star-rays,.star-spark,.star-main-icon,.star-label,.star-reveal-box h2,.star-reveal-box p,.star-replay,.praise-hearts,.praise-label,.praise-result h2,.praise-result>p,.praise-team span,.draw-roll-overlay,.draw-roll-overlay:before,.draw-roll-overlay:after,.draw-roll-overlay strong,.birthday-floaters span,.birthday-celebration .cake{animation:none!important}}.wheel-stage{flex-direction:column;justify-content:center;align-items:center;gap:clamp(3px,.7dvh,9px);width:100%;height:100%;min-height:0;padding:clamp(5px,.9dvh,10px) clamp(12px,2vw,24px) clamp(7px,1.1dvh,13px);display:flex;position:relative;overflow:hidden}.wheel-machine{aspect-ratio:1;filter:drop-shadow(0 24px 34px #00000045);border-radius:50%;flex:0 auto;width:min(62dvh,43vw,600px);max-width:100%;animation:.7s cubic-bezier(.2,.8,.22,1) both wheel-machine-in;position:relative}.wheel-canvas{border-radius:50%;width:100%;height:100%;display:block;position:absolute;inset:0}.wheel-pointer{z-index:12;aspect-ratio:.86;color:#fff2a8;text-shadow:0 5px 8px #00000075,0 0 18px #ffca4ab8;transform-origin:50% 22%;pointer-events:none;place-items:center;width:clamp(36px,7.5%,54px);font-size:clamp(2.1rem,5.2dvh,3.8rem);line-height:1;display:grid;position:absolute;top:-2.5%;left:50%;transform:translate(-50%,-12%)}.wheel-stage.is-spinning .wheel-pointer{animation:.17s ease-in-out infinite alternate wheel-pointer-tick}.wheel-center-glow{z-index:7;aspect-ratio:1;filter:blur(5px);pointer-events:none;background:radial-gradient(circle,#fff8b8b3,#ffa14233 48%,#0000 72%);border-radius:50%;width:23%;animation:1.8s ease-in-out infinite wheel-center-breathe;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.wheel-hub{z-index:10;aspect-ratio:1;color:#fff9e6;letter-spacing:.08em;cursor:pointer;background:radial-gradient(circle at 34% 28%,#ffffff9e,#0000 18%),radial-gradient(circle at 38% 32%,#ffbd57,#ef6858 58%,#b83867 100%);border:clamp(4px,.65vw,7px) solid #fff0a7;border-radius:50%;place-items:center;width:clamp(72px,17%,108px);padding:0;font-size:clamp(.7rem,1.25vw,.98rem);font-weight:900;transition:transform .2s,filter .2s;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:inset 0 2px 8px #ffffff8f,inset 0 -8px 15px #6d14353d,0 8px 22px #23061c7a,0 0 0 5px #ffffff1f,0 0 30px #ffbe4980}.wheel-hub span{transform:translate(.04em)}.wheel-hub:hover:not(:disabled){filter:brightness(1.08);transform:translate(-50%,-50%)scale(1.075)}.wheel-hub:disabled{cursor:wait}.wheel-stage.is-spinning .wheel-hub{animation:.72s ease-in-out infinite alternate wheel-hub-pulse}.wheel-result{text-align:center;border:0;flex-direction:column;flex:none;justify-content:center;align-items:center;width:min(100%,760px);min-width:0;min-height:clamp(58px,10.5dvh,96px);padding:clamp(4px,.7dvh,8px) 14px;display:flex;position:relative}.wheel-result p{color:#ffffffa6;letter-spacing:.06em;max-width:690px;margin:0;font-size:clamp(.72rem,1.3vw,.96rem);line-height:1.55}.wheel-result>span{color:#ffe36e;letter-spacing:.34em;font-size:clamp(.68rem,1.05vw,.86rem);font-weight:900;animation:.4s both reveal-up}.wheel-result strong{color:#0000;letter-spacing:.08em;filter:drop-shadow(0 9px 20px #ffc03f4f);background:linear-gradient(135deg,#fff 3%,#ffe46b 45%,#ff9a79 92%);-webkit-background-clip:text;background-clip:text;margin:clamp(2px,.45dvh,5px) 0 0;font-size:clamp(2.5rem,min(7.2vw,8.7dvh),6.4rem);font-weight:900;line-height:.96;animation:.62s cubic-bezier(.14,.92,.22,1.2) both winner-pop;display:block}.wheel-result small{color:#ffffff73;letter-spacing:.09em;margin-top:4px;font-size:clamp(.58rem,.82vw,.7rem);animation:.42s .28s both reveal-up}.wheel-wait-dots{gap:7px;margin-bottom:7px;display:flex}.wheel-wait-dots i{width:8px;height:8px;animation:wheel-wait-dot .72s calc(var(--dot-index,0) * .12s) ease-in-out infinite alternate;background:#ffe56e;border-radius:50%;box-shadow:0 0 12px #ffda54b8}.wheel-wait-dots i:nth-child(2){--dot-index:1}.wheel-wait-dots i:nth-child(3){--dot-index:2}.flip-stage{display:block}.flip-results{grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"winners""cards""actions";gap:clamp(5px,.8dvh,9px);width:100%;height:100%;min-height:0;padding:clamp(6px,.9dvh,10px) clamp(12px,2vw,26px);display:grid;overflow:hidden}.flip-results>.flip-winners{grid-area:auto/winners}.flip-winners{flex-wrap:wrap;justify-content:center;align-items:center;gap:5px 7px;min-height:32px;display:flex}.flip-winners:before{display:none}.flip-winners-label{color:#ffffff7a;letter-spacing:.14em;margin-right:2px;font-size:clamp(.58rem,.85vw,.7rem);font-weight:800}.flip-winners b{border:1px solid rgba(var(--tool-accent-rgb),.34);color:#e2fff8;background:linear-gradient(135deg, rgba(var(--tool-accent-rgb),.18), #ffffff0f);letter-spacing:.08em;animation:winner-pop .45s calc(var(--winner-index) * 70ms) both;border-radius:999px;padding:4px 11px;font-size:clamp(.64rem,.95vw,.78rem);box-shadow:inset 0 1px #ffffff1a}.flip-winners em{color:#ffe49a;letter-spacing:.06em;margin-left:5px;font-size:clamp(.58rem,.82vw,.68rem);font-style:normal}.flip-results>.card-grid{grid-area:auto/cards;align-self:stretch;width:min(100%,1180px);height:auto;min-height:0;margin:0 auto}.card-grid{box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-rows:repeat(3,minmax(0,1fr));grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(5px,.68vw,9px);padding:2px;display:grid;position:relative;overflow:visible}.card-grid:before,.card-grid:after{display:none}.flip-card{z-index:1;perspective:1100px;cursor:pointer;width:100%;min-width:0;height:100%;min-height:0;animation:flip-card-enter .48s calc(var(--card-index) * 35ms) both;background:0 0;border:0;outline:none;padding:0;position:relative;overflow:visible}.card-face{backface-visibility:hidden;transform-style:preserve-3d;border:2px solid #e9f9ff9e;border-radius:clamp(8px,1.05vw,14px);place-items:center;transition:transform .72s cubic-bezier(.2,.75,.18,1),border-color .22s,box-shadow .22s;display:grid;position:absolute;inset:0;overflow:hidden}.card-back{background-color:#8ec9ff;background-image:url(/class-growth-card-board.webp);background-repeat:no-repeat;background-size:400% 300%;box-shadow:inset 0 1px #ffffff8c,inset 0 -8px 16px #19538429,0 8px 20px #0003}.card-back:before{display:none}.card-front{color:#563a19;background:radial-gradient(circle at 20% 15%,#fffffff0,#0000 31%),linear-gradient(145deg,#fffde9,#f7dd99 66%,#e8b763);padding:clamp(5px,.9vw,12px);transform:rotateY(180deg);box-shadow:inset 0 0 0 3px #84561f1f,inset 0 0 22px #8b541221,0 9px 22px #00000038}.flip-card.open .card-back{transform:rotateY(180deg)}.flip-card.open .card-front{transform:rotateY(360deg)}.flip-card:hover:not(:disabled) .card-back{border-color:#fff3a3;box-shadow:inset 0 1px #ffffffb3,0 0 25px #ffdc5f6b,0 10px 22px #0003}.card-reward{text-align:center;place-items:center;gap:clamp(3px,.65dvh,7px);display:grid}.card-reward small{color:#6a471a94;letter-spacing:.08em;font-size:clamp(.48rem,.7vw,.62rem);font-weight:800}.card-reward b{letter-spacing:.04em;font-size:clamp(.62rem,min(1.15vw,1.75dvh),1rem);line-height:1.42}.flip-results>.flip-actions{grid-area:auto/actions}.flip-actions{flex-wrap:wrap;justify-content:center;gap:7px;display:flex}.flip-actions span{color:#ffffff61;text-align:center;flex-basis:100%;font-size:clamp(.54rem,.75vw,.65rem)}.star-stage{isolation:isolate;place-items:center;width:100%;height:100%;min-height:0;display:grid;position:relative;overflow:hidden}.star-stage:before{content:"";z-index:-3;filter:blur(12px);background:radial-gradient(circle,#ffd64138,#ff783812 40%,#0000 70%);border-radius:50%;animation:2.4s ease-in-out .7s infinite star-aura-breathe;position:absolute;inset:8% 18%}.star-rays{z-index:-4;opacity:0;background:repeating-conic-gradient(#ffeb7640 0deg 6deg,#0000 6deg 15deg);width:170vmax;height:170vmax;animation:1s ease-out .2s both star-rays-arrive,26s linear 1.2s infinite star-rays-spin;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.star-screen-flash{z-index:7;pointer-events:none;background:radial-gradient(circle at 50% 48%,#fffdd7d1,#ffe1642e 32%,#0000 66%);animation:.82s ease-out .35s both star-screen-flash;position:absolute;inset:0}.star-halo-rings{z-index:-1;aspect-ratio:1;pointer-events:none;width:min(31dvh,26vw);position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.star-halo-rings i{opacity:0;border:2px solid #ffe86dd1;border-radius:50%;animation:1.4s ease-out .44s both star-ring-burst;position:absolute;inset:0;box-shadow:0 0 22px #ffca3052}.star-halo-rings i:nth-child(2){animation-delay:.59s}.star-halo-rings i:nth-child(3){animation-delay:.74s}.star-spark{z-index:2;color:#fff7b0;opacity:0;filter:drop-shadow(0 0 8px #ffdf50c7);pointer-events:none;line-height:1;animation-name:star-spark-twinkle;animation-timing-function:ease-in-out;animation-iteration-count:infinite;position:absolute}.star-confetti{z-index:5;pointer-events:none;position:absolute;inset:0;overflow:hidden}.star-confetti i{top:-8%;left:var(--confetti-left);opacity:0;background:var(--confetti-color);width:clamp(5px,.65vw,10px);height:clamp(10px,1.35vw,18px);box-shadow:0 0 8px var(--confetti-color);border-radius:2px;position:absolute}@supports (color:color-mix(in lab, red, red)){.star-confetti i{box-shadow:0 0 8px color-mix(in srgb, var(--confetti-color), transparent 45%)}}.star-confetti i{animation:star-confetti-fall var(--confetti-duration) var(--confetti-delay) cubic-bezier(.12,.65,.3,1) both}.star-confetti i:nth-child(3n){border-radius:50%}.star-confetti i:nth-child(4n){width:clamp(8px,.9vw,13px);height:clamp(5px,.6vw,9px)}.star-reveal-box{z-index:3;text-align:center;flex-direction:column;justify-content:center;align-items:center;width:min(92vw,980px);max-height:88%;display:flex;position:relative;transform:translateY(-1.5dvh)}.star-icon-arrival{opacity:0;transform-origin:50% 60%;line-height:1;animation:.9s cubic-bezier(.14,.9,.2,1.25) .22s both star-icon-arrive;display:block}.star-main-icon{color:#ffe26e;opacity:1;filter:drop-shadow(0 0 14px #ffdf44db)drop-shadow(0 12px 18px #7b340040);font-size:clamp(4.3rem,min(13vw,18dvh),9.5rem);line-height:.95;animation:1.8s ease-in-out 1.08s infinite star-icon-breathe;display:block;transform:none}.star-label{color:#ffe781;letter-spacing:.82em;opacity:0;margin-top:clamp(3px,.6dvh,7px);font-size:clamp(.88rem,min(2vw,2.7dvh),1.45rem);font-weight:900;animation:.48s .56s both reveal-up;transform:translate(.41em)}.star-reveal-box h2{color:#0000;letter-spacing:.08em;opacity:0;filter:drop-shadow(0 10px 22px #ffad3152);background:linear-gradient(#fffef0 2%,#ffe45d 50%,#ff9f51 92%);-webkit-background-clip:text;background-clip:text;margin:clamp(4px,.75dvh,8px) 0 0;font-size:clamp(4.8rem,min(21vw,21dvh),12rem);font-weight:950;line-height:.96;animation:.9s cubic-bezier(.14,.9,.2,1.14) .48s both star-name-pop}.star-reveal-box p{color:#ffffffc7;letter-spacing:.12em;opacity:0;max-width:min(82vw,800px);margin:clamp(9px,1.5dvh,16px) 0 0;font-size:clamp(.78rem,min(1.7vw,2.2dvh),1.12rem);line-height:1.65;animation:.54s 1.06s both reveal-up}.star-replay{z-index:8;opacity:0;animation:.48s 1.34s both reveal-up;position:absolute;bottom:clamp(25px,4dvh,42px);right:clamp(12px,2vw,24px)}.star-footnote{z-index:3;color:#ffffff59;letter-spacing:.08em;text-align:center;width:min(80vw,720px);font-size:clamp(.52rem,.75vw,.64rem);position:absolute;bottom:clamp(7px,1.1dvh,12px);left:50%;transform:translate(-50%)}@keyframes wheel-pointer-tick{0%{transform:translate(-50%,-12%)rotate(-4deg)}to{transform:translate(-50%,-12%)rotate(4deg)}}@keyframes wheel-center-breathe{0%{opacity:.55;transform:translate(-50%,-50%)scale(.88)}to{opacity:1;transform:translate(-50%,-50%)scale(1.16)}}@keyframes wheel-hub-pulse{0%{filter:brightness(.96)}to{filter:brightness(1.12)}}@keyframes wheel-wait-dot{0%{opacity:.35;transform:translateY(2px)scale(.75)}to{opacity:1;transform:translateY(-3px)scale(1.12)}}@keyframes star-rays-arrive{0%{opacity:0;transform:translate(-50%,-50%)scale(.5)}to{opacity:.15;transform:translate(-50%,-50%)scale(1)}}@keyframes star-screen-flash{0%,to{opacity:0}38%{opacity:.9}}@keyframes star-ring-burst{0%{opacity:0;transform:scale(.35)}18%{opacity:.8}to{opacity:0;transform:scale(3.9)}}@keyframes star-spark-twinkle{0%,to{opacity:.14;transform:scale(.62)rotate(-8deg)}50%{opacity:1;transform:scale(1.24)rotate(9deg)}}@keyframes star-confetti-fall{0%{opacity:0;transform:translateY(-4dvh)rotate(0)}10%,78%{opacity:.92}to{opacity:0;transform:translate3d(var(--confetti-drift), 112dvh, 0) rotate(var(--confetti-rotation))}}@keyframes star-icon-arrive{0%{opacity:0;transform:translateY(24px)scale(.12)rotate(-18deg)}62%{opacity:1;transform:translateY(-5px)scale(1.2)rotate(7deg)}to{opacity:1;transform:translateY(0)scale(1)rotate(0)}}@keyframes star-icon-breathe{0%,to{filter:drop-shadow(0 0 13px #ffdf44c2)drop-shadow(0 12px 18px #7b340038);transform:scale(1)rotate(-2deg)}50%{filter:drop-shadow(0 0 25px #ffeb6f)drop-shadow(0 15px 22px #7b340047);transform:scale(1.11)rotate(2deg)}}@keyframes star-name-pop{0%{opacity:0;transform:scale(.1)rotate(-10deg)}60%{opacity:1;transform:scale(1.18)rotate(3deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes star-aura-breathe{0%,to{opacity:.55;transform:scale(.88)}50%{opacity:1;transform:scale(1.1)}}@media (height<=700px){.wheel-machine{width:min(58dvh,42vw,520px)}.wheel-result{min-height:clamp(52px,9.5dvh,78px)}.star-reveal-box{transform:translateY(-1dvh)}.star-main-icon{font-size:clamp(3.6rem,min(11vw,15dvh),7rem)}.star-reveal-box h2{font-size:clamp(4rem,min(18vw,18dvh),9rem)}.star-reveal-box p{margin-top:6px}.star-replay{bottom:24px}}@media (height<=610px){.wheel-stage{gap:1px;padding-block:3px}.wheel-machine{width:min(56dvh,39vw,430px)}.wheel-result{min-height:47px;padding-block:1px}.wheel-result p{line-height:1.35}.wheel-result small{display:none}.flip-results{gap:3px;padding-block:4px}.flip-winners{min-height:25px}.flip-winners b{padding-block:3px}.flip-actions{min-height:30px}.star-label{font-size:.8rem}.star-reveal-box p{font-size:.72rem}.star-replay{padding-block:6px;bottom:19px}.star-footnote{bottom:4px}}@media (width<=720px){.wheel-stage{padding:5px 8px 7px;display:flex}.wheel-machine{width:min(52dvh,70vw,430px)}.wheel-result{border:0;min-height:54px;padding:2px 7px}.wheel-result>span{display:block}.wheel-result strong{font-size:clamp(2.2rem,min(12vw,8.5dvh),4.8rem)}.card-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:1px}.flip-results{padding-inline:6px}.flip-winners-label{display:none}.star-label{letter-spacing:.58em;transform:translate(.29em)}.star-replay{right:8px}}@media (prefers-reduced-motion:reduce){.wheel-pointer,.wheel-center-glow,.wheel-hub,.wheel-wait-dots i,.star-stage:before,.star-screen-flash,.star-halo-rings i,.star-confetti i,.star-icon-arrival,.star-main-icon,.star-label,.star-reveal-box h2,.star-reveal-box p,.star-replay{animation:none!important}.star-screen-flash,.star-halo-rings,.star-confetti{display:none}.star-icon-arrival,.star-label,.star-reveal-box h2,.star-reveal-box p,.star-replay{opacity:1}}.tool-screen-dining .dining-results{grid-template-rows:auto minmax(0,1fr) 24px;gap:7px;padding:7px 18px 4px}.tool-screen-dining .honor-strips{gap:14px;width:min(100%,1120px);margin-inline:auto}.tool-screen-dining .honor-strip{border-radius:22px;flex:1 1 0;justify-content:center;min-width:0;max-width:none;min-height:clamp(54px,8.3dvh,64px);padding:6px clamp(18px,2vw,26px);box-shadow:inset 0 1px #ffffff2b,0 10px 28px #00000029}.tool-screen-dining .honor-strip:only-child{flex:0 620px}.tool-screen-dining .honor-strip i{font-size:clamp(1.6rem,min(2.6vw,4.5dvh),2.1rem)}.tool-screen-dining .honor-strip span{white-space:nowrap;font-size:clamp(.85rem,min(1.35vw,2.4dvh),1.05rem);font-weight:800}.tool-screen-dining .honor-strip b{letter-spacing:.1em;text-shadow:0 4px 15px #0000004d;white-space:nowrap;min-width:0;font-size:clamp(1.35rem,min(2.45vw,4.4dvh),2rem);font-weight:950;line-height:1}.tool-screen-dining .honor-strip.privilege-count-3 b,.tool-screen-dining .honor-strip.privilege-count-4 b{letter-spacing:.05em;font-size:clamp(1.15rem,min(1.9vw,3.4dvh),1.6rem)}.tool-screen-dining .honor-strip.privilege-count-5 b{letter-spacing:.025em;font-size:clamp(1rem,min(1.55vw,2.8dvh),1.3rem)}.tool-screen-dining .group-grid{gap:10px}.tool-screen-dining .dining-group{border-radius:18px}.tool-screen-dining .dining-group h2{min-height:40px;padding:7px 12px;font-size:clamp(.95rem,min(1.7vw,3.1dvh),1.35rem)}.tool-screen-dining .dining-group>.dining-names{grid-template-rows:repeat(10,minmax(0,1fr));gap:3px;padding:6px 7px 7px}.tool-screen-dining .dining-names b{letter-spacing:.08em;text-shadow:0 3px 12px #00000047;background:linear-gradient(135deg,#ffffff21,#ffffff12);border-color:#ffffff29;border-radius:10px;font-size:clamp(1.15rem,min(2.25vw,4dvh),1.8rem);font-weight:950;line-height:1}.tool-screen-dining .dining-footer{min-height:24px;font-size:clamp(.68rem,1.05vw,.82rem)}.tool-screen-random .random-result{grid-template-rows:auto minmax(0,1fr) auto auto;gap:clamp(7px,1.2dvh,12px);padding:clamp(10px,1.7dvh,18px) clamp(18px,3vw,48px) clamp(8px,1.2dvh,13px)}.tool-screen-random .random-round{background:linear-gradient(135deg,#ffc55d24,#ffffff12);border-color:#ffe27a47;padding:8px 20px;font-size:clamp(.78rem,1.3vw,1rem);font-weight:850}.tool-screen-random .winner-wall{width:min(100%, var(--winner-max-width));max-width:var(--winner-max-width);grid-template-columns:repeat(var(--winner-tracks), minmax(0, 1fr));grid-template-rows:repeat(var(--winner-rows), var(--winner-card-height));place-content:center;gap:clamp(9px,1.2vw,16px) clamp(8px,1vw,14px);height:auto;max-height:100%;margin:auto;padding:clamp(5px,1dvh,10px);display:grid;position:relative;overflow:visible}.tool-screen-random .winner-wall b{--winner-rgb:96, 226, 211;isolation:isolate;border:1.5px solid rgba(var(--winner-rgb), .56);color:#fffdf5;background:radial-gradient(circle at 22% 5%, #ffffff45, transparent 36%), linear-gradient(145deg, rgba(var(--winner-rgb), .34), #ffffff12);-webkit-text-fill-color:currentColor;width:100%;height:100%;min-height:0;box-shadow:inset 0 1px 0 #ffffff40, 0 16px 34px #0003, 0 0 25px rgba(var(--winner-rgb), .14);font-size:var(--winner-font-size);letter-spacing:.08em;text-shadow:0 4px 15px #00000061;white-space:nowrap;-webkit-background-clip:border-box;background-clip:border-box;border-radius:clamp(16px,1.7vw,24px);grid-column-end:span 2;padding:10px clamp(8px,1.3vw,18px);font-weight:950;line-height:1;position:relative;overflow:hidden}.tool-screen-random .winner-wall b span{z-index:2;position:relative}.tool-screen-random .winner-wall b:before{content:"✦";z-index:1;color:#ffffffbd;text-shadow:0 0 12px rgba(var(--winner-rgb), .9);font-size:clamp(.75rem,1vw,1rem);position:absolute;top:9px;left:13px}.tool-screen-random .winner-wall b:after{content:attr(data-rank);color:#ffffff29;letter-spacing:0;font-family:Arial,sans-serif;font-size:clamp(1.15rem,2vw,1.9rem);font-weight:900;position:absolute;bottom:7px;right:12px}.tool-screen-random .winner-wall b:nth-child(6n+2){--winner-rgb:255, 197, 93}.tool-screen-random .winner-wall b:nth-child(6n+3){--winner-rgb:135, 172, 255}.tool-screen-random .winner-wall b:nth-child(6n+4){--winner-rgb:244, 132, 179}.tool-screen-random .winner-wall b:nth-child(6n+5){--winner-rgb:174, 141, 255}.tool-screen-random .winner-wall b:nth-child(6n+6){--winner-rgb:113, 210, 255}.tool-screen-flip .flip-winners{gap:clamp(6px,.85vw,12px);min-height:clamp(48px,7.2dvh,58px);padding-inline:12px}.tool-screen-flip .flip-winners-label{white-space:nowrap;font-size:clamp(.78rem,min(1.2vw,2dvh),.98rem);font-weight:900}.tool-screen-flip .flip-winners b{letter-spacing:.06em;white-space:nowrap;padding:7px 15px;font-size:clamp(1.15rem,min(1.6vw,2.8dvh),1.5rem);font-weight:950;line-height:1.05}.tool-screen-flip .flip-winners em{font-size:clamp(.72rem,1vw,.88rem)}@media (height<=610px){.tool-screen-dining .honor-strip{min-height:48px}.tool-screen-dining .dining-names b{font-size:clamp(1rem,min(2vw,3.5dvh),1.45rem)}.tool-screen-dining .dining-group h2{min-height:34px}.tool-screen-dining .dining-footer{display:none}.tool-screen-dining .dining-results{grid-template-rows:auto minmax(0,1fr)}.tool-screen-flip .flip-winners{min-height:36px}.tool-screen-flip .flip-winners b{padding-block:4px;font-size:.9rem}}@media (width<=720px){.tool-screen-dining .dining-results{padding-inline:8px}.tool-screen-dining .honor-strips{gap:7px}.tool-screen-dining .honor-strip{padding-inline:9px}.tool-screen-dining .honor-strip span{display:none}.tool-screen-random .winner-wall{grid-template-columns:repeat(var(--winner-tracks), minmax(0, 1fr));gap:7px;padding-inline:0}.tool-screen-random .winner-wall b{letter-spacing:.03em;padding-inline:6px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}
