@font-face{font-family:Young Serif;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/young-serif-latin-400-normal-DIMmNPI9.woff2)format("woff2"),url(/assets/young-serif-latin-400-normal-D1tz0Z9s.woff)format("woff")}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/caveat-latin-700-normal-D8_1Nw6V.woff2)format("woff2"),url(/assets/caveat-latin-700-normal-cPyBTTZN.woff)format("woff")}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-400-normal-BbWidj28.woff)format("woff")}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-700-normal-GZI4o3u0.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-700-normal-BK6Glc0m.woff)format("woff")}:root{--paper:#f4eee1;--paper-2:#fbf8f1;--ink:#23365e;--ink-soft:#5b6b88;--mine:#2f67b5;--peer:#e8eeec;--same:#cbdfc3;--sel:#b9d3e8;--line:#d8cfbe;--edge:#c9bfaa;--stamp:#b8453a;--wrong-bg:#f6dcd5;--gold:#d9a441;--gold-dark:#9a6e1e;--flash:#f3e2b0;--serif:"Young Serif", Georgia, serif;--hand:"Caveat", "Segoe Print", cursive;--sans:"Atkinson Hyperlegible", system-ui, sans-serif;--board:min(calc(100vw - 28px), calc(100dvh - 372px), 1100px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--paper);min-height:100%;color:var(--ink);font-family:var(--sans);-webkit-tap-highlight-color:transparent;margin:0}body{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .45 0 0 0 0 .38 0 0 0 0 .25 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}button{font:inherit;color:inherit}button:focus-visible,input:focus-visible{outline:3px solid var(--stamp);outline-offset:2px}.ico{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:24px;height:24px}.hand{font-family:var(--hand);font-weight:700}.star{width:22px;height:22px;fill:var(--gold);stroke:var(--gold-dark);stroke-width:1px;transition:fill .3s,opacity .3s}.star.off{fill:#0000;stroke:#b8ae99;stroke-dasharray:2 2}.screen{max-width:640px;min-height:100dvh;padding:max(18px, env(safe-area-inset-top)) 14px max(18px, env(safe-area-inset-bottom));flex-direction:column;gap:14px;margin:0 auto;display:flex;position:relative;overflow:clip}.wash{pointer-events:none;z-index:0;filter:blur(2px);position:absolute}.wash-a{background:radial-gradient(at 40% 45%,#aacbe2c7,#aacbe200 70%);border-radius:48% 52% 60% 40%;width:340px;height:230px;top:-80px;left:-70px}.wash-b{background:radial-gradient(#b2ceb0b8,#b2ceb000 70%);border-radius:55% 45% 40% 60%;width:250px;height:180px;top:30px;right:-60px}.wash-c{background:radial-gradient(#e9b9a780,#e9b9a700 70%);border-radius:50% 50% 45% 55%;width:360px;height:220px;bottom:-90px;left:20%}.screen>:not(.wash):not(.overlay){z-index:1;position:relative}.iconbtn{appearance:none;border:1.5px solid var(--edge);background:var(--paper-2);width:48px;height:48px;color:var(--ink);cursor:pointer;border-radius:50%;flex-shrink:0;place-items:center;display:grid}.game{justify-content:center;align-items:center}.game>:not(.wash):not(.overlay){width:var(--board)}.game-head{align-items:center;gap:12px;display:flex}.game-head .titles{flex:1;min-width:0}.game-head p{color:var(--ink-soft);margin:0;font-size:21px;line-height:1}.game-head h1{font-family:var(--serif);margin:0;font-size:32px;font-weight:400;line-height:1.1}.live-stars{gap:2px;display:flex}.message{min-height:30px;margin-top:-4px}.message p{color:var(--mine);transform-origin:0;margin:0;font-size:21px;line-height:1.15}.message p.oops{color:var(--stamp)}.board{--cell:calc(var(--board) / var(--n));grid-template-columns:repeat(var(--n), minmax(0, 1fr));background:var(--paper-2);border:2.5px solid var(--ink);touch-action:manipulation;border-radius:8px;display:grid;overflow:hidden;box-shadow:0 1px #d9cfbb,0 16px 30px -18px #23365e99}.cell{appearance:none;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);aspect-ratio:1;font-family:var(--sans);font-size:calc(var(--cell) * .58);color:var(--ink);cursor:pointer;background:0 0;justify-content:center;align-items:center;margin:0;padding:0;font-weight:700;line-height:1;transition:background-color .18s;display:flex;position:relative}.cell.lc{border-right:0}.cell.lr{border-bottom:0}.cell.br{border-right:2.5px solid var(--ink)}.cell.bb{border-bottom:2.5px solid var(--ink)}.cell.mine{color:var(--mine);font-weight:400}.cell.hinted{color:#3f7d55}.cell.peer{background:var(--peer)}.cell.same{background:var(--same)}.cell.sel{background:var(--sel);box-shadow:inset 0 0 0 2.5px var(--ink)}.cell.wrong{color:var(--stamp);background:var(--wrong-bg)}.cell.wrong.sel{box-shadow:inset 0 0 0 2.5px var(--stamp)}.cell:focus-visible{outline:3px solid var(--stamp);outline-offset:-3px;z-index:1}.cell.pop .val{animation:.28s cubic-bezier(.2,.9,.3,1.4) pop}.cell.wrong.pop .val{animation:.36s shake}.cell.flash:after{content:"";background:var(--flash);mix-blend-mode:multiply;opacity:0;animation:flash .9s ease calc(var(--d) * 28ms) both;pointer-events:none;position:absolute;inset:0}.board.won .cell{animation:won .6s ease calc(var(--w) * 45ms) both}.board.won .cell .val{animation:hop .6s ease calc(var(--w) * 45ms) both;display:inline-block}@keyframes pop{0%{opacity:.2;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-2px)}}@keyframes flash{0%{opacity:0}30%{opacity:1}to{opacity:0}}@keyframes won{0%{background-color:#0000}40%{background-color:#cfe3d0}to{background-color:#e3eee0}}@keyframes hop{0%,to{transform:translateY(0)}40%{transform:translateY(-18%)}}.notes{font-size:calc(var(--cell) * .24);color:var(--ink-soft);place-items:center;font-weight:700;line-height:1;display:grid;position:absolute;inset:2px}.notes .on{color:var(--paper-2);background:var(--mine);border-radius:50%;place-items:center;width:1.3em;height:1.3em;display:grid}.tools{gap:8px;display:flex}.tool{appearance:none;border:1.5px solid var(--edge);background:var(--paper-2);min-height:52px;color:var(--ink);cursor:pointer;border-radius:14px;flex:1;justify-content:center;align-items:center;gap:7px;font-size:16px;font-weight:700;transition:background-color .18s,transform .12s;display:flex}.tool:active{transform:scale(.97)}.tool:disabled{opacity:.45;cursor:default}.tool.on{background:var(--mine);border-color:var(--mine);color:#fff}.pad{gap:8px;display:grid}.pad-9{grid-template-columns:repeat(5,minmax(0,1fr))}.pad-6{grid-template-columns:repeat(4,minmax(0,1fr))}.screen.game{max-width:none}@media (width>=600px){:root{--board:min(calc(100vw - 40px), calc(100dvh - 330px), 1100px)}.pad-9{grid-template-columns:repeat(10,minmax(0,1fr))}.pad-6{grid-template-columns:repeat(7,minmax(0,1fr))}.key{height:clamp(70px,7dvh,96px)}.key .kn{font-size:clamp(30px,4.2vw,42px)}.key .kl{font-size:13px}.tool{min-height:60px;font-size:18px}.game-head h1{font-size:40px}}.key{appearance:none;border:1.5px solid var(--edge);background:var(--paper-2);height:clamp(58px,9dvh,76px);color:var(--ink);cursor:pointer;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0;transition:transform .12s,background-color .18s;display:flex}.key:active{transform:scale(.94)}.key .kn{font-size:30px;font-weight:700;line-height:1}.key.notes-mode .kn{color:var(--mine);font-size:22px}.key .kl{color:#6a6355;white-space:nowrap;font-size:12px}.key.on{background:var(--ink);color:var(--paper-2);border-color:var(--ink)}.key.on .kn{color:var(--paper-2)}.key.on .kl{color:#d6deec}.key.done{opacity:.4}.key.erase,.key.erase .kl{color:var(--stamp)}.overlay{z-index:20;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#23365e61;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.done-card{background:var(--paper-2);text-align:center;border:1.5px solid #e2d8c4;border-radius:18px;width:min(100%,380px);padding:26px 22px 22px;position:relative;box-shadow:0 30px 60px -24px #141e3cb3}.done-card.small{padding-top:22px}.done-card h2{font-family:var(--serif);margin:0;font-size:32px;font-weight:400;line-height:1.1}.done-card .num{color:var(--ink-soft);font-size:.7em}.kicker{color:var(--stamp);margin:0;font-size:30px;line-height:1}.drops{width:0;height:0;position:absolute;top:40%;left:50%}.drop{border-radius:50% 46% 54% 48%;margin:-10px 0 0 -10px;position:absolute}.done-stars{justify-content:center;gap:18px;margin:18px 0 8px;display:flex}.done-star{color:var(--ink-soft);flex-direction:column;align-items:center;gap:6px;font-size:14px;display:flex}.done-star .lost{color:#a59c89;text-decoration:line-through}.star.big{width:56px;height:56px}.stamp{background:var(--paper-2);border:2.5px solid var(--stamp);width:72px;height:72px;box-shadow:0 0 0 4px var(--paper-2), 0 0 0 5.5px var(--stamp);color:var(--stamp);opacity:.85;border-radius:50%;place-content:center;line-height:1;display:grid;position:absolute;top:-26px;right:-12px}.stamp span{font-family:var(--serif);font-size:24px}.stamp small{text-transform:uppercase;letter-spacing:.06em;font-size:10px;font-weight:700}.done-text{color:var(--ink-soft);margin:10px 0 18px;font-size:16px;line-height:1.45}.done-actions{flex-direction:column;gap:10px;display:flex}.btn{appearance:none;cursor:pointer;border-radius:14px;min-height:56px;padding:0 16px;font-size:18px;font-weight:700}.btn.primary{background:var(--ink);color:var(--paper-2);border:0}.btn.ghost{border:1.5px solid var(--edge);color:var(--ink);background:0 0}.home{gap:16px}.home-head{justify-content:space-between;align-items:flex-end;padding-top:8px;display:flex}.home-head p{color:var(--ink-soft);transform-origin:0;margin:0;font-size:24px;line-height:1;transform:rotate(-2deg)}.home-head h1{font-family:var(--serif);margin:0;font-size:52px;font-weight:400;line-height:1}.tally{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.tally-stars{color:var(--gold-dark);align-items:center;gap:5px;font-size:22px;font-weight:700;display:flex}.tally-solved{color:var(--ink-soft);font-size:14px}.continue{appearance:none;text-align:left;background:var(--ink);color:var(--paper-2);cursor:pointer;border:0;border-radius:18px;align-items:center;gap:14px;padding:16px;display:flex;box-shadow:0 18px 30px -20px #23365ee6}.continue-play{background:var(--gold);width:52px;height:52px;color:var(--ink);border-radius:50%;place-items:center;display:grid}.continue-play .ico{fill:var(--ink)}.continue-body{flex-direction:column;flex:1;gap:4px;display:flex}.continue-title{font-family:var(--serif);font-size:22px}.continue-sub{color:#d6deec;font-size:15px}.bar{background:#fff3;border-radius:3px;height:6px;margin-top:4px;display:block;overflow:hidden}.bar span{background:var(--gold);border-radius:3px;height:100%;display:block}.levels{flex-direction:column;gap:10px;display:flex}.levels h2{color:var(--mine);margin:4px 0 0;font-size:24px;font-weight:700}.level{appearance:none;text-align:left;border:1.5px solid var(--edge);cursor:pointer;background:#fbf8f1e0;border-radius:16px;align-items:center;gap:14px;padding:14px;transition:transform .12s;display:flex}.level:active{transform:scale(.98)}.level:disabled{opacity:.6;cursor:wait}.level-mark{width:54px;height:54px;color:var(--ink);border:1.5px solid #23365e40;border-radius:12px;flex-shrink:0;place-items:center;font-size:14px;font-weight:700;display:grid}.level-iniciacion .level-mark{background:#dcebd7}.level-facil .level-mark{background:#d5e5f0}.level-medio .level-mark{background:#f1e3bd}.level-dificil .level-mark{background:#f0d3c6}.level-experto .level-mark{background:#d9d3e8}.level-body{flex-direction:column;flex:1;gap:2px;display:flex}.level-name{font-family:var(--serif);font-size:22px}.level-blurb{color:var(--ink-soft);font-size:14px;line-height:1.35}.level-count{color:var(--ink-soft);text-align:right;flex-shrink:0;font-size:13px}.level-count strong{color:var(--ink);font-size:20px;display:block}.setting{border:1.5px dashed var(--edge);cursor:pointer;background:#fbf8f1b3;border-radius:16px;align-items:flex-start;gap:12px;padding:14px;display:flex}.setting input{width:24px;height:24px;accent-color:var(--ink);flex-shrink:0;margin:2px 0 0}.setting span{flex-direction:column;gap:3px;font-size:16px;display:flex}.setting small{color:var(--ink-soft);font-size:14px;line-height:1.35}.footnote{text-align:center;color:var(--ink-soft);margin:0;font-size:14px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}}.tabs{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.tabscreen{flex-direction:column;gap:16px;display:flex}.tab-head{justify-content:space-between;align-items:flex-end;padding-top:6px;display:flex}.tab-head p{color:var(--ink-soft);transform-origin:0;margin:0;font-size:23px;line-height:1;transform:rotate(-2deg)}.tab-head h1{font-family:var(--serif);margin:0;font-size:44px;font-weight:400;line-height:1.05}.nav{z-index:10;padding:6px 8px max(8px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1.5px solid var(--edge);background:#f4eee1f0;justify-content:center;gap:4px;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{appearance:none;max-width:120px;min-height:58px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:14px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:13px;font-weight:700;display:flex;position:relative}.tab.on{color:var(--ink);background:#b9d3e88c}.tab .dot{background:var(--stamp);border-radius:50%;width:9px;height:9px;position:absolute;top:8px;right:calc(50% - 18px)}.level-pick{border:1.5px solid var(--edge);color:var(--ink-soft);background:#fbf8f1d9;border-radius:999px;align-self:flex-start;align-items:center;gap:8px;padding:6px 6px 6px 14px;font-size:15px;display:inline-flex}.level-pick select{appearance:none;font:inherit;color:var(--ink);background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2323365E' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center / 16px;cursor:pointer;border:0;border-radius:999px;min-height:40px;padding:8px 34px 8px 14px;font-weight:700}.map{margin:4px -4px 0;position:relative}.map-path{position:absolute;top:0;left:0;overflow:visible}.map-path path{fill:none;stroke-width:3.5px;stroke-linecap:round;stroke-dasharray:1 11}.map-path .walked{stroke:var(--stamp)}.map-path .ahead{stroke:#a99f8a}.node{--r:30px;transform:translate(-50%, calc(var(--r) * -1));text-align:center;flex-direction:column;align-items:center;gap:4px;width:150px;display:flex;position:absolute}button.node{appearance:none;cursor:pointer;background:0 0;border:0;padding:0}.node-name{font-family:var(--serif);background:#f4eee1d9;border-radius:8px;padding:1px 8px;font-size:16px;line-height:1.1}.node-name.big{font-size:21px}.node-stars{color:var(--gold-dark);align-items:center;gap:3px;font-size:13px;font-weight:700;display:inline-flex}.node-stars .star{width:15px;height:15px}.node-stamp{width:60px;height:60px;box-shadow:0 0 0 2px var(--stamp), 0 6px 14px -6px #23365e99;border:3px solid #fff;border-radius:50%;display:block;overflow:hidden}.node.here{--r:40px}.node-here{appearance:none;border:3px solid var(--ink);background:var(--paper-2);cursor:pointer;border-radius:50%;place-items:center;width:80px;height:80px;animation:2.2s ease-in-out infinite here;display:grid}.node-count{font-family:var(--serif);font-size:22px}.node-here-label{color:var(--stamp);font-size:22px;line-height:1;transform:rotate(-3deg)}@keyframes here{0%,to{box-shadow:0 0 0 5px #b8453a40,0 10px 20px -10px #23365eb3}50%{box-shadow:0 0 0 13px #b8453a12,0 10px 20px -10px #23365eb3}}.node.locked{--r:23px;opacity:.75}.node-lock{color:#8d8470;background:#fbf8f1b3;border:2px dashed #a99f8a;border-radius:50%;place-items:center;width:46px;height:46px;display:grid}.node-lock .ico{width:20px;height:20px}.node.locked .node-name{color:var(--ink-soft);font-size:14px}.play-card{bottom:calc(86px + env(safe-area-inset-bottom));z-index:5;background:var(--ink);color:var(--paper-2);border-radius:20px;align-items:center;gap:12px;padding:12px 12px 12px 18px;display:flex;position:sticky;box-shadow:0 18px 30px -16px #23365ee6}.play-card-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.play-card-title{font-family:var(--serif);font-size:22px}.play-card-sub{color:#d6deec;flex-wrap:wrap;align-items:center;gap:10px;font-size:14px;display:flex}.stage-dots{gap:4px;display:inline-flex}.stage-dots span{border:1.5px solid #ffffff80;border-radius:50%;width:9px;height:9px}.stage-dots .on{background:var(--gold);border-color:var(--gold)}.stage-dots .now{border-color:var(--gold)}.play-card .btn.primary{background:var(--gold);color:var(--ink);min-width:110px}.finished{text-align:center;color:var(--stamp);font-size:26px}.postcard{background:#fffdf8;border-radius:6px;margin:0;padding:10px 10px 12px;box-shadow:0 1px #e2d8c4,0 18px 34px -18px #23365e99}.postcard-img{aspect-ratio:3/2;border-radius:3px;position:relative;overflow:hidden}.postcard-art{object-fit:cover;width:100%;height:100%;display:block}.postcard-stamp{background:#fff;width:38px;height:46px;padding:4px;position:absolute;top:8px;right:8px;-webkit-mask:radial-gradient(circle at 3px 3px,#0000 2px,#000 2.5px) -3px -3px/6px 6px;mask:radial-gradient(circle at 3px 3px,#0000 2px,#000 2.5px) -3px -3px/6px 6px}.postcard-stamp span{background:var(--stamp);color:#fff;width:100%;height:100%;font-family:var(--serif);place-items:center;font-size:18px;display:grid}.postmark{color:#23365eb3;text-align:center;text-transform:uppercase;letter-spacing:.06em;border:2px solid #23365e8c;border-radius:50%;place-content:center;width:70px;height:70px;font-size:9px;font-weight:700;line-height:1.3;display:grid;position:absolute;top:14px;right:52px;transform:rotate(-14deg)}.postmark strong{font-size:10px}.postcard figcaption{flex-direction:column;gap:1px;padding:8px 4px 0;display:flex}.postcard figcaption .hand{color:var(--ink);font-size:23px;line-height:1.05}.postcard figcaption small{color:var(--ink-soft);font-size:13px}.postcard.compact{padding:6px 6px 8px}.postcard.compact figcaption{padding-top:5px}.postcard.compact figcaption .hand{font-size:20px}.postcard.compact .postcard-stamp{width:24px;height:30px;padding:3px;top:5px;right:5px}.postcard.compact .postcard-stamp span{font-size:12px}.album-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 14px;display:grid}.album-item{appearance:none;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.album-item.back{aspect-ratio:3/2.5;border:1.5px dashed var(--edge);cursor:default;background:#fbf8f1bf;border-radius:6px;position:relative}.back-lines{background:repeating-linear-gradient(#0000 0 14px,#e2d8c4 14px 15.5px) padding-box content-box;border-left:1.5px solid #e2d8c4;padding-left:10px;position:absolute;inset:18px 14px 30px 52%}.back-q{font-family:var(--serif);color:#cdbfa5;font-size:40px;position:absolute;top:44%;left:26%;transform:translate(-50%,-50%)}.back-name{color:#9d937e;font-size:13px;font-weight:700;position:absolute;bottom:8px;left:10px}.empty{color:var(--mine);margin:0;font-size:22px}.daily-card{border:1.5px solid var(--edge);background:#fbf8f1eb;border-radius:20px;flex-direction:column;gap:14px;padding:16px;display:flex;box-shadow:0 14px 28px -20px #23365e99}.daily-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.daily-card h2{font-family:var(--serif);margin:0;font-size:26px;font-weight:400}.daily-date{color:var(--ink-soft);margin:2px 0 0;font-size:15px}.streak{color:var(--stamp);flex-direction:column;flex-shrink:0;align-items:flex-end;line-height:1;display:flex}.streak strong{font-family:var(--serif);font-size:34px;font-weight:400}.streak span{font-size:13px;font-weight:700}.week{justify-content:space-between;display:flex}.day{width:38px;height:38px;color:var(--ink-soft);border:1.5px dashed #b8ae99;border-radius:50%;place-items:center;font-size:14px;font-weight:700;display:grid}.day.done{background:var(--ink);color:var(--paper-2);border:0}.day.today:not(.done){border:2.5px solid var(--gold);color:var(--ink)}.day.future{opacity:.5}.daily-done{background:#e3eee0;border-radius:14px;justify-content:center;align-items:center;gap:12px;min-height:56px;display:flex}.daily-done .hand{color:#3f7d55;font-size:22px}.daily-stars{gap:2px;display:inline-flex}.ach-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.ach{border:1.5px solid var(--edge);background:#fbf8f1cc;border-radius:16px;align-items:center;gap:14px;padding:12px 14px;display:flex}.ach-mark{width:54px;height:54px;font-family:var(--serif);color:#a99f8a;border:2px dashed #b8ae99;border-radius:50%;flex-shrink:0;place-items:center;font-size:18px;display:grid}.ach.got .ach-mark,.unlocked .ach-mark{background:var(--gold);color:var(--ink);border:2.5px solid var(--gold-dark);box-shadow:0 0 0 3px #f6ead0}.ach-mark.small{width:40px;height:40px;font-size:14px}.ach-body{flex-direction:column;flex:1;gap:2px;display:flex}.ach-body strong{font-family:var(--serif);font-size:19px;font-weight:400}.ach-body small{color:var(--ink-soft);font-size:14px;line-height:1.3}.ach:not(.got) .ach-body strong{color:var(--ink-soft)}.ach-date{color:#3f7d55;margin-top:2px;font-size:13px;font-weight:700}.ach-progress{color:var(--ink-soft);align-items:center;gap:8px;margin-top:4px;font-size:13px;display:flex}.ach-progress .bar{background:#e6dccb;flex:1;margin:0}.unlocked{flex-direction:column;gap:8px;margin:-6px 0 16px;padding:0;list-style:none;display:flex}.unlocked li{text-align:left;background:#f6ead0;border-radius:14px;align-items:center;gap:12px;padding:8px 12px;display:flex}.unlocked li span:last-child{flex-direction:column;display:flex}.unlocked small{color:var(--gold-dark);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:700}.unlocked strong{font-family:var(--serif);font-size:18px;font-weight:400}.reveal{z-index:30;background:var(--paper);position:fixed;inset:0;overflow-y:auto}.reveal-inner{z-index:1;max-width:440px;min-height:100%;padding:max(28px, env(safe-area-inset-top)) 18px max(22px, env(safe-area-inset-bottom));text-align:center;flex-direction:column;align-items:center;gap:10px;margin:0 auto;display:flex;position:relative}.reveal h1{font-family:var(--serif);margin:0;font-size:46px;font-weight:400;line-height:1.05}.reveal-stars{color:var(--gold-dark);align-items:center;gap:6px;margin:0;font-weight:700;display:inline-flex}.reveal-card{width:100%;margin:14px 0 4px}.reveal-note{color:var(--ink-soft);margin:0 0 8px}.reveal .done-actions{width:100%;margin-top:auto}.welcome,.league-form,.league-card{border:1.5px solid var(--edge);background:#fbf8f1eb;border-radius:20px;flex-direction:column;gap:14px;padding:18px 16px;display:flex;box-shadow:0 14px 28px -20px #23365e99}.welcome{text-align:center;align-items:center}.welcome h2,.league-form h2,.league-card h2{font-family:var(--serif);margin:0;font-size:26px;font-weight:400}.welcome p{color:var(--ink-soft);margin:0;line-height:1.5}.welcome .done-actions{width:100%}.welcome-art{width:100%;height:64px;margin-top:6px;position:relative}.welcome-art span{border:3px solid var(--paper-2);color:#fff;width:52px;height:52px;font-family:var(--serif);border-radius:50%;place-items:center;font-size:22px;display:grid;position:absolute;top:4px;left:calc(50% - 26px)}.field{color:var(--ink-soft);flex-direction:column;gap:6px;font-size:15px;font-weight:700;display:flex}.field input,.field select{font:inherit;color:var(--ink);border:1.5px solid var(--edge);background:#fff;border-radius:12px;min-height:52px;padding:0 14px;font-size:18px;font-weight:400}.field input:focus,.field select:focus{border-color:var(--mine);outline:3px solid #2f67b559}.code-input{letter-spacing:.2em;text-transform:uppercase;text-align:center;font-family:var(--serif)!important;font-size:26px!important}.colors{flex-wrap:wrap;gap:10px;display:flex}.swatch{appearance:none;border:3px solid var(--paper-2);width:44px;height:44px;box-shadow:0 0 0 1.5px var(--edge);cursor:pointer;border-radius:50%}.swatch.on{box-shadow:0 0 0 3px var(--ink)}.form-error{background:var(--wrong-bg);color:var(--stamp);border-radius:12px;margin:0;padding:10px 12px;font-weight:700}.league{flex-direction:column;gap:16px;display:flex}.invite{background:var(--ink);color:var(--paper-2);border-radius:20px;justify-content:space-between;align-items:center;gap:12px;padding:12px 12px 12px 18px;display:flex}.invite-label{color:#d6deec;font-size:13px;display:block}.invite-code{font-family:var(--serif);letter-spacing:.16em;font-size:28px;font-weight:400}.btn.small{min-height:48px;font-size:17px}.invite .btn.primary{background:var(--gold);color:var(--ink);min-width:110px}.league-sub{color:var(--ink-soft);margin:-10px 0 0;font-size:14px}.loading{color:var(--mine);margin:0;font-size:22px}.avatar{color:#fff;font-family:var(--serif);border:2.5px solid var(--paper-2);border-radius:50%;flex-shrink:0;place-items:center;display:inline-grid;box-shadow:0 0 0 1px #23365e26}.podium{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:8px;margin-top:4px;display:grid}.podium-spot{text-align:center;flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex;position:relative}.podium-spot.empty{min-height:1px}.medal{z-index:1;width:24px;height:24px;color:var(--ink);border:2px solid var(--paper-2);border-radius:50%;place-items:center;font-size:13px;font-weight:700;display:grid;position:absolute;top:-6px;right:calc(50% - 34px)}.p1 .medal{right:calc(50% - 40px)}.podium-name{font-family:var(--serif);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:17px;overflow:hidden}.podium-stars{color:var(--gold-dark);align-items:center;gap:4px;font-weight:700;display:inline-flex}.podium-stars .star{width:18px;height:18px}.podium-base{background:#e6dccb;border-radius:10px 10px 4px 4px;width:100%;margin-top:4px;display:block}.p1 .podium-base{background:#f1e3bd;height:56px}.p2 .podium-base{height:38px}.p3 .podium-base{background:#efdccd;height:26px}.rank,.today{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.rank li,.today li{background:#fff;border:1px solid #ece3d2;border-radius:14px;align-items:center;gap:12px;padding:8px 10px;display:flex}.rank li.me{border-color:var(--mine)}.rank-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:17px;overflow:hidden}.rank-stars{color:var(--gold-dark);align-items:center;gap:4px;font-weight:700;display:inline-flex}.today li:not(.did){background:0 0;border-style:dashed}.today-result{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.today-result .star{width:18px;height:18px}.today-result small{color:var(--ink-soft);font-size:12px}.today-pending{font-family:var(--hand);color:#a99f8a;font-size:20px;font-weight:700}.alone{text-align:center;color:var(--mine);margin:0;font-size:21px}.league-foot{color:var(--ink-soft);text-align:center;flex-direction:column;align-items:center;gap:6px;font-size:14px;display:flex}.linkbtn{appearance:none;color:var(--stamp);cursor:pointer;background:0 0;border:0;padding:8px;font-size:14px;text-decoration:underline}.nav .tab{font-size:12px}
