/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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;--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,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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:where(:not(iframe)){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}*{box-sizing:border-box}html,body,#root{min-height:100%}body{color:var(--ink);-webkit-font-smoothing:antialiased;background:linear-gradient(165deg,#e8f4ff 0%,#f7fbff 42%,#fff8f0 100%);margin:0;font-family:PingFang SC,Hiragino Sans GB,Noto Sans SC,Microsoft YaHei,ui-sans-serif,system-ui,sans-serif}button,input{font-family:inherit}button{appearance:none;cursor:pointer;background:0 0;border:none;padding:0}button:disabled{cursor:not-allowed}}@layer components;@layer utilities{.delay-1{transition-delay:1ms}.delay-2{transition-delay:2ms}.delay-3{transition-delay:3ms}.delay-4{transition-delay:4ms}}:root{--page-max:430px;--ink:#1a3a5c;--muted:#6b8499;--soft:#7a8fa3;--line:#e3eef8;--line-strong:#d6e6f5;--blue:#3d8bfd;--blue-deep:#1d5bbf;--orange:#f0a060}@media (width>=768px){:root{--page-max:520px}}@media (width>=1200px){:root{--page-max:560px}}.page{width:100%;max-width:var(--page-max);min-height:100dvh;margin:0 auto;padding:24px 20px 40px;position:relative;overflow-x:hidden}.page-homework{padding-top:12px}.bg-orb{filter:blur(20px);pointer-events:none;z-index:0;border-radius:50%;position:absolute}.orb-1{background:#3d8bfd2e;width:160px;height:160px;animation:8s ease-in-out infinite floatOrb;top:-30px;right:-20px}.orb-2{background:#f0a06029;width:140px;height:140px;animation:10s ease-in-out infinite reverse floatOrb;bottom:60px;left:-40px}@keyframes floatOrb{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(15px)scale(1.08)}}.hero,.tools,.setting-card,.result-panel,.groups,.actions,.history,.nav-bar{z-index:1;position:relative}.fade-in{animation:.55s both fadeUp}.delay-1{animation-delay:80ms}.delay-2{animation-delay:.12s}.delay-3{animation-delay:.18s}.delay-4{animation-delay:.24s}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.nav-bar{align-items:center;gap:8px;min-height:44px;margin:0 -8px 8px;display:flex}.nav-back{width:40px;height:40px;color:var(--ink);border-radius:12px;justify-content:center;align-items:center;font-size:28px;font-weight:300;line-height:1;display:flex}.nav-back:hover{background:#ffffffb3}.nav-title{color:var(--ink);font-size:17px;font-weight:600}.hero{flex-direction:column;align-items:center;margin-bottom:24px;padding-top:20px;display:flex}.page-homework .hero{margin-bottom:16px;padding-top:4px}.title{color:var(--ink);letter-spacing:3px;font-size:26px;font-weight:700}.subtitle{color:var(--muted);margin-top:7px;font-size:13px}.tools{flex-direction:column;gap:12px;display:flex}.tool-card{text-align:left;border:1px solid var(--line);background:#ffffffe0;border-radius:12px;align-items:center;gap:12px;width:100%;padding:16px 14px;transition:transform .15s,box-shadow .15s;display:flex;box-shadow:0 5px 14px #2c5a8412}.tool-card:hover{transform:translateY(-1px);box-shadow:0 8px 20px #2c5a841f}.tool-card:active{transform:scale(.98);box-shadow:0 2px 8px #2c5a8414}.tool-icon{color:#fff;border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;font-weight:700;display:flex}.accent-blue .tool-icon{background:linear-gradient(135deg,#4a96ff,#3d8bfd);box-shadow:0 4px 9px #3d8bfd4d}.tool-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.tool-name{color:var(--ink);font-size:16px;font-weight:700}.tool-desc{color:var(--soft);font-size:12px;line-height:1.4}.tool-arrow{color:#b0c4d4;flex-shrink:0;font-size:20px;font-weight:300;line-height:1}.confetti-layer{z-index:99;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti{opacity:0;animation-timing-function:cubic-bezier(.22,.61,.36,1);animation-fill-mode:both;position:absolute;top:-20px}.confetti-rect{border-radius:2px}.confetti-circle{border-radius:50%}.confetti-petal{transform-origin:50%;border-radius:60% 0}.confetti-ribbon{border-radius:4px;width:4px!important}.path-1{animation-name:fall1}.path-2{animation-name:fall2}.path-3{animation-name:fall3}.path-4{animation-name:fall4}.path-5{animation-name:fall5}.path-6{animation-name:fall6}@keyframes fall1{0%{opacity:0;transform:translateY(-10px)rotate(0)scale(.5)}10%{opacity:1}to{opacity:0;transform:translate(20px,110vh)rotate(520deg)scale(.9)}}@keyframes fall2{0%{opacity:0;transform:translateY(-10px)rotate(0)scale(.5)}10%{opacity:1}to{opacity:0;transform:translate(-35px,110vh)rotate(-480deg)scale(.85)}}@keyframes fall3{0%{opacity:0;transform:translateY(-10px)rotate(20deg)scale(.4)}12%{opacity:1}45%{transform:translate(25px,48vh)rotate(220deg)scale(1)}to{opacity:0;transform:translate(-15px,110vh)rotate(640deg)scale(.8)}}@keyframes fall4{0%{opacity:0;transform:translateY(-10px)rotate(-10deg)scale(.5)}10%{opacity:1}50%{transform:translate(-30px,52vh)rotate(-260deg)scale(1.05)}to{opacity:0;transform:translate(40px,110vh)rotate(-720deg)scale(.85)}}@keyframes fall5{0%{opacity:0;transform:translateY(-15px)rotate(0)scale(.3)}8%{opacity:1}to{opacity:0;transform:translate(10px,110vh)rotate(900deg)scale(.75)}}@keyframes fall6{0%{opacity:0;transform:translateY(-10px)rotate(45deg)scale(.6)}10%{opacity:1}40%{transform:translate(-20px,40vh)rotate(200deg)scale(1.1)}to{opacity:0;transform:translate(28px,110vh)rotate(760deg)scale(.9)}}.setting-card{border:1px solid var(--line);background:#fffc;border-radius:12px;flex-direction:column;align-items:center;margin-bottom:18px;padding:14px 16px;display:flex;box-shadow:0 4px 12px #2c5a840f}.setting-label{color:var(--soft);margin-bottom:8px;font-size:12px}.stepper{align-items:center;gap:10px;display:flex}.step-btn{background:var(--blue);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:20px;font-weight:600;line-height:1;transition:transform .15s,opacity .2s;display:flex;box-shadow:0 4px 9px #3d8bfd47}.step-btn:hover:not(:disabled){filter:brightness(1.05)}.step-btn:active:not(:disabled){transform:scale(.9)}.step-btn:disabled{opacity:.35;box-shadow:none}.step-input{text-align:center;width:70px;height:36px;color:var(--ink);border:1px solid var(--line-strong);appearance:textfield;background:#f3f8fd;border-radius:8px;outline:none;font-size:18px;font-weight:700}.step-input::-webkit-outer-spin-button{appearance:none;margin:0}.step-input::-webkit-inner-spin-button{appearance:none;margin:0}.step-input:focus{border-color:var(--blue)}.step-input:disabled{opacity:.7}.setting-hint{color:#9aafc0;margin-top:7px;font-size:11px}.result-panel{flex-direction:column;align-items:center;margin-bottom:20px;display:flex}.result-label{color:var(--soft);margin-bottom:8px;font-size:12px}.result-number{border:1px solid var(--line-strong);color:#2c5a84;background:#ffffffe6;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;width:min(190px,100%);min-height:90px;padding:14px 10px;transition:border-color .2s,background .2s,color .2s;display:flex;position:relative;overflow:visible;box-shadow:0 6px 16px #2c5a8414}.result-main{z-index:2;font-size:28px;font-weight:700;line-height:1.2;position:relative}.result-sub{z-index:2;color:var(--soft);margin-top:4px;font-size:12px;font-weight:500;position:relative}.result-number.flashing{border-color:var(--orange);color:#c46a20;animation:.18s pulseFlash}.result-number.celebrate{border-color:var(--blue);color:var(--blue-deep);background:linear-gradient(160deg,#eff6ff 0%,#fff7ee 100%);animation:.7s cubic-bezier(.34,1.56,.64,1) resultCelebrate}@keyframes pulseFlash{0%{transform:scale(1)}50%{transform:scale(1.03)}to{transform:scale(1)}}@keyframes resultCelebrate{0%{transform:scale(.82)rotate(-2deg)}45%{transform:scale(1.1)rotate(1deg)}70%{transform:scale(.98)rotate(-.5deg)}to{transform:scale(1)rotate(0)}}.placeholder{color:#c5d4e0;font-size:36px}.burst{opacity:0;z-index:1;border-radius:60% 0;width:10px;height:10px;margin-top:-5px;margin-left:-5px;animation:.9s ease-out both petalBurst;position:absolute;top:50%;left:50%}.b1{--tx:0px;--ty:-55px;background:#ff6b6b;animation-delay:0s}.b2{--tx:45px;--ty:-35px;background:#ffd93d;animation-delay:40ms}.b3{--tx:60px;--ty:5px;background:#6bcb77;animation-delay:80ms}.b4{--tx:40px;--ty:45px;background:#4d96ff;animation-delay:.12s}.b5{--tx:0px;--ty:60px;background:#c77dff;animation-delay:50ms}.b6{--tx:-42px;--ty:42px;background:#ff8e53;animation-delay:.1s}.b7{--tx:-60px;--ty:2px;background:#2ec4b6;animation-delay:60ms}.b8{--tx:-45px;--ty:-38px;background:#ff5d8f;animation-delay:.14s}@keyframes petalBurst{0%{opacity:0;transform:translate(0)scale(.3)rotate(0)}25%{opacity:1}to{opacity:0;transform:translate(var(--tx), var(--ty)) scale(1.2) rotate(180deg)}}.ring-wave{z-index:0;border:2px solid #3d8bfd8c;border-radius:50%;width:40px;height:40px;margin-top:-20px;margin-left:-20px;animation:.85s ease-out both ringExpand;position:absolute;top:50%;left:50%}@keyframes ringExpand{0%{opacity:.8;transform:scale(.4)}to{opacity:0;transform:scale(3.2)}}.groups{grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:20px;display:grid}.group-item{color:#4a657a;border:1px solid var(--line);background:#fff;border-radius:8px;justify-content:center;align-items:center;height:40px;font-size:14px;font-weight:600;transition:transform .15s,background .15s,color .15s,box-shadow .15s;animation:.35s both chipIn;display:flex}@keyframes chipIn{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.group-item.rolling{border-color:var(--orange);color:#c46a20;background:#fff4e8;animation:.16s rollBounce;transform:scale(1.08)}.group-item.active{background:var(--blue);border-color:var(--blue);color:#fff;animation:.7s winnerGlow;box-shadow:0 4px 10px #3d8bfd59}@keyframes rollBounce{0%{transform:scale(1)}50%{transform:scale(1.12)}to{transform:scale(1.08)}}@keyframes winnerGlow{0%{transform:scale(.9);box-shadow:0 0 #3d8bfd00}50%{transform:scale(1.12);box-shadow:0 0 14px #3d8bfd73}to{transform:scale(1);box-shadow:0 4px 10px #3d8bfd59}}.actions{flex-direction:column;gap:10px;margin-bottom:20px;display:flex}.btn-primary,.btn-secondary{border-radius:24px;width:100%;min-height:44px;font-weight:600}.btn-primary{color:#fff;background:linear-gradient(135deg,#4a96ff,#3d8bfd);font-size:16px;transition:transform .15s;box-shadow:0 6px 14px #3d8bfd52}.btn-primary:hover:not(:disabled){filter:brightness(1.04)}.btn-primary:active:not(:disabled){transform:scale(.97)}.btn-primary.drawing{animation:.9s ease-in-out infinite btnPulse}@keyframes btnPulse{0%,to{box-shadow:0 6px 14px #3d8bfd52}50%{box-shadow:0 6px 18px #f0a06066}}.btn-primary:disabled{opacity:.75}.btn-secondary{color:var(--muted);border:1px solid var(--line-strong);background:#fff;font-size:14px}.btn-secondary:hover:not(:disabled){background:#f8fbff}.btn-secondary:disabled{opacity:.6}.history{border:1px solid var(--line);background:#ffffffd1;border-radius:10px;padding:14px 16px}.history-title{color:var(--soft);margin-bottom:4px;font-size:13px;display:block}.history-item{border-top:1px solid #eef4fa;justify-content:space-between;align-items:center;padding:9px 0;animation:.35s both fadeUp;display:flex}.history-left{align-items:baseline;gap:8px;display:flex}.history-group{color:#2c5a84;font-size:14px;font-weight:700}.history-total{color:#9aafc0;background:#f3f8fd;border-radius:999px;padding:2px 6px;font-size:11px}.history-time{color:#9aafc0;font-size:12px}.hint-kbd{text-align:center;color:#9aafc0;margin-top:8px;font-size:11px}@media (width<=380px){.groups{grid-template-columns:repeat(5,1fr)}}
