@font-face{font-family:Fredoka Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fredoka-hebrew-wght-normal-DdnsCkLr.woff2) format("woff2-variations");unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Fredoka Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fredoka-latin-ext-wght-normal-CYrqKuxd.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fredoka Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fredoka-latin-wght-normal-zyam-TY6.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-display: "Fredoka Variable", "Fredoka", ui-rounded, "SF Pro Rounded", system-ui, sans-serif;--font-body: "Nunito Variable", "Nunito", ui-rounded, system-ui, -apple-system, "Segoe UI", sans-serif;--ink: #2b1d5e;--ink-soft: #6a5f96;--ink-faint: #a69fc6;--paper: #ffffff;--surface: rgba(255, 255, 255, .88);--surface-glass: rgba(255, 255, 255, .22);--surface-glass-border: rgba(255, 255, 255, .45);--board-bg: #f6f3ff;--board-cell: #e9e4fb;--board-line: #ddd5f6;--bg-1: #5f8bff;--bg-2: #9b5cff;--bg-3: #ff5fb7;--bg-4: #ffb547;--accent: #ff4fa3;--accent-dark: #d1267b;--sun: #ffd23f;--sun-dark: #e0a800;--mint: #2ee6a6;--mint-dark: #12a877;--sky: #3fa9ff;--sky-dark: #1572d1;--success: #22c55e;--danger: #ff4d6d;--danger-dark: #c21841;--radius-s: 10px;--radius-m: 16px;--radius-l: 24px;--radius-xl: 32px;--shadow-card: 0 12px 32px rgba(43, 29, 94, .22);--shadow-soft: 0 4px 14px rgba(43, 29, 94, .16);--ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--ease-out: cubic-bezier(.22, 1, .36, 1);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px)}.btn{--btn-bg: var(--paper);--btn-fg: var(--ink);--btn-edge: #d9d2f3;appearance:none;border:0;border-radius:var(--radius-m);min-height:48px;padding:0 20px;font:600 1.05rem/1 var(--font-display);letter-spacing:.01em;color:var(--btn-fg);background:var(--btn-bg);box-shadow:0 5px 0 var(--btn-edge),0 8px 18px #2b1d5e2e;transform:translateY(0);transition:transform .12s var(--ease-out),box-shadow .12s var(--ease-out),filter .2s;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation}.btn:active:not(:disabled){transform:translateY(4px);box-shadow:0 1px 0 var(--btn-edge),0 3px 8px #2b1d5e2e}.btn:disabled{filter:grayscale(.6) opacity(.55);cursor:not-allowed}.btn:focus-visible{outline:3px solid var(--sun);outline-offset:3px}.btn-primary{--btn-bg: linear-gradient(180deg, #ff6fb5, var(--accent));--btn-fg: #fff;--btn-edge: var(--accent-dark)}.btn-sun{--btn-bg: linear-gradient(180deg, #ffe169, var(--sun));--btn-fg: #4a3200;--btn-edge: var(--sun-dark)}.btn-mint{--btn-bg: linear-gradient(180deg, #5ff2bf, var(--mint));--btn-fg: #053d2a;--btn-edge: var(--mint-dark)}.btn-sky{--btn-bg: linear-gradient(180deg, #74c2ff, var(--sky));--btn-fg: #fff;--btn-edge: var(--sky-dark)}.btn-danger{--btn-bg: linear-gradient(180deg, #ff7f96, var(--danger));--btn-fg: #fff;--btn-edge: var(--danger-dark)}.btn-ghost{--btn-bg: var(--surface-glass);--btn-fg: #fff;--btn-edge: rgba(0, 0, 0, .12);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn-lg{min-height:58px;font-size:1.25rem;border-radius:var(--radius-l);padding:0 28px}.btn-sm{min-height:38px;font-size:.9rem;padding:0 14px;border-radius:var(--radius-s)}.btn-icon{width:48px;padding:0}.btn-block{width:100%}.card{background:var(--surface);border-radius:var(--radius-l);box-shadow:var(--shadow-card);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font:600 .8rem/1.2 var(--font-display);background:#2b1d5e14;color:var(--ink)}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*,*:before,*:after{box-sizing:border-box}html{height:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%;background:#8d6bff;color-scheme:light}body{margin:0;height:100%;min-height:100dvh;overflow:hidden;overscroll-behavior:none;font-family:var(--font-body);font-size:16px;line-height:1.4;color:var(--ink);background:linear-gradient(160deg,var(--bg-1) 0%,var(--bg-2) 42%,var(--bg-3) 78%,var(--bg-4) 100%) fixed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}#root{position:fixed;inset:0;isolation:isolate;overflow:hidden}input,textarea,[contenteditable=true]{user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}button,input,select,textarea{font:inherit;color:inherit}button{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--sun);outline-offset:2px}h1,h2,h3,p{margin:0}.screen{position:absolute;inset:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:calc(var(--safe-top) + 12px) calc(var(--safe-right) + 16px) calc(var(--safe-bottom) + 16px) calc(var(--safe-left) + 16px);animation:screen-in .42s var(--ease-out) both}@keyframes screen-in{0%{opacity:0;transform:translateY(14px) scale(.985)}}.glass-btn{appearance:none;border:1px solid var(--surface-glass-border);width:44px;height:44px;border-radius:50%;display:inline-grid;place-items:center;color:#fff;background:var(--surface-glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 4px 14px #2b1d5e2e,inset 0 1px #ffffff59;cursor:pointer;transition:transform .15s var(--ease-bounce),background .2s;touch-action:manipulation}.glass-btn:active{transform:scale(.9)}.glass-btn[aria-pressed=false]{color:#ffffffb3}.glass-btn svg{width:22px;height:22px}.glass-pill{appearance:none;border:1px solid var(--surface-glass-border);min-height:44px;padding:0 16px 0 12px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;color:#fff;font:600 1rem/1 var(--font-display);background:var(--surface-glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 4px 14px #2b1d5e2e,inset 0 1px #ffffff59;cursor:pointer;transition:transform .15s var(--ease-bounce)}.glass-pill:active{transform:scale(.94)}.glass-pill svg{width:20px;height:20px}.eyebrow{font:700 .72rem/1 var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.dots{display:inline-flex;gap:4px;align-items:center}.dots i{width:8px;height:8px;border-radius:2.5px;background:currentColor;animation:dot-bounce .9s var(--ease-out) infinite}.dots i:nth-child(2){animation-delay:.12s}.dots i:nth-child(3){animation-delay:.24s}@keyframes dot-bounce{0%,60%,to{transform:translateY(0);opacity:.6}30%{transform:translateY(-6px);opacity:1}}.field{width:100%;min-height:50px;padding:0 14px;border-radius:var(--radius-m);border:2px solid #e4ddfb;background:#fbfaff;font:600 1.08rem/1 var(--font-display);color:var(--ink);outline:none;transition:border-color .2s,box-shadow .2s}.field::placeholder{color:var(--ink-faint)}.field:focus{border-color:var(--sky);box-shadow:0 0 0 4px #3fa9ff2e}.btn .btn-sub{display:block;font:600 .78rem/1.1 var(--font-body);opacity:.85;letter-spacing:0}.spinner{display:inline-block;width:1.1em;height:1.1em;border-radius:50%;border:3px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pop-in{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.06)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-7px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}.shake{animation:shake .42s var(--ease-out)}.splash{display:grid;place-items:center}.splash-inner{display:flex;flex-direction:column;align-items:center;gap:22px;padding-bottom:8vh}.splash-status{display:inline-flex;align-items:center;gap:10px;font:600 1.1rem/1.2 var(--font-display)}.sky-text{color:#fff;text-shadow:0 2px 10px rgba(43,29,94,.25)}.splash-logo .logo-drop,.splash-logo .logo-ribbon,.splash-logo .logo-mini{animation:splash-logo-in .25s var(--ease-out) both}@keyframes splash-logo-in{0%{opacity:0}}.sky{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:var(--bg-2)}.sky-gradient{position:absolute;inset:-12%;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.18),transparent 35%),linear-gradient(150deg,var(--bg-1) 18%,var(--bg-2) 40%,var(--bg-3) 62%,var(--bg-4) 84%);will-change:transform;animation:sky-shift 36s ease-in-out infinite alternate}@keyframes sky-shift{0%{transform:translate3d(-4%,-4%,0) rotate(-3deg) scale(1.02)}50%{transform:translate3d(4%,1%,0) rotate(2deg) scale(1.04)}to{transform:translate3d(-1%,4%,0) rotate(-1deg) scale(1.02)}}.sky-glow{position:absolute;border-radius:50%;will-change:transform,opacity}.sky-glow-sun{width:70vmax;height:70vmax;right:-30vmax;bottom:-32vmax;background:radial-gradient(circle,#ffd6668c,#ffd66600 65%);animation:glow-breathe 14s ease-in-out infinite alternate}.sky-glow-pink{width:60vmax;height:60vmax;left:-28vmax;top:-26vmax;background:radial-gradient(circle,#8cc3ff80,#8cc3ff00 65%);animation:glow-breathe 18s ease-in-out -6s infinite alternate}@keyframes glow-breathe{0%{opacity:.55;transform:scale(.92)}to{opacity:1;transform:scale(1.08)}}.sky-floater{position:absolute;top:0;filter:blur(1.5px);will-change:transform;animation-name:float-up;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes float-up{0%{transform:translate3d(0,112vh,0) rotate(0)}to{transform:translate3d(4vw,-25vh,0) rotate(var(--spin, 45deg))}}.sky.is-calm .sky-gradient,.sky.is-calm .sky-glow{animation:none;will-change:auto}.sky.is-calm .sky-floater{display:none}@media(prefers-reduced-motion:reduce){.sky-floater{display:none}}.app-sheet-layer{position:fixed;inset:0;z-index:500;display:flex;align-items:flex-end;justify-content:center}.app-sheet-backdrop{position:absolute;inset:0;background:#1e104a75;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:sheet-fade-in .25s var(--ease-out) both}.app-sheet{position:relative;width:100%;max-width:540px;margin-bottom:var(--kb, 0px);max-height:calc(100dvh - var(--kb, 0px) - var(--safe-top) - 16px);display:flex;flex-direction:column;background:linear-gradient(180deg,#fff,#fbf9ff);border-radius:30px 30px 0 0;padding:0 calc(var(--safe-right) + 20px) calc(var(--safe-bottom) + 18px) calc(var(--safe-left) + 20px);box-shadow:0 -12px 44px #2b1d5e52;outline:none;transition:transform .3s var(--ease-bounce);animation:sheet-up .46s var(--ease-bounce) both}.app-sheet-layer.is-closing .app-sheet-backdrop{animation:sheet-fade-out .24s var(--ease-out) both}.app-sheet-layer.is-closing .app-sheet{animation:sheet-down .24s var(--ease-out) both}.app-sheet-grab{flex:none;height:22px;display:grid;place-items:center;touch-action:none;cursor:grab}.app-sheet-handle{width:44px;height:5px;border-radius:99px;background:#ddd5f6}.app-sheet-header{flex:none;display:flex;align-items:flex-start;gap:12px;padding-bottom:4px}.app-sheet-titles{flex:1;min-width:0}.app-sheet-title{margin:2px 0 0;font:700 1.5rem/1.15 var(--font-display);color:var(--ink)}.app-sheet-subtitle{margin:4px 0 0;color:var(--ink-soft);font-size:.95rem}.app-sheet-close{flex:none;appearance:none;border:0;width:44px;height:44px;margin:-4px -8px 0 0;border-radius:50%;display:grid;place-items:center;background:#f1edff;color:var(--ink-soft);cursor:pointer;transition:transform .18s var(--ease-bounce)}.app-sheet-close:active{transform:scale(.88)}.app-sheet-close svg{width:20px;height:20px}.app-sheet-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin:0 -20px;padding:10px 20px 6px}.app-sheet-footer{flex:none;padding-top:14px;display:flex;flex-direction:column;gap:10px}@media(min-width:720px)and (min-height:600px){.app-sheet-layer{align-items:center;padding:24px}.app-sheet{max-width:480px;border-radius:30px;padding-bottom:22px;animation:dialog-in .42s var(--ease-bounce) both}.app-sheet-layer.is-closing .app-sheet{animation:dialog-out .24s var(--ease-out) both}.app-sheet-grab{height:16px;cursor:default}.app-sheet-handle{visibility:hidden}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}@keyframes sheet-down{to{transform:translateY(100%)}}@keyframes dialog-in{0%{opacity:0;transform:translateY(24px) scale(.92)}to{opacity:1;transform:none}}@keyframes dialog-out{to{opacity:0;transform:translateY(16px) scale(.95)}}@keyframes sheet-fade-in{0%{opacity:0}}@keyframes sheet-fade-out{to{opacity:0}}.app-toaster{position:fixed;top:calc(var(--safe-top) + 10px);left:50%;z-index:1000;width:min(92vw,420px);transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.app-toast{appearance:none;border:0;pointer-events:auto;cursor:pointer;max-width:100%;display:inline-flex;align-items:center;gap:10px;padding:10px 18px 10px 10px;border-radius:999px;background:#fffffff5;color:var(--ink);font:600 .98rem/1.25 var(--font-display);text-align:left;box-shadow:0 10px 30px #2b1d5e47,inset 0 -3px #2b1d5e14;animation:toast-in .42s var(--ease-bounce) both}.app-toast.is-leaving{animation:toast-out .26s var(--ease-out) both}.app-toast-icon{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:1.05rem;background:#efeaff}.app-toast-success .app-toast-icon{background:#d7fbe9}.app-toast-warn .app-toast-icon{background:#fff1c2}.app-toast-error .app-toast-icon{background:#ffe0e6}.app-toast-error{color:var(--danger-dark)}.app-toast-text{min-width:0}@keyframes toast-in{0%{opacity:0;transform:translateY(-24px) scale(.8)}to{opacity:1;transform:none}}@keyframes toast-out{to{opacity:0;transform:translateY(-16px) scale(.9)}}.logo{--t: min(13vw, 58px);position:relative;display:flex;flex-direction:column;align-items:center;padding:calc(var(--t) * .62) calc(var(--t) * .1) calc(var(--t) * .3)}.logo-compact{--t: min(10vw, 44px);padding:6px 0 2px}.logo-row{display:flex;gap:calc(var(--t) * .1)}.logo-drop{display:block;animation:logo-drop .75s var(--ease-bounce) both;animation-delay:calc(var(--i) * 75ms + 80ms)}.logo-bob{display:block;animation:logo-bob 3.4s ease-in-out infinite;animation-delay:calc(var(--i) * -.45s)}.logo-tile{position:relative;display:grid;place-items:center;width:var(--t);height:var(--t);border-radius:calc(var(--t) * .24);font:700 calc(var(--t) * .64) / 1 var(--font-display);color:#fff;background:linear-gradient(145deg,var(--l) 0%,var(--c) 42%,var(--d) 100%);box-shadow:inset 0 calc(var(--t) * -.07) 0 #00000029,inset 0 2px #ffffff8c,0 calc(var(--t) * .09) 0 var(--d),0 calc(var(--t) * .2) calc(var(--t) * .3) #2b1d5e4d;text-shadow:0 calc(var(--t) * .05) 0 var(--d);transform:translateY(var(--dy)) rotate(var(--rot))}.logo-tile:before{content:"";position:absolute;left:13%;top:9%;width:52%;height:26%;border-radius:99px;background:linear-gradient(180deg,#ffffffbf,#fff0)}.logo-ribbon{position:relative;z-index:1;margin-top:calc(var(--t) * .12);display:inline-flex;align-items:center;gap:.55em;padding:.42em 1.1em .42em 1.42em;border-radius:999px;font:700 calc(var(--t) * .36) / 1 var(--font-display);letter-spacing:.34em;color:#fff;background:linear-gradient(180deg,#ff7cbd,var(--accent));box-shadow:0 4px 0 var(--accent-dark),0 10px 20px #d1267b59;transform:rotate(-3deg);animation:logo-ribbon .7s var(--ease-bounce) .62s both}.logo-spark{font-size:.8em;letter-spacing:0;color:var(--sun);animation:logo-twinkle 1.8s ease-in-out infinite}.logo-spark:last-child{animation-delay:-.9s}.logo-mini{position:absolute;animation:logo-mini-in .7s var(--ease-bounce) both;filter:drop-shadow(0 4px 6px rgba(43,29,94,.25))}.logo-mini-float{display:block;animation:logo-float 4.2s ease-in-out infinite}.mini-a{left:6%;top:0;transform:rotate(-14deg);animation-delay:.85s}.mini-b{right:9%;top:2px;transform:rotate(16deg);animation-delay:.95s}.mini-b .logo-mini-float{animation-delay:-1.4s}.mini-c{left:3%;bottom:calc(var(--t) * .05);transform:rotate(10deg);animation-delay:1.05s}.mini-c .logo-mini-float{animation-delay:-2.2s}.mini-d{left:40%;top:calc(var(--t) * .12);animation-delay:1.15s}.mini-d .logo-mini-float{animation-delay:-.6s}.mini-e{right:2%;bottom:0;transform:rotate(-12deg) scale(.8);animation-delay:1.2s}.mini-e .logo-mini-float{animation-delay:-3s}@keyframes logo-drop{0%{opacity:0;transform:translateY(-60px) scale(.6)}60%{opacity:1}to{opacity:1;transform:none}}@keyframes logo-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes logo-ribbon{0%{opacity:0;transform:rotate(-3deg) scale(.4)}to{opacity:1;transform:rotate(-3deg) scale(1)}}@keyframes logo-twinkle{0%,to{opacity:1;transform:scale(1) rotate(0)}50%{opacity:.55;transform:scale(.75) rotate(45deg)}}@keyframes logo-mini-in{0%{opacity:0;scale:.2}to{opacity:1;scale:1}}@keyframes logo-float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-7px) rotate(6deg)}}.mode-picker,.diff-picker{display:grid;gap:10px}.mode-picker{grid-template-columns:1fr 1fr}.diff-picker{grid-template-columns:repeat(3,minmax(0,1fr))}.mode-card,.diff-card{appearance:none;position:relative;border:2.5px solid #ebe5fd;background:#fff;border-radius:20px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;color:var(--ink);box-shadow:0 4px #ebe5fd;transition:transform .25s var(--ease-bounce),border-color .2s,box-shadow .2s,background .2s}.mode-card{padding:12px 8px}.diff-card{padding:10px 4px}.mode-card:active,.diff-card:active{transform:scale(.96)}.mode-card.is-active,.diff-card.is-active{border-color:var(--accent);box-shadow:0 4px 0 var(--accent-dark),0 10px 22px #ff4fa338;transform:translateY(-2px);background:#fff7fb}.mode-thumb{width:min(92px,100%);height:auto;margin-bottom:4px;filter:drop-shadow(0 3px 6px rgba(43,29,94,.14))}.mode-title,.diff-label{font:700 1.1rem/1.1 var(--font-display)}.mode-hint,.diff-hint{font-size:.8rem;font-weight:700;color:var(--ink-soft);text-align:center;line-height:1.2}.diff-emoji{font-size:1.9rem;line-height:1.1;transition:transform .35s var(--ease-bounce)}.diff-card.is-active .diff-emoji{transform:scale(1.18) rotate(-6deg)}.diff-easy.is-active{border-color:var(--mint-dark);box-shadow:0 4px 0 var(--mint-dark),0 10px 22px #2ee6a640;background:#f0fff9}.diff-medium.is-active{border-color:var(--sun-dark);box-shadow:0 4px 0 var(--sun-dark),0 10px 22px #ffd23f4d;background:#fffbea}.diff-hard.is-active{border-color:var(--danger);box-shadow:0 4px 0 var(--danger-dark),0 10px 22px #ff4d6d40;background:#fff4f6}.diff-picker.is-compact .diff-card{flex-direction:row;justify-content:center;gap:6px;padding:8px 4px;min-height:48px}.diff-picker.is-compact .diff-emoji{font-size:1.25rem}.diff-picker.is-compact .diff-label{font-size:.98rem}.pick-check{position:absolute;top:-8px;right:-8px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;box-shadow:0 3px 8px #2b1d5e40;transform:scale(0);transition:transform .35s var(--ease-bounce)}.pick-check svg{width:16px;height:16px;stroke-width:3.2}.is-active>.pick-check{transform:scale(1)}.diff-easy .pick-check{background:var(--mint-dark)}.diff-medium .pick-check{background:var(--sun-dark)}.diff-hard .pick-check{background:var(--danger)}@media(orientation:landscape)and (max-height:560px){.mode-thumb{display:none}.mode-card{padding:10px 8px}.diff-card{flex-direction:row;justify-content:center;gap:6px;padding:8px 4px;min-height:48px}.diff-emoji{font-size:1.25rem}.diff-hint{display:none}}.code-tiles{--ct: 52px;display:inline-flex;gap:calc(var(--ct) * .14)}.code-tiles-md{--ct: 40px}.code-tile{width:var(--ct);height:calc(var(--ct) * 1.12);border-radius:calc(var(--ct) * .26);display:grid;place-items:center;font:700 calc(var(--ct) * .66) / 1 var(--font-display);color:var(--ink);background:linear-gradient(180deg,#fff,#f3efff);box-shadow:0 calc(var(--ct) * .09) 0 #d8cff7,0 calc(var(--ct) * .2) calc(var(--ct) * .3) #2b1d5e2e;animation:code-tile-in .55s var(--ease-bounce) both;animation-delay:calc(var(--i) * 60ms)}@keyframes code-tile-in{0%{opacity:0;transform:translateY(-14px) rotate(-8deg) scale(.7)}to{opacity:1;transform:none}}@media(max-width:370px){.code-tiles-lg{--ct: 46px}}.seg{--pad: 4px;position:relative;display:grid;grid-template-columns:repeat(var(--count),minmax(0,1fr));padding:var(--pad);border-radius:18px;background:#efeafd;box-shadow:inset 0 2px 4px #2b1d5e1a;isolation:isolate}.seg-thumb{position:absolute;z-index:-1;top:var(--pad);bottom:var(--pad);left:var(--pad);width:calc((100% - var(--pad) * 2) / var(--count));border-radius:14px;background:linear-gradient(180deg,#fff,#f7f4ff);box-shadow:0 3px #d9d0f7,0 6px 14px #2b1d5e29;transform:translate(calc(100% * var(--index)));transition:transform .38s var(--ease-bounce)}.seg-option{appearance:none;border:0;background:none;min-height:44px;padding:6px 4px;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--ink-soft);font:600 1rem/1.1 var(--font-display);cursor:pointer;transition:color .2s,transform .15s var(--ease-bounce)}.seg-option.is-active{color:var(--ink)}.seg-option:active:not(:disabled){transform:scale(.95)}.seg-option:disabled{cursor:default}.seg-hint{font:700 .72rem/1.1 var(--font-body);color:var(--ink-soft)}.seg-option.is-active .seg-hint{color:var(--ink-soft)}.seg-lg .seg-option{min-height:58px;font-size:1.08rem}.seg.is-disabled{opacity:.85}.seg.is-disabled .seg-thumb{box-shadow:0 2px #e2dbf8}.home{display:flex;flex-direction:column;align-items:center;gap:10px}.home>*{width:100%;max-width:440px}.home-top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px}.settings-toggles{display:flex;gap:8px;margin-left:auto}.home-rejoin{min-width:0;font-size:.92rem;white-space:nowrap;animation:pop-in .5s var(--ease-bounce) both}.home-rejoin b{letter-spacing:.08em}.home-hero{flex:1 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:150px}.home-tagline{margin:0;font:600 .98rem/1.3 var(--font-display);text-align:center;text-shadow:0 1px 2px rgba(43,29,94,.55),0 0 14px rgba(43,29,94,.4);animation:home-fade-up .6s var(--ease-out) .9s both}.home-panel{display:flex;flex-direction:column;gap:14px;padding-bottom:4px;animation:home-fade-up .6s var(--ease-out) .25s both}.home-actions{display:flex;flex-direction:column;gap:12px}.home-action{justify-content:flex-start;min-height:70px;padding:0 16px 0 10px;gap:12px;text-align:left}.home-action-icon{flex:none;width:48px;height:48px;border-radius:16px;display:grid;place-items:center;font-size:1.6rem;background:#ffffff47;box-shadow:inset 0 2px #ffffff59}.btn-sun .home-action-icon{background:#ffffff73}.home-action-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;font-size:1.28rem}.home-action-arrow{flex:none;width:22px;height:22px;opacity:.85;transition:transform .25s var(--ease-bounce)}.home-action:hover .home-action-arrow{transform:translate(3px)}.home-action-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.home-tile{min-height:84px;flex-direction:column;gap:4px;padding:8px;font-size:1.08rem;border-radius:var(--radius-l)}.home-tile-icon{font-size:1.75rem;line-height:1}.home-howto{appearance:none;border:0;background:#2b1d5e59;align-self:center;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 16px;border-radius:999px;color:#fff;font:600 1rem/1 var(--font-display);text-shadow:0 1px 2px rgba(43,29,94,.3);cursor:pointer;transition:background .2s,transform .15s var(--ease-bounce)}.home-howto:active{transform:scale(.95)}.home-howto:hover{background:#2b1d5e73}.home-howto svg{width:20px;height:20px}@keyframes home-fade-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@media(max-height:760px){.home-hero{min-height:120px}.home-tagline{display:none}.home-action{min-height:64px}.home-tile{min-height:76px}}@media(orientation:landscape)and (max-height:560px),(orientation:landscape)and (min-width:900px){.home{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,400px);grid-template-rows:auto 1fr;column-gap:32px;row-gap:6px;align-items:center;justify-items:stretch;max-width:960px;margin:0 auto}.home>*{max-width:none}.home-top{grid-column:1 / -1}.home-hero{min-height:0;align-self:center}.home-panel{align-self:center}}@media(orientation:landscape)and (max-height:560px){.home{grid-template-rows:1fr}.home-top{position:absolute;z-index:2;top:calc(var(--safe-top) + 10px);left:calc(var(--safe-left) + 16px);right:calc(var(--safe-right) + 16px);width:auto;pointer-events:none}.home-top>*{pointer-events:auto}.home-panel{padding-top:46px;gap:8px}.home .profile-card{padding:8px 10px}.home .profile-avatar{width:54px;height:54px}.home .profile-emoji{font-size:1.9rem}.home .profile-name{gap:4px}.home .profile-name .field,.home .profile-dice{min-height:44px;height:44px}.home-hero .logo{--t: max(14px, min(8.5vh + 20px, 54px, (100vw - 464px - var(--safe-left) - var(--safe-right)) / 6.8))}.home-tagline{display:block}.home-actions{gap:8px}.home-action{min-height:54px}.home-action-icon{width:40px;height:40px;font-size:1.35rem}.home-action-text{font-size:1.12rem}.home-tile{min-height:54px;flex-direction:row;gap:8px}.home-tile-icon{font-size:1.35rem}.home-howto{min-height:44px}}@media(min-width:900px)and (orientation:landscape)and (min-height:561px){.home-hero .logo{--t: 78px}.home-tagline{font-size:1.2rem}}.profile-card{display:flex;align-items:center;gap:12px;padding:12px}.profile-card.is-flat{padding:4px 0 10px}.profile-avatar{appearance:none;border:0;position:relative;flex:none;width:66px;height:66px;border-radius:50%;display:grid;place-items:center;cursor:pointer;background:radial-gradient(circle at 35% 30%,#fff,#e9e2ff 70%);box-shadow:0 4px #d8cff7,0 8px 18px #2b1d5e2e,inset 0 0 0 3px #fff;transition:transform .2s var(--ease-bounce)}.profile-avatar:active{transform:scale(.92)}.profile-emoji{font-size:2.3rem;line-height:1;animation:pop-in .45s var(--ease-bounce)}.profile-avatar-badge{position:absolute;right:-2px;bottom:-2px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;color:#fff;background:var(--accent);box-shadow:0 2px 0 var(--accent-dark),0 0 0 2.5px #fff}.profile-name{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.profile-name .field{min-height:46px}.profile-dice{appearance:none;border:0;flex:none;align-self:flex-end;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;color:var(--bg-2);background:#f1ecff;box-shadow:0 3px #ddd3fb;cursor:pointer;transition:transform .15s var(--ease-bounce)}.profile-dice:active{transform:translateY(2px);box-shadow:0 1px #ddd3fb}.profile-dice svg{width:26px;height:26px}.profile-dice svg.is-rolling{animation:dice-roll .55s var(--ease-bounce)}@keyframes dice-roll{0%{transform:rotate(-200deg) scale(.6)}to{transform:none}}.avatar-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:4px 0 8px}.avatar-option{appearance:none;border:0;aspect-ratio:1;border-radius:22px;font-size:clamp(1.8rem,9vw,2.4rem);line-height:1;display:grid;place-items:center;cursor:pointer;background:#f4f1ff;box-shadow:0 4px #e3dcfa;transition:transform .2s var(--ease-bounce),background .2s;animation:pop-in .4s var(--ease-bounce) both}.avatar-option:active{transform:scale(.9)}.avatar-option.is-active{background:#ffe9f4;box-shadow:0 4px 0 var(--accent),0 0 0 3px var(--accent)}.app-sheet-section{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.app-sheet-section:last-child{margin-bottom:4px}.app-sheet-note{margin:12px 0 0;font-size:.88rem;color:var(--ink-soft);text-align:center}.join-body{padding:6px 0 2px}.join-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;margin-top:10px}.join-hint,.join-error{margin:0;font-size:.9rem;font-weight:700}.join-hint{color:var(--ink-soft)}.join-error{color:var(--danger-dark);animation:pop-in .35s var(--ease-bounce)}.join-paste{flex:none;min-height:44px}.code-input{position:relative;width:100%}.code-boxes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.code-box{position:relative;aspect-ratio:.88;max-height:76px;border-radius:16px;display:grid;place-items:center;font:700 clamp(1.7rem,9vw,2.3rem) / 1 var(--font-display);color:var(--ink);background:#f5f2ff;border:2.5px solid #e4ddfb;box-shadow:inset 0 3px #2b1d5e0f;transition:border-color .2s,background .2s,transform .2s var(--ease-bounce)}.code-box.is-filled{background:#fff;border-color:#cdbffb;box-shadow:0 4px #ddd3fb}.code-input:focus-within .code-box.is-active{border-color:var(--sun-dark);background:#fffbea;transform:translateY(-2px)}.code-input:focus-within .code-box.is-active:not(.is-filled):after{content:"";width:3px;height:42%;border-radius:2px;background:var(--sun-dark);animation:caret-blink 1s steps(1) infinite}.code-input .code-box.is-bad,.code-input:focus-within .code-box.is-bad,.code-input.is-invalid .code-box.is-filled{border-color:var(--danger);background:#fff3f5;color:var(--danger-dark)}.code-char{animation:pop-in .28s var(--ease-bounce)}.code-real-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;font-size:16px;border:0;padding:0;cursor:text;text-transform:uppercase}.code-input.is-disabled{opacity:.7}@keyframes caret-blink{50%{opacity:0}}.invite-code{display:flex;align-items:center;justify-content:center;gap:12px;padding:6px 0 16px}.pass-seats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.pass-seat{display:flex;align-items:center;gap:8px;padding:8px;border-radius:20px;background:#fff;border:2px solid color-mix(in srgb,var(--c) 30%,#fff);box-shadow:0 4px color-mix(in srgb,var(--c) 22%,#fff);animation:pop-in .35s var(--ease-bounce) both}.pass-swatch{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:1.3rem;background:linear-gradient(145deg,var(--l),var(--c) 45%,var(--d));box-shadow:inset 0 -3px #00000026,inset 0 2px #ffffff80}.pass-swatch b{font:700 1.25rem/1 var(--font-display);color:#fff;text-shadow:0 2px 0 var(--d)}.pass-main{flex:1;min-width:0}.pass-name.field{min-height:48px;font-size:1rem}.pass-diff .seg-option{min-height:44px;padding:2px}.pass-diff .seg-label{font-size:1.05rem}.pass-kind{flex:none;width:104px}.pass-kind .seg-option{min-height:44px;padding:2px}.pass-kind .seg-label{font-size:1.1rem}@media(max-width:359px){.pass-seat{flex-wrap:wrap}.pass-kind{margin-left:auto}.pass-main{order:3;flex-basis:100%}}.create-error{margin-top:12px;text-align:center}
