:root {
  --ink:#18202a;
  --paper:#fffdf5;
  --yellow:#ffd928;
  --cyan:#36cfe4;
  --coral:#ff6b62;
  --violet:#7654ff;
  --green:#45c985;
  --muted:#6b7280;
  --line:#cbd0d6;
  --shadow:5px 6px 0 var(--ink);
  --radius:18px;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{background:var(--paper);color:var(--ink);font-family:Inter,ui-rounded,"Arial Rounded MT Bold",system-ui,-apple-system,sans-serif}
body{margin:0;min-height:100vh;background:
  radial-gradient(circle at 12% 14%,rgba(255,217,40,.25),transparent 24rem),
  radial-gradient(circle at 88% 78%,rgba(54,207,228,.18),transparent 25rem),var(--paper)}
button,select{font:inherit;color:inherit}
button{cursor:pointer}
button:focus-visible,select:focus-visible,.cell:focus-visible{outline:4px solid var(--violet);outline-offset:3px}
.topbar{height:76px;padding:12px clamp(18px,4vw,54px);display:flex;align-items:center;justify-content:space-between;border-bottom:3px solid var(--ink);background:rgba(255,253,245,.92);backdrop-filter:blur(12px);position:sticky;top:0;z-index:20}
.brand{border:0;background:none;padding:0 10px 0 0;display:flex;align-items:center;position:relative}
.brand-zap{font-size:2.1rem;font-weight:1000;letter-spacing:-.08em;transform:skew(-8deg);text-shadow:3px 3px 0 var(--yellow)}
.brand-dot{width:11px;height:11px;border-radius:50%;background:var(--coral);margin-left:8px;box-shadow:13px 0 0 var(--cyan)}
.top-actions{display:flex;gap:8px;align-items:center}
.icon-button,.lang-button{width:44px;height:44px;border:2px solid var(--ink);background:white;border-radius:12px;display:grid;place-items:center;font-weight:900;box-shadow:2px 2px 0 var(--ink)}
.icon-button:hover,.lang-button:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--ink)}
.icon-button svg,.library-button svg,.tool-button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.audio-button .mute-mark{display:none}.audio-button.muted .sound-wave{display:none}.audio-button.muted .mute-mark{display:block}.audio-button.music-off:not(.muted){background:#fff8d7}
.account-button.signed-in{background:#dff9eb}.account-button.signed-in svg{display:none}.account-button #account-avatar{font-size:.92rem;font-weight:1000}
.app-shell{width:min(1180px,calc(100% - 32px));margin:34px auto 24px;display:grid;grid-template-columns:minmax(0,780px) minmax(260px,1fr);gap:34px;align-items:start}
.home-screen{width:min(1060px,calc(100% - 32px));margin:38px auto 48px}
.home-stage{min-height:330px;border:3px solid var(--ink);border-radius:28px;background:var(--yellow);box-shadow:9px 10px 0 var(--ink);padding:clamp(28px,6vw,64px);display:grid;grid-template-columns:1.3fr .7fr;gap:30px;align-items:center;overflow:hidden;position:relative}
.home-stage::before{content:"";position:absolute;width:210px;height:210px;border:3px solid var(--ink);border-radius:50%;background:var(--coral);right:-90px;top:-100px}
.home-kicker{font-size:.82rem;font-weight:950;letter-spacing:.15em;margin:0 0 13px}.home-copy h1{font-size:clamp(3rem,9vw,6.5rem);line-height:.84;letter-spacing:-.075em;margin:0;max-width:720px}.home-copy h1 em{font-style:normal;color:white;text-shadow:5px 5px 0 var(--ink);-webkit-text-stroke:2px var(--ink)}.home-copy>p:last-child{font-size:clamp(1rem,2vw,1.25rem);font-weight:700;line-height:1.5;max-width:620px;margin:24px 0 0}
.home-comic{height:230px;position:relative;display:grid;place-items:center}.home-burst{width:210px;height:160px;display:grid;place-items:center;background:white;border:4px solid var(--ink);clip-path:polygon(50% 0,61% 24%,88% 8%,78% 38%,100% 50%,77% 62%,89% 93%,60% 76%,50% 100%,39% 76%,10% 93%,23% 62%,0 50%,22% 38%,11% 8%,39% 24%);font-size:3.1rem;font-weight:1000;font-style:italic;letter-spacing:-.09em;transform:rotate(-7deg);animation:home-pulse 2.8s ease-in-out infinite}.home-shape{position:absolute;width:58px;height:58px;border:3px solid var(--ink);border-radius:13px;background:white;display:grid;place-items:center;font-size:2.1rem;font-weight:900;box-shadow:4px 4px 0 var(--ink)}.hs-circle{left:2%;top:4%;color:#087f91;transform:rotate(-10deg)}.hs-triangle{right:1%;bottom:3%;color:#db4c43;transform:rotate(9deg)}.hs-square{left:5%;bottom:2%;color:#593bd1;transform:rotate(7deg)}@keyframes home-pulse{0%,80%,100%{transform:rotate(-7deg) scale(1)}86%{transform:rotate(-4deg) scale(1.08)}92%{transform:rotate(-9deg) scale(.97)}}
.home-actions-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:26px;margin-top:34px}.daily-card{min-height:260px;border:3px solid var(--ink);border-radius:22px;background:var(--cyan);box-shadow:7px 8px 0 var(--ink);padding:30px;text-align:left;display:flex;flex-direction:column;align-items:flex-start}.daily-card:hover,.home-menu-button:hover{transform:translate(-2px,-2px);box-shadow:8px 9px 0 var(--ink)}.daily-card-kicker{font-size:.78rem;font-weight:950;letter-spacing:.14em}.daily-card strong{font-size:clamp(2.1rem,5vw,3.8rem);letter-spacing:-.06em;margin:15px 0 2px}.daily-card>span:nth-of-type(2){font-weight:800}.daily-card-state{margin-top:9px;font-size:.76rem;font-weight:950;letter-spacing:.06em}.daily-card-state.solved{border:2px solid var(--ink);border-radius:999px;background:#dff9eb;padding:5px 9px}.daily-card b{margin-top:auto;border:2px solid var(--ink);background:white;padding:10px 14px;border-radius:10px;box-shadow:3px 3px 0 var(--ink)}
.home-menu{display:grid;gap:13px}.home-menu-button{border:3px solid var(--ink);border-radius:16px;background:white;box-shadow:4px 5px 0 var(--ink);padding:18px 20px;text-align:left;display:flex;flex-direction:column;justify-content:center}.home-menu-button span{font-weight:950;font-size:1rem}.home-menu-button small{margin-top:4px;color:var(--muted);font-weight:700;font-size:.78rem}.primary-home{background:var(--violet);color:white}.primary-home small{color:#eeeaff}
.home-progress-card{margin-top:26px;border:3px solid var(--ink);border-radius:18px;background:white;padding:18px 22px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:22px}.home-progress-card>div:first-child{display:grid;grid-template-columns:auto auto;gap:1px 8px;align-items:baseline}.home-progress-card>div:first-child>span{grid-column:1/3;font-size:.7rem;letter-spacing:.12em;font-weight:950;color:var(--muted)}.home-progress-card strong{font-size:1.8rem}.home-progress-card small{font-weight:800}.home-progress-track{height:12px;border:2px solid var(--ink);border-radius:999px;overflow:hidden}.home-progress-track i{display:block;height:100%;width:0;background:var(--green);transition:width .35s}.home-progress-card>span{font-size:1.2rem;font-weight:850;white-space:nowrap}
.daily-stats-card{margin-top:18px;border:3px solid var(--ink);border-radius:18px;background:white;box-shadow:4px 5px 0 var(--ink);padding:17px 20px;display:grid;grid-template-columns:repeat(3,1fr) 1.4fr;gap:12px;align-items:stretch}.daily-stats-card>div{display:grid;place-items:center;text-align:center;border-right:2px dashed var(--line);padding:4px 12px}.daily-stats-card>div:nth-child(3){border-right:0}.daily-stats-card strong{font-size:1.65rem;font-variant-numeric:tabular-nums}.daily-stats-card span{font-size:.68rem;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.daily-stats-card .next-daily{border:2px solid var(--ink);border-radius:12px;background:var(--yellow);padding:9px 12px}.daily-stats-card .next-daily strong{font-size:1.2rem}
.game-panel{min-width:0;background:white;border:3px solid var(--ink);border-radius:26px;padding:clamp(18px,4vw,34px);box-shadow:8px 9px 0 var(--ink)}
.game-head{display:flex;align-items:end;justify-content:space-between;gap:16px}
.kicker,.modal-kicker,.side-kicker{margin:0 0 5px;font-size:.78rem;font-weight:950;letter-spacing:.14em;color:var(--violet)}
h1{margin:0;font-size:clamp(1.8rem,5vw,3rem);line-height:1;letter-spacing:-.045em}
.library-button{border:2px solid var(--ink);background:var(--yellow);border-radius:12px;padding:10px 14px;display:flex;gap:8px;align-items:center;font-weight:850;box-shadow:3px 3px 0 var(--ink)}
.library-button:hover,.check-button:hover,.primary-modal-button:hover,.secondary-modal-button:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--ink)}
.meta-row{display:flex;gap:8px;align-items:center;margin:16px 0 18px}
.difficulty-pill,.size-pill,.timer{border:2px solid var(--ink);border-radius:999px;padding:6px 11px;font-size:.8rem;font-weight:850}
.difficulty-pill{background:var(--cyan)}
.difficulty-pill.intermedio{background:var(--yellow)}
.difficulty-pill.difficile{background:var(--coral)}
.timer{margin-left:auto;border-color:transparent;color:var(--muted);font-variant-numeric:tabular-nums}
.play-area{display:grid;place-items:center;min-height:360px}
.loading-card{text-align:center;color:var(--muted)}
.mini-zap{font-weight:1000;font-size:2rem;color:var(--ink)}
.board-layout{--n:4;width:min(100%,620px);display:grid;grid-template-columns:minmax(0,1fr) clamp(58px,11vw,82px);grid-template-rows:24px minmax(0,1fr) clamp(64px,12vw,86px);gap:6px;user-select:none}
.column-numbers{grid-area:1/1/2/2;display:grid;grid-template-columns:repeat(var(--n),1fr);font-size:.68rem;font-weight:850;color:var(--muted);text-align:center;align-items:end}
.game-grid{--grid-gap:2px;grid-area:2/1/3/2;display:grid;grid-template-columns:repeat(var(--n),1fr);aspect-ratio:1;border:3px solid var(--ink);background:var(--ink);gap:var(--grid-gap);position:relative;isolation:isolate}
.row-clues{grid-area:2/2/3/3;display:grid;grid-template-rows:repeat(var(--n),1fr);gap:2px}
.column-clues{grid-area:3/1/4/2;display:grid;grid-template-columns:repeat(var(--n),1fr);gap:2px}
.cell{min-width:0;border:0;background:white;display:grid;place-items:center;position:relative;padding:0;transition:background .12s,transform .12s}
.cell:disabled{cursor:default;color:inherit}.daily-complete .cell:not(.given){background:#f5fff9}.daily-complete .cell.selected{box-shadow:none}
.cell:not(.given):hover{background:#f4f1ff}
.cell.selected{background:#eeeaff;box-shadow:inset 0 0 0 4px var(--violet);z-index:2}
.cell.given{background:#f1f3f5}
.cell.given::after{content:"";position:absolute;inset:5px;border:1px dashed #b8bec6;pointer-events:none}
.cell-symbol{font-family:"Arial Unicode MS","Noto Sans Symbols 2",sans-serif;font-size:clamp(1.35rem,5vw,2.55rem);font-weight:700;line-height:1}
.symbol-0{color:#087f91}.symbol-1{color:#db4c43}.symbol-2{color:#593bd1}
.notes{position:absolute;inset:10%;display:grid;grid-template-columns:repeat(3,1fr);place-items:center;font-size:clamp(.55rem,1.7vw,.85rem);font-weight:850;color:var(--muted)}
.notes span.off{opacity:0}
.clue{border:2px solid transparent;border-radius:9px;display:flex;align-items:center;justify-content:center;gap:2px;transition:background .15s,border-color .15s;min-width:0}
.row-clues .clue{padding:2px 4px;flex-wrap:wrap}
.column-clues .clue{padding:4px 2px;flex-direction:column;flex-wrap:wrap}
.clue-symbol{font-family:"Arial Unicode MS","Noto Sans Symbols 2",sans-serif;font-size:clamp(.78rem,2vw,1.15rem);font-weight:800;line-height:.9}
.clue.empty{font-weight:950;font-size:1.1rem}
.clue.good{background:#edf9f3;border-color:#8bd8b2}
.clue.almost{background:#fff3b7;border-color:#e0b900}
.clue.bad{background:#ffe5e2;border-color:var(--coral)}
.clue.replayable{appearance:none;width:100%;height:100%;padding:0;font:inherit;color:inherit;cursor:pointer;position:relative;box-shadow:none}
.row-clues .clue.replayable{padding:2px 4px}.column-clues .clue.replayable{padding:4px 2px}
.clue.replayable::after{content:"↻";position:absolute;right:-5px;top:-6px;width:16px;height:16px;border:1.5px solid var(--ink);border-radius:50%;display:grid;place-items:center;background:white;color:var(--ink);font:900 .58rem/1 Arial,sans-serif;opacity:.82}
.clue.replayable:hover{transform:translate(-1px,-1px);box-shadow:2px 2px 0 var(--ink)}.clue.replayable:focus-visible{outline:3px solid var(--violet);outline-offset:2px;z-index:3}
.status-line{min-height:46px;margin:16px 0 10px;border:2px solid var(--ink);border-radius:12px;background:#eefcff;padding:10px 12px;display:flex;align-items:center;gap:9px;font-size:.9rem;font-weight:700}
.status-line.danger{background:#ffe5e2;border-color:var(--coral)}.status-line.danger .status-mark{color:#c9362d}
.status-line.warning{background:#fff8d7;border-color:#d0aa00}.status-line.warning .status-mark{color:#a17f00}
.clue-legend{display:flex;flex-wrap:wrap;gap:7px 14px;margin:0 2px 13px;color:var(--muted)}.clue-legend>span{display:flex;align-items:center;gap:5px}.clue-legend b{font-size:.66rem;font-weight:800}.legend-swatch{width:12px;height:12px;border-radius:4px;border:2px solid var(--ink)}.legend-green{background:#dff9eb}.legend-yellow{background:var(--yellow)}.legend-red{background:#ffe5e2}
.clue-replay-tip{margin:-5px 2px 13px;color:var(--muted);font-size:.72rem;font-weight:800}.clue-replay-tip>span:first-child{display:inline-grid;place-items:center;width:18px;height:18px;margin-right:3px;border:1.5px solid var(--ink);border-radius:50%;background:white;color:var(--ink)}
.game-grid.is-replaying{box-shadow:0 0 0 4px rgba(255,217,40,.45)}.cell.replay-source{opacity:.12}.clue.replay-active{transform:scale(1.07);box-shadow:3px 3px 0 var(--ink);z-index:4}.clue.replay-result{animation:clue-result-pop .42s ease}
.grid-replay-layer{position:absolute;z-index:10;background:rgba(255,255,255,.96);pointer-events:none;overflow:visible;box-shadow:inset 0 0 0 3px var(--yellow)}.grid-replay-layer.row{left:0;right:0;top:calc(var(--line-index)*100%/var(--n));height:calc(100%/var(--n))}.grid-replay-layer.column{top:0;bottom:0;left:calc(var(--line-index)*100%/var(--n));width:calc(100%/var(--n))}
.grid-replay-tokens{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.grid-replay-layer.column .grid-replay-tokens{flex-direction:column}.grid-replay-token{display:grid;place-items:center;background:white;font-family:"Arial Unicode MS","Noto Sans Symbols 2",sans-serif;font-size:clamp(1.35rem,5vw,2.55rem);font-weight:800;line-height:1;transition:transform .32s,opacity .32s}.grid-replay-layer.row .grid-replay-token{flex:0 0 calc(100%/var(--n));height:100%}.grid-replay-layer.column .grid-replay-token{flex:0 0 calc(100%/var(--n));width:100%}.grid-replay-token.vanishing{background:var(--yellow);animation:grid-token-vanish .62s ease forwards}.grid-replay-empty{font-size:clamp(1.6rem,5vw,2.6rem);font-weight:950;color:var(--ink)}
.grid-replay-burst{position:absolute;left:50%;top:50%;z-index:12;transform:translate(-50%,-50%) rotate(-8deg) scale(0);background:var(--yellow);border:2px solid var(--ink);padding:6px 11px;clip-path:polygon(50% 0,62% 26%,88% 10%,78% 39%,100% 50%,77% 61%,88% 91%,61% 75%,50% 100%,39% 75%,11% 91%,24% 61%,0 50%,22% 39%,12% 10%,39% 26%);font-size:clamp(.72rem,2vw,1.05rem);font-weight:1000;font-style:italic;color:var(--ink)}.grid-replay-burst.show{animation:grid-replay-zac .72s ease forwards}
@keyframes grid-token-vanish{0%{transform:scale(1);opacity:1}55%{transform:scale(1.12) rotate(4deg);opacity:1}100%{transform:scale(.12) rotate(-9deg);opacity:0}}@keyframes grid-replay-zac{0%{transform:translate(-50%,-50%) rotate(-10deg) scale(.1);opacity:0}45%{transform:translate(-50%,-50%) rotate(4deg) scale(1.08);opacity:1}100%{transform:translate(-50%,-50%) rotate(-5deg) scale(.4);opacity:0}}@keyframes clue-result-pop{0%{transform:scale(.9)}60%{transform:scale(1.14)}100%{transform:scale(1.07)}}
.status-mark{color:var(--violet)}
.symbol-tray{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.symbol-key{min-height:64px;border:3px solid var(--ink);border-radius:15px;background:white;box-shadow:3px 3px 0 var(--ink);display:flex;align-items:center;justify-content:center;gap:8px;position:relative}
.symbol-key span{font-family:"Arial Unicode MS","Noto Sans Symbols 2",sans-serif;font-size:2rem;font-weight:800;line-height:1}
.symbol-key small{font-size:.7rem;color:var(--muted);position:absolute;right:8px;bottom:5px}
.circle-key{background:#dffbff}.triangle-key{background:#fff0ed}.square-key{background:#eeeaff}.erase-key{background:#f2f3f5}
.symbol-key:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}
.tool-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0}
.tool-button{border:0;background:transparent;border-radius:11px;padding:8px 4px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:.72rem;font-weight:800}
.tool-button:hover{background:#f2f3f5}.tool-button:disabled{opacity:.35;cursor:not-allowed}
.tool-button.active{background:var(--yellow);box-shadow:inset 0 0 0 2px var(--ink)}
.hint-button{color:#553acc}
.check-button,.primary-modal-button,.secondary-modal-button{width:100%;border:3px solid var(--ink);border-radius:13px;padding:14px;background:var(--yellow);font-weight:950;letter-spacing:.05em;box-shadow:4px 4px 0 var(--ink)}
.puzzle-nav{display:flex;align-items:center;justify-content:space-between;margin-top:22px;padding-top:16px;border-top:2px dashed #c7cbd0;gap:8px;font-size:.78rem;font-weight:800;color:var(--muted)}
.puzzle-nav button{border:0;background:transparent;font-weight:900;padding:7px;color:var(--ink)}
.puzzle-nav.daily-nav{justify-content:center}.puzzle-nav.daily-nav #progress-count{border:2px solid var(--ink);border-radius:999px;background:#fff8d7;padding:8px 14px;color:var(--ink)}
.side-card{position:sticky;top:108px;border:3px solid var(--ink);border-radius:22px;background:var(--cyan);padding:28px 24px;box-shadow:7px 8px 0 var(--ink);transform:rotate(1deg)}
.side-symbols{display:flex;gap:8px;margin-bottom:28px}.side-symbols span{width:48px;height:48px;border:3px solid var(--ink);border-radius:12px;background:white;display:grid;place-items:center;font-size:1.8rem;font-weight:850;box-shadow:3px 3px 0 var(--ink)}
.side-kicker{color:var(--ink)}.side-card h2{margin:0 0 18px;font-size:1.75rem;line-height:1.05;letter-spacing:-.035em}.side-card p{line-height:1.5;font-size:.95rem}
.demo-sequence{background:white;border:2px solid var(--ink);border-radius:14px;padding:14px 8px;margin:18px 0;display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;font-family:"Arial Unicode MS",sans-serif}.demo-sequence div{display:flex;gap:3px;font-size:1.2rem}.demo-sequence b{font-family:inherit}.empty-symbol{font-weight:900}
.text-link{border:0;background:transparent;padding:8px 0;font-weight:900;text-decoration:underline;text-underline-offset:4px}
.site-footer{width:min(1180px,calc(100% - 32px));margin:30px auto 40px;display:flex;justify-content:space-between;font-size:.78rem;font-weight:800;color:var(--muted)}
.modal{border:0;background:transparent;padding:20px;max-width:none;max-height:none;width:100%;height:100%}.modal::backdrop{background:rgba(24,32,42,.75);backdrop-filter:blur(5px)}
.modal[open]{display:grid;place-items:center}.modal-card{width:min(620px,100%);max-height:min(820px,calc(100vh - 40px));overflow:auto;background:var(--paper);border:3px solid var(--ink);border-radius:24px;padding:clamp(24px,5vw,42px);box-shadow:8px 9px 0 var(--ink);position:relative}
.compact-card{width:min(480px,100%);text-align:center}.close-button{position:absolute;right:16px;top:14px;width:38px;height:38px;border:2px solid var(--ink);border-radius:50%;background:white;font-size:1.45rem;line-height:1;font-weight:900}
.modal-card h2{font-size:clamp(2rem,6vw,3.3rem);letter-spacing:-.05em;line-height:1;margin:0 42px 26px 0}.compact-card h2{margin-right:0}.tutorial-steps{display:grid;gap:18px}.tutorial-steps section{display:flex;gap:15px}.tutorial-steps h3{margin:1px 0 4px;font-size:1.05rem}.tutorial-steps p{margin:0;color:#4b5563;line-height:1.45}.step-number{flex:0 0 36px;height:36px;border:2px solid var(--ink);background:var(--yellow);border-radius:10px;display:grid;place-items:center;font-weight:950;box-shadow:2px 2px 0 var(--ink)}
.tutorial-animation{margin:26px 0 12px;border:2px solid var(--ink);border-radius:16px;background:white;padding:14px}.tutorial-stage{height:92px;position:relative;overflow:hidden}.tutorial-token{position:absolute;top:25px;width:44px;height:44px;display:grid;place-items:center;font-family:"Arial Unicode MS",sans-serif;font-size:2rem;font-weight:900}.token-left{left:calc(50% - 94px);color:#087f91;animation:tutorial-left 4s infinite}.token-pair-a{left:calc(50% - 47px);color:#db4c43;animation:tutorial-pair 4s infinite}.token-pair-b{left:50%;color:#db4c43;animation:tutorial-pair 4s infinite}.token-right{left:calc(50% + 47px);color:#087f91;animation:tutorial-right 4s infinite}.tutorial-zac{position:absolute;left:50%;top:5px;transform:translateX(-50%) rotate(-8deg) scale(0);background:var(--yellow);border:2px solid var(--ink);padding:6px 10px;clip-path:polygon(50% 0,62% 26%,88% 10%,78% 39%,100% 50%,77% 61%,88% 91%,61% 75%,50% 100%,39% 75%,11% 91%,24% 61%,0 50%,22% 39%,12% 10%,39% 26%);animation:tutorial-zac 4s infinite;z-index:3}.tutorial-empty{position:absolute;left:50%;top:29px;transform:translateX(-50%);font-size:2rem;opacity:0;animation:tutorial-empty 4s infinite}.tutorial-animation p{font-size:.83rem!important;line-height:1.4!important;margin:0!important;text-align:center;color:var(--muted)!important}.tutorial-note{font-size:.78rem;line-height:1.45;color:var(--muted);margin:0 0 20px}
@keyframes tutorial-pair{0%,20%{opacity:1;transform:scale(1)}31%,100%{opacity:0;transform:scale(.1)}}@keyframes tutorial-left{0%,34%{transform:translateX(0) scale(1);opacity:1}48%,55%{transform:translateX(47px) scale(1);opacity:1}67%,100%{transform:translateX(47px) scale(.1);opacity:0}}@keyframes tutorial-right{0%,34%{transform:translateX(0) scale(1);opacity:1}48%,55%{transform:translateX(-47px) scale(1);opacity:1}67%,100%{transform:translateX(-47px) scale(.1);opacity:0}}@keyframes tutorial-zac{0%,19%,35%,54%,70%,100%{transform:translateX(-50%) rotate(-8deg) scale(0)}25%,60%{transform:translateX(-50%) rotate(-8deg) scale(1)}}@keyframes tutorial-empty{0%,68%{opacity:0;transform:translateX(-50%) scale(.5)}76%,91%{opacity:1;transform:translateX(-50%) scale(1)}100%{opacity:0}}
.library-card{width:min(800px,100%)}.filter-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.filter-row select{width:100%;border:2px solid var(--ink);border-radius:11px;background:white;padding:12px;font-weight:750}
.puzzle-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:10px}.puzzle-chip{border:2px solid var(--ink);border-radius:12px;background:white;min-height:76px;padding:9px 6px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-weight:950;position:relative}.puzzle-chip small{font-size:.65rem;color:var(--muted)}.puzzle-chip.complete{background:#dff9eb}.puzzle-chip.complete::after{content:"✓";position:absolute;top:3px;right:6px;color:#168751}.puzzle-chip.current{box-shadow:inset 0 0 0 3px var(--violet)}
.bulb{display:grid;place-items:center;width:70px;height:70px;margin:0 auto 20px;border:3px solid var(--ink);border-radius:20px;background:var(--yellow);font-size:2rem;box-shadow:4px 4px 0 var(--ink);transform:rotate(-4deg)}
.compact-card>p:not(.modal-kicker){font-size:1.05rem;line-height:1.55;color:#3f4650}.success-card{width:min(440px,100%);padding:clamp(28px,6vw,44px);background:#fffdf5}.success-stamp{width:98px;height:56px;margin:0 auto 18px;border:3px solid var(--ink);border-radius:999px;background:var(--yellow);box-shadow:4px 4px 0 var(--ink);display:flex;align-items:center;justify-content:center;gap:8px;transform:rotate(-2deg)}.success-stamp span{width:24px;height:24px;border:2px solid var(--ink);border-radius:50%;background:#dff9eb;display:grid;place-items:center;font-size:.85rem;font-weight:1000}.success-stamp b{font-size:1.35rem;font-weight:1000;font-style:italic;letter-spacing:-.08em}.success-card .modal-kicker{margin:0 0 7px}.success-card h2{margin:0 0 22px;font-size:clamp(2.35rem,8vw,3.6rem)}.success-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:10px;margin:0 0 22px}.success-stats>div{border:2px solid var(--ink);border-radius:13px;background:white;padding:12px 8px;display:grid;gap:3px}.success-stats b{font-size:1.25rem;font-variant-numeric:tabular-nums}.success-stats span{font-size:.68rem;font-weight:850;line-height:1.2;color:var(--muted)}.success-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.success-actions.daily-only{grid-template-columns:1fr}.success-actions .secondary-modal-button{background:white}.daily-next-card{margin-top:16px;border:0;border-radius:13px;background:#fff5bf;padding:13px;display:grid;gap:3px}.daily-next-card span{font-size:.7rem;font-weight:950;letter-spacing:.08em}.daily-next-card strong{font-size:1.45rem;font-variant-numeric:tabular-nums}.confetti-layer{position:fixed;inset:0;pointer-events:none;z-index:100;overflow:hidden}.confetti{position:absolute;top:-20px;width:12px;height:20px;border:2px solid var(--ink);animation:fall 1.9s cubic-bezier(.2,.7,.4,1) forwards}@keyframes fall{to{transform:translate(var(--drift),110vh) rotate(720deg)}}
.audio-note{display:grid;place-items:center;width:70px;height:70px;margin:0 auto 20px;border:3px solid var(--ink);border-radius:50%;background:var(--cyan);font-size:2.2rem;font-weight:900;box-shadow:4px 4px 0 var(--ink);transform:rotate(-6deg)}.audio-settings{display:grid;gap:12px;margin-top:24px}.audio-setting-button{width:100%;min-height:76px;border:2px solid var(--ink);border-radius:14px;background:white;padding:13px 14px;display:flex;align-items:center;justify-content:space-between;gap:18px;text-align:left;box-shadow:3px 3px 0 var(--ink)}.audio-setting-button:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}.audio-setting-button>span{display:grid;gap:3px}.audio-setting-button b{font-size:.95rem}.audio-setting-button small{font-size:.78rem;color:var(--muted);font-weight:700}.audio-switch{flex:0 0 48px;height:28px;border:2px solid var(--ink);border-radius:999px;background:#d8dde3;padding:3px;display:flex;align-items:center;transition:background .18s}.audio-switch>i{display:block;width:18px;height:18px;border:2px solid var(--ink);border-radius:50%;background:white;transition:transform .18s}.audio-setting-button.is-on .audio-switch{background:var(--green)}.audio-setting-button.is-on .audio-switch>i{transform:translateX(18px)}
.account-card{background:#fffdf5}.account-cloud{display:grid;place-items:center;width:72px;height:62px;margin:0 auto 20px;border:3px solid var(--ink);border-radius:22px;background:var(--cyan);font-size:2.25rem;box-shadow:4px 4px 0 var(--ink);transform:rotate(-3deg)}.account-card #account-signed-out>p:first-child{font-size:1rem;line-height:1.5;color:#3f4650}.google-button-wrap{min-height:44px;margin:22px auto 12px;display:flex;justify-content:center}.remember-row{display:flex;justify-content:center;align-items:center;gap:8px;margin:0 auto 15px;font-size:.8rem;font-weight:800;color:var(--muted);cursor:pointer}.remember-row input{width:17px;height:17px;accent-color:var(--violet)}.account-privacy{font-size:.72rem!important;line-height:1.45!important;color:var(--muted)!important;margin:0!important}.account-profile{margin:2px 0 18px;border:2px solid var(--ink);border-radius:15px;background:white;padding:13px;display:flex;align-items:center;gap:12px;text-align:left}.account-profile img,.account-profile>span{width:48px;height:48px;flex:0 0 48px;border:2px solid var(--ink);border-radius:50%;object-fit:cover;background:var(--yellow);display:grid;place-items:center;font-size:1.1rem;font-weight:1000}.account-profile>div{min-width:0;display:grid;gap:3px}.account-profile strong,.account-profile small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-profile small{color:var(--muted)}.sync-status{min-height:48px;border:2px solid var(--ink);border-radius:12px;background:#eefcff;padding:11px;font-size:.84rem!important;line-height:1.4!important;color:var(--ink)!important}.sync-status.sync-ok{background:#dff9eb}.sync-status.sync-error{background:#ffe5e2}.account-signout{margin-top:15px;border:0;background:transparent;color:var(--muted);font-weight:850;text-decoration:underline;text-underline-offset:4px}
.toast{position:fixed;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translate(-50%,130px);background:var(--ink);color:white;border-radius:999px;padding:12px 18px;font-weight:800;font-size:.9rem;z-index:120;opacity:0;transition:.24s;box-shadow:0 6px 20px rgba(0,0,0,.24);text-align:center}.toast.show{transform:translate(-50%,0);opacity:1}
.zac-pop{position:fixed;z-index:130;width:98px;height:72px;display:grid;place-items:center;background:var(--yellow);border:3px solid var(--ink);clip-path:polygon(50% 0,61% 24%,88% 8%,78% 38%,100% 50%,77% 62%,89% 93%,60% 76%,50% 100%,39% 76%,10% 93%,23% 62%,0 50%,22% 38%,11% 8%,39% 24%);font-size:1.55rem;font-weight:1000;font-style:italic;letter-spacing:-.08em;pointer-events:none;animation:comic-pop .78s cubic-bezier(.2,1.4,.4,1) forwards}.cell.pair-flash{z-index:4;animation:pair-flash .65s ease}
.stadium-banner{position:absolute;inset:0;z-index:20;display:grid;grid-template-columns:repeat(var(--n),1fr);grid-template-rows:repeat(var(--n),1fr);gap:var(--grid-gap);background:var(--ink);overflow:hidden;perspective:800px}.stadium-tile{position:relative;overflow:hidden;background:#ffd928;opacity:0;transform:rotateX(90deg) scale(.92);transform-origin:center bottom;animation:stadium-tile-in .72s cubic-bezier(.18,.85,.3,1.15) forwards;animation-delay:var(--tile-delay)}.stadium-tile.shade-1{background:#ffe45c}.stadium-tile.shade-2{background:#ffcf1f}.stadium-fragment{position:absolute;left:var(--fragment-left);top:var(--fragment-top);width:var(--board-size);height:var(--board-size);display:grid;place-items:center;color:var(--ink);font-size:var(--tifo-size);line-height:1;font-weight:1000;font-style:italic;letter-spacing:-.1em;opacity:0;animation:stadium-word-in .55s ease forwards;animation-delay:calc(var(--tile-delay) + .42s)}.stadium-banner.leaving{animation:stadium-banner-out .52s ease forwards}
@keyframes comic-pop{0%{transform:translate(-50%,-25%) rotate(-14deg) scale(.1);opacity:0}35%{transform:translate(-50%,-70%) rotate(5deg) scale(1.2);opacity:1}72%{transform:translate(-50%,-85%) rotate(-4deg) scale(1)}100%{transform:translate(-50%,-120%) rotate(8deg) scale(.5);opacity:0}}@keyframes pair-flash{30%{background:var(--yellow);transform:scale(.92)}65%{transform:scale(1.04)}}@keyframes stadium-tile-in{0%{opacity:0;transform:rotateX(90deg) scale(.92)}70%{opacity:1;transform:rotateX(-8deg) scale(1.03)}100%{opacity:1;transform:rotateX(0) scale(1)}}@keyframes stadium-word-in{0%{opacity:0;transform:scale(.94)}100%{opacity:1;transform:scale(1)}}@keyframes stadium-banner-out{to{opacity:0;transform:scale(1.025)}}
@media(max-width:900px){.app-shell{grid-template-columns:1fr;max-width:760px}.side-card{position:static;transform:none}.side-symbols{margin-bottom:18px}.side-card h2{font-size:1.5rem}.home-stage{grid-template-columns:1fr .5fr}.home-actions-grid{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.home-screen{width:calc(100% - 28px);margin:20px auto 34px}.home-stage{min-height:440px;grid-template-columns:1fr;padding:30px 24px}.home-copy h1{font-size:3.8rem}.home-comic{height:170px}.home-burst{width:165px;height:130px;font-size:2.5rem}.home-shape{width:48px;height:48px}.home-actions-grid{grid-template-columns:1fr}.daily-card{min-height:220px}.home-progress-card{grid-template-columns:1fr auto}.home-progress-track{grid-column:1/3;grid-row:2}.daily-stats-card{grid-template-columns:repeat(3,1fr)}.daily-stats-card>div{padding:4px 5px}.daily-stats-card .next-daily{grid-column:1/4;margin-top:4px}.daily-stats-card strong{font-size:1.4rem}}
@media(max-width:560px){.topbar{height:64px;padding:8px 12px}.top-actions{gap:6px}.brand-zap{font-size:1.65rem}.icon-button,.lang-button{width:38px;height:38px}.app-shell{width:100%;margin:0;display:block}.game-panel{border-width:0 0 3px;border-radius:0;padding:20px 13px 28px;box-shadow:none}.side-card{margin:26px 14px}.site-footer{width:calc(100% - 28px);flex-direction:column;gap:8px}.library-button{padding:9px}.library-button span{display:none}.board-layout{grid-template-columns:minmax(0,1fr) 58px;grid-template-rows:20px minmax(0,1fr) 68px}.game-grid{--grid-gap:1px;border-width:2px}.cell.given::after{inset:3px}.clue{gap:0}.clue.replayable::after{width:14px;height:14px;right:-4px;top:-5px;font-size:.5rem}.tool-row{gap:2px}.tool-button{font-size:.66rem}.status-line{font-size:.82rem}.clue-legend{gap:5px 10px}.clue-legend b{font-size:.62rem}.clue-replay-tip{font-size:.67rem}.puzzle-nav{font-size:.68rem}.modal{padding:10px}.modal-card{max-height:calc(100vh - 20px);border-radius:20px}.filter-row{grid-template-columns:1fr}.success-actions{grid-template-columns:1fr}.timer{font-size:.72rem}.home-copy h1{font-size:3.25rem}}
@media(max-width:390px){.topbar{padding-inline:9px}.top-actions{gap:4px}.brand{padding-right:4px}.brand-zap{font-size:1.5rem}.brand-dot{width:9px;height:9px;margin-left:5px;box-shadow:11px 0 0 var(--cyan)}.icon-button,.lang-button{width:35px;height:35px}.icon-button svg{width:19px;height:19px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
