:root{--strike:#ff2e88;--chassis:#0a0a0b;--bone:#f2f0eb;--live:#00e58a;--caution:#ffb300;--blueprint:#2e9dff;--rail:#8c8c93;--print:#b9b6b1;--carbon:#5a5a5f;--seam:#2a2a2e;--plate:#141416;--mono:var(--font-mono), ui-monospace, "SF Mono", Menlo, Consolas, monospace;--display:var(--font-archivo), Archivo, system-ui, -apple-system, sans-serif;--kana:var(--font-klee), "Klee One", serif;--jp:var(--font-jp), "Noto Sans JP", system-ui, sans-serif;--gutter:28px;--pad-top:calc(44px + env(safe-area-inset-top));--pad-bottom:calc(36px + env(safe-area-inset-bottom));--chrome:calc(420px + env(safe-area-inset-top) + env(safe-area-inset-bottom));--background:var(--chassis);--foreground:var(--bone);--muted:var(--rail);--surface:var(--plate);--line:var(--seam);--shadow:#232327;--stroke:var(--bone)}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;height:100%}html,body{max-width:100vw;overflow-x:hidden}body{min-height:100%;color:var(--bone);background:var(--chassis);font-family:var(--display);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;display:flex}*{box-sizing:border-box;margin:0;padding:0}a{color:inherit}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}button:disabled{opacity:.35;cursor:default}button:not(:disabled):active{transform:translateY(1px)}.mono{font-family:var(--mono);text-transform:uppercase;letter-spacing:.09em;font-size:10px;line-height:1.4}.btnStrike{background:var(--strike);color:#000;letter-spacing:.02em;text-transform:uppercase;text-align:center;clip-path:polygon(0 0,100% 0,100% 100%,18px 100%,0 calc(100% - 18px));justify-content:center;align-items:center;font-size:21px;font-weight:900;display:flex}.btnSeam{border:1px solid var(--seam);background:var(--plate);color:var(--rail);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;text-align:center;justify-content:center;align-items:center;font-size:11px;display:flex}.btnLive{border-color:var(--live);color:var(--live);background:linear-gradient(180deg, color-mix(in srgb, var(--live) 22%, transparent), color-mix(in srgb, var(--live) 6%, transparent));font-size:13px;font-weight:800}.btnCaution{border-color:var(--caution);color:var(--caution);background:linear-gradient(180deg, color-mix(in srgb, var(--caution) 20%, transparent), color-mix(in srgb, var(--caution) 5%, transparent));font-size:13px;font-weight:800}.led{background:var(--live);width:7px;height:7px;box-shadow:0 0 8px var(--live);flex:none;display:inline-block}.legend{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--rail);font-size:10px}.grow{flex:1;min-height:12px}.bar{background:var(--chassis);border:1px solid var(--seam);height:7px;display:block}.bar>i{height:100%;width:var(--fill,0%);background:var(--rail);transition:width .25s;display:block}.barOn>i{background:var(--strike)}.frame{width:100%;max-width:430px;min-height:100dvh;padding:var(--pad-top) var(--gutter) var(--pad-bottom);isolation:isolate;flex-direction:column;flex:1;margin:0 auto;display:flex;position:relative}.livery{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.ghost{font-family:var(--jp);color:#0000;-webkit-text-stroke:1px #1d1d21;-webkit-user-select:none;user-select:none;font-weight:900;line-height:1;position:absolute}.ghostHome{font-size:290px;top:-58px;right:-64px}.ghostDone{font-size:230px;bottom:176px;right:-58px}.rail{background:repeating-linear-gradient(45deg, var(--strike) 0 7px, transparent 7px 14px);opacity:.18;border-left:1px solid var(--seam);pointer-events:none;width:13px;position:absolute;top:0;bottom:0;right:0}.appHead{justify-content:space-between;align-items:center;gap:12px;display:flex}.brand{letter-spacing:-.03em;white-space:nowrap;font-size:30px;font-weight:900}.onDevice{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--rail);font-size:9px}.trackList{flex-direction:column;gap:10px;margin-top:12px;display:flex}.track{text-align:left;border:1px solid var(--seam);background:var(--plate);width:100%;padding:16px 18px;display:block}.trackOn{border-color:var(--strike);background:linear-gradient(180deg, color-mix(in srgb, var(--strike) 20%, transparent), color-mix(in srgb, var(--strike) 5%, transparent))}.trackSelect{text-align:left;width:100%;display:block}.trackTop{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.trackName{align-items:baseline;gap:10px;display:flex}.trackGlyph{font-family:var(--kana);color:var(--rail);font-size:26px;font-weight:600;line-height:1}.trackOn .trackGlyph{color:var(--strike)}.trackLabel{letter-spacing:.01em;text-transform:uppercase;font-size:20px;font-weight:900}.trackCount{font-family:var(--mono);color:var(--rail);font-variant-numeric:tabular-nums;font-size:12px}.trackOn .trackCount{color:var(--strike)}.track .bar{margin-top:12px}.setToggle{gap:7px;margin-top:12px;display:flex}.setChip{border:1px solid var(--seam);background:var(--plate);color:var(--rail);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;padding:7px 12px;font-size:10px}.setChipOn{border-color:var(--strike);background:color-mix(in srgb, var(--strike) 14%, transparent);color:var(--strike)}.homeNote{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--rail);margin-bottom:16px;font-size:10px;line-height:1.8}.homeStart{padding:22px}.attribution{font-family:var(--mono);text-transform:uppercase;color:var(--carbon);letter-spacing:.1em;text-align:center;margin-top:14px;font-size:8px;line-height:1.7;text-decoration:none}.homeFoot{justify-content:center;gap:22px;display:flex}.settingsTitle{letter-spacing:-.03em;font-size:28px;font-weight:900;line-height:1}.settingsSection{margin-top:18px;margin-bottom:8px}.settingRows{flex-direction:column;gap:6px;display:flex}.settingRow{border:1px solid var(--seam);background:var(--plate);justify-content:space-between;align-items:center;gap:12px;padding:8px 8px 8px 13px;display:flex}.settingLabel{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.settingLegend{font-size:9px}.settingHint{color:var(--print);font-size:10px;line-height:1.3}.settingHintOff{color:var(--strike)}.doneTitle{letter-spacing:-.03em;margin-top:10px;font-size:44px;font-weight:900}.statRow{gap:10px;margin-top:26px;display:flex}.stat{background:var(--plate);border:1px solid var(--seam);flex:1;padding:18px}.statLabel{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:6px;font-size:9px;display:flex}.statLabel>i{background:currentColor;flex:none;width:7px;height:7px}.statGot{color:var(--live)}.statMissed{color:var(--caution)}.statValue{font-variant-numeric:tabular-nums;margin-top:10px;font-size:56px;font-weight:900;line-height:1}.missedList{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.missedChip{border:1px solid var(--caution);color:var(--caution);font-family:var(--kana);padding:8px 12px;font-size:24px;line-height:1}.missedMore{font-family:var(--mono);letter-spacing:.12em;color:var(--rail);align-self:center;font-size:11px}.trackSummary{border:1px solid var(--seam);background:var(--plate);margin-top:26px;padding:14px 16px}.trackSummaryHead{justify-content:space-between;align-items:center;gap:10px;display:flex}.chipLive{border:1px solid var(--live);background:color-mix(in srgb, var(--live) 12%, transparent);color:var(--live);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;padding:3px 7px;font-size:9px}.trackSummaryRow{justify-content:space-between;align-items:baseline;gap:10px;margin-top:10px;display:flex}.trackSummaryRow>b{font-size:18px;font-weight:900}.trackSummaryRow>span{font-family:var(--mono);color:var(--rail);font-variant-numeric:tabular-nums;font-size:11px}.trackSummary .bar{margin-top:11px}.session{width:100%;max-width:430px;min-height:100dvh;padding:var(--pad-top) var(--gutter) var(--pad-bottom);flex-direction:column;flex:1;margin:0 auto;display:flex;position:relative;overflow:hidden}.sessionHead{justify-content:space-between;align-items:center;gap:12px;display:flex}.sessionTrack{align-items:center;gap:8px;display:flex}.trackBadge{background:var(--bone);color:var(--chassis);font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;padding:4px 7px;font-size:9px;font-weight:800}.sessionLeft{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--rail);font-variant-numeric:tabular-nums;font-size:11px}.quit{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--rail);margin:-12px;padding:12px;font-size:11px}.revealing{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--live);align-items:center;gap:6px;font-size:10px;display:flex}.promptSlot{flex:none;height:116px;margin-top:26px;display:flex}.prompt{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.promptLabel{font-family:var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--strike);font-size:10px}.promptRomaji{margin-top:6px;font-size:88px;font-weight:900;line-height:1}.revealCard{border:1px solid var(--strike);background:linear-gradient(180deg, color-mix(in srgb, var(--strike) 16%, transparent), color-mix(in srgb, var(--strike) 4%, transparent));clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%);flex:1;align-items:center;gap:18px;padding:14px 18px;display:flex}.revealKana{font-family:var(--kana);color:var(--bone);font-size:58px;font-weight:600;line-height:1}.revealCol{flex-direction:column;align-items:flex-start;gap:7px;display:flex}.revealRomaji{letter-spacing:-.02em;font-size:28px;font-weight:900;line-height:1}.chipSeam{border:1px solid var(--seam);background:var(--plate);color:var(--rail);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;padding:5px 8px;font-size:10px}.canvasWrap{flex:none;justify-content:center;margin-top:24px;display:flex}.canvasBox{width:100%;height:max(220px, calc(100dvh - var(--chrome)));background:var(--bone);box-shadow:inset 0 0 0 1px var(--seam);-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;position:relative}.canvasBox:before,.canvasBox:after{content:"";pointer-events:none;position:absolute}.canvasBox:before{border-left:1px dashed #0a0a0b29;width:0;top:6%;bottom:6%;left:50%}.canvasBox:after{border-top:1px dashed #0a0a0b29;height:0;top:50%;left:6%;right:6%}.canvasTag{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:#0a0a0b66;z-index:3;pointer-events:none;font-size:9px;position:absolute;top:8px;left:10px}.ink{touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;z-index:1;width:100%;height:100%;position:absolute;inset:0}.inkFrozen{opacity:.3;pointer-events:none}.canvasOverlay{pointer-events:none;z-index:2;--shadow:transparent;--stroke:var(--strike);position:absolute;inset:0}.canvasOverlay svg{width:100%;height:100%;display:block}.strokeCounter{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#0a0a0b73;z-index:3;font-variant-numeric:tabular-nums;font-size:9px;position:absolute;bottom:8px;right:10px}.sessionActions{flex-direction:column;justify-content:flex-end;gap:10px;padding-top:20px;display:flex}.actionBar{flex:none;height:62px}.actionRow{flex:none;gap:10px;height:56px;display:flex}.actionRow>*{flex:1}.homeActions{flex-direction:column;gap:10px;display:flex}.bankStrip{text-align:left;border:1px solid var(--seam);background:var(--plate);width:100%;color:var(--rail);align-items:center;gap:10px;margin-top:10px;padding:12px 18px;display:flex}.bankStripCount{font-family:var(--mono);color:var(--strike);font-variant-numeric:tabular-nums;font-size:15px;font-weight:600}.bankStripCountZero{color:var(--carbon)}.bankStripArrow{font-family:var(--mono);color:var(--carbon);font-size:9px}.bankFrame,.detailFrame{height:100dvh;overflow:hidden}.bankHeadCount{color:var(--strike);font-variant-numeric:tabular-nums}.bankHeadCountZero{color:var(--carbon)}.bankFlash{background:var(--bone);color:var(--strike)}.bankEmpty{flex:1;justify-content:center;align-items:center;display:flex}.bankEmptyLine{font-family:var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--rail);text-align:center;font-size:10px}.bankGrid{overscroll-behavior:contain;flex:1;min-height:0;margin-top:20px;overflow-y:auto}.bankSheet{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.thumb{aspect-ratio:1;border:1px solid var(--seam);background:var(--plate);display:block;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%;display:block}.bankAlert{border:1px solid var(--caution);background:color-mix(in srgb, var(--caution) 10%, transparent);color:var(--caution);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;margin-top:16px;padding:11px 13px;font-size:9.5px;line-height:1.6}.bankCapture{cursor:pointer;margin-top:16px;padding:22px;position:relative}.bankCapture:active{transform:translateY(1px)}.bankInput{opacity:0;width:1px;height:1px;position:absolute}.bankExport{margin-top:10px;padding:15px}.bankFooter{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--carbon);text-align:center;margin-top:14px;font-size:8.5px}.bankFooterWarn{color:var(--caution)}.detailPosition{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--carbon);font-variant-numeric:tabular-nums;font-size:10px}.detailPhoto{flex:1;justify-content:center;align-items:center;min-height:0;margin:16px 0;display:flex}.detailPhoto img{object-fit:contain;border:1px solid var(--seam);max-width:100%;max-height:100%;display:block}.detailMeta{border:1px solid var(--seam);background:var(--plate);clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%);padding:15px 17px}.detailStamp{font-family:var(--mono);letter-spacing:.1em;color:var(--print);font-variant-numeric:tabular-nums;font-size:11px}.noteAdd{text-align:left;width:100%;font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--rail);margin-top:11px;font-size:10px;display:block}.noteText{text-align:left;width:100%;color:var(--bone);margin-top:10px;font-size:13px;line-height:1.45;display:block}.noteInput{border:1px solid var(--strike);background:var(--chassis);width:100%;color:var(--bone);caret-color:var(--strike);font-family:var(--display);outline:none;margin-top:10px;padding:10px 12px;font-size:13px;display:block}.btnDelete{border:1px solid var(--caution);background:var(--plate);width:100%;color:var(--caution);text-align:center;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;margin-top:12px;padding:17px;font-size:12px;font-weight:800;display:block}.btnDeleteArmed{background:linear-gradient(180deg, color-mix(in srgb, var(--caution) 22%, transparent), color-mix(in srgb, var(--caution) 8%, transparent))}.verify{width:100%;max-width:64rem;margin:0 auto;padding:2rem 1rem 3rem}.verifyHeader h1{font-size:1.1rem;font-weight:600}.verifyHeader p{color:var(--muted);max-width:40rem;margin-top:.35rem;font-size:.85rem}.verifyReplay{background:var(--surface);border:1px solid var(--line);border-radius:.5rem;margin-top:.85rem;padding:.5rem 1rem}.verifyGrid{grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr));gap:.6rem;margin-top:1.5rem;display:grid}.strokeChar{background:var(--surface);border:1px solid var(--line);text-align:left;border-radius:.6rem;flex-direction:column;gap:.3rem;padding:.5rem .5rem .4rem;display:flex}.strokeCharSvg{aspect-ratio:1;width:100%}.strokeCharSvg svg{display:block}.strokeCharLabel{color:var(--muted);justify-content:space-between;font-size:.75rem;display:flex}.strokeCharCount{font-variant-numeric:tabular-nums}.strokeCharError{color:#e05d5d}.verifyFooter{color:var(--muted);margin-top:2rem;font-size:.72rem}.verifyFooter a{text-decoration:underline}.verifyCompare,.verifySet{margin-top:2.25rem}.verifyCompare h2,.verifySet h2{font-size:.95rem;font-weight:600}.verifySetMeta{color:var(--muted);margin-left:.4rem;font-size:.72rem;font-weight:400}.verifyCompare p,.verifySet p{color:var(--muted);max-width:40rem;margin-top:.3rem;font-size:.8rem}.verifyPair{flex-wrap:wrap;gap:1rem;margin-top:1rem;display:flex}.screenHead{justify-content:space-between;align-items:center;gap:12px;display:flex}.backLink,.screenTitle{font-family:var(--mono);letter-spacing:.2em;color:var(--rail);white-space:nowrap;font-size:10px}.backLink{letter-spacing:.16em;margin:-12px;padding:12px;font-size:11px}.legendSpaced{margin-top:28px}.legendFaint{color:var(--carbon);letter-spacing:.18em;margin-top:12px;font-size:9px}.joker{align-items:center;gap:12px;min-width:0;display:flex}.joker-top{flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:10px}.jokerMark{object-fit:contain;filter:drop-shadow(0 12px 22px #ff2e8847);transform-origin:40% 62%;flex:none}.jokerPanel{border:1px solid var(--seam);background:var(--plate);flex:1;min-width:0;padding:10px 13px 11px;position:relative}.jokerTail{background:var(--plate);width:10px;height:10px;position:absolute;transform:rotate(45deg)}.joker-left .jokerTail{border-left:1px solid var(--seam);border-bottom:1px solid var(--seam);margin-top:-5px;top:50%;left:-6px}.joker-top .jokerPanel{flex:none;width:100%}.joker-top .jokerTail{border-left:1px solid var(--seam);border-top:1px solid var(--seam);top:-6px;left:24px}.jokerTag{font-family:var(--mono);letter-spacing:.2em;color:var(--strike);margin-bottom:4px;font-size:8px}.jokerLine{font-family:var(--font-archivo), Archivo, var(--jp);color:var(--bone);min-height:2.9em;font-size:13px;line-height:1.45}.jokerRest{visibility:hidden}.jokerSaying:after{content:"";vertical-align:-.14em;background:var(--strike);width:2px;height:.95em;margin-left:1px;display:inline-block}.jokerHome{margin-top:20px}.jokerDeck{margin-top:22px}.jokerRound{flex:1;min-width:0}.jokerRound .jokerLine{font-size:12px}.deckList{flex-direction:column;gap:8px;margin-top:11px;display:flex}.deckRow{border:1px solid var(--seam);background:var(--plate);text-align:left;padding:14px 16px}.deckRowOn{border-color:var(--strike);background:linear-gradient(180deg, color-mix(in srgb, var(--strike) 20%, transparent), color-mix(in srgb, var(--strike) 5%, transparent))}.deckRowTop{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.deckRowName{align-items:baseline;gap:10px;display:flex}.deckGlyph{font-family:var(--jp);color:var(--rail);font-size:22px;font-weight:900}.deckRowOn .deckGlyph,.deckRowOn .deckCount{color:var(--strike)}.deckLabel{font-size:18px;font-weight:900}.deckCount{font-family:var(--mono);color:var(--rail);white-space:nowrap;font-size:11px}.bankStripOn{border-color:var(--strike)}.btnInert{border:1px solid var(--seam);background:var(--plate);color:var(--carbon);letter-spacing:.02em;text-align:center;clip-path:polygon(0 0,100% 0,100% 100%,18px 100%,0 calc(100% - 18px));font-size:21px;font-weight:900}.panel{border:1px solid var(--seam);background:var(--plate);text-align:left;width:100%;margin-top:9px;padding:16px;display:block}.panelNotch{clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%)}.panelName{letter-spacing:-.01em;white-space:nowrap;font-size:19px;font-weight:900;line-height:1}.panelCount{font-family:var(--mono);color:var(--bone);font-size:16px;font-weight:600;line-height:1}.barBone>i{background:var(--bone)}.deckCharacters{margin-top:11px}.deckCharactersTop{justify-content:space-between;align-items:baseline;display:flex}.deckCharacters .bar{height:6px;margin-top:13px}.deckDakuten{justify-content:space-between;align-items:center;margin-top:14px;display:flex}.toggle{border:1px solid var(--seam);display:flex}.toggleOpt{font-family:var(--mono);letter-spacing:.14em;color:var(--carbon);padding:5px 10px;font-size:9px}.toggleOn{background:var(--bone);color:var(--chassis)}.deckNote{font-family:var(--mono);letter-spacing:.1em;color:var(--carbon);margin-top:12px;font-size:9px}.setRow{margin-top:9px}.setRowTop{align-items:center;gap:14px;display:flex}.setGlyph{font-family:var(--jp);color:var(--strike);font-size:34px;font-weight:900;line-height:1}.setRowName{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.setRowMeta{font-family:var(--mono);letter-spacing:.16em;color:var(--rail);white-space:nowrap;font-size:9px}.setRowNumbers{text-align:right;flex-direction:column;align-items:flex-end;gap:5px;display:flex}.setHead{justify-content:space-between;align-items:baseline;margin-top:24px;margin-bottom:12px;display:flex}.setHeadTitle{letter-spacing:-.03em;font-size:28px;font-weight:900}.setMeaning{border:1px solid var(--seam);background:var(--plate);justify-content:space-between;align-items:center;gap:12px;padding:8px 8px 8px 13px;display:flex}.setMeaningLabel{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.setMeaningLegend{font-size:9px}.setMeaningHint{color:var(--print);white-space:nowrap;font-size:10px;line-height:1.3}.setMeaningHintOff{color:var(--strike)}.toggleTap .toggleOpt{appearance:none;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;min-width:56px;min-height:44px;padding:0;font-weight:800;display:flex}.toggleTap .toggleOn{background:var(--bone);color:var(--chassis)}.toggleTap .toggleStrike.toggleOn{background:var(--strike);color:#000}.setHand{margin:14px calc(var(--gutter) * -1) 0;flex-direction:column;flex:1;justify-content:center;gap:10px;padding:0 12px;display:flex}.setHand+.setTotals{margin-top:14px}.setHandRow{align-items:flex-start;display:flex;position:relative}.setSlot{flex:none;width:84px;height:118px;position:relative}.setHandRow .setSlot+.setSlot{margin-left:min(0px, calc((100% - var(--cols) * 84px) / (var(--cols) - 1)))}.setSlotCard{opacity:0;will-change:translate, rotate, scale, transform;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.setSlotCard{will-change:auto}}.card{box-sizing:border-box;text-align:left;background:var(--plate);border:1px solid var(--seam);color:var(--bone);flex-direction:column;display:flex;position:relative;overflow:hidden;container-type:inline-size}.card-prompt:before,.card-shiny:before,.card-worn:before{content:"";pointer-events:none;position:absolute;inset:0}.card-prompt:before{background:repeating-linear-gradient(45deg,#f2f0eb09 0 7px,#0000 7px 14px)}.card-shiny{background:var(--strike);border-color:var(--strike);color:#000;box-shadow:0 0 34px -10px #ff2e888c}.card-shiny:before{background:repeating-linear-gradient(45deg,#00000024 0 7px,#0000 7px 14px)}.card-worn{color:var(--rail);background:#101011;border-color:#1d1d21}.card-worn:before{background:repeating-linear-gradient(-45deg,#f2f0eb08 0 1px,#0000 1px 5px)}.card-round{clip-path:polygon(0 0,100% 0,100% 100%,14px 100%,0 calc(100% - 14px));flex:none;width:150px;height:210px;padding:12px}.card-earn{clip-path:polygon(0 0,100% 0,100% 100%,18px 100%,0 calc(100% - 18px));flex:none;width:214px;height:300px;padding:16px}.card-earned{clip-path:polygon(0 0,100% 0,100% 100%,8px 100%,0 calc(100% - 8px));flex:none;justify-content:space-between;width:100%;height:100%;padding:7px 7px 8px}.card-earned.card-shiny{box-shadow:0 0 22px -8px #ff2e888c}.card-shelf{aspect-ratio:5/7;clip-path:polygon(0 0,100% 0,100% 100%,10px 100%,0 calc(100% - 10px));flex:none;justify-content:space-between;width:100%;padding:8px}.cardHead{justify-content:space-between;align-items:flex-start;gap:6px;display:flex;position:relative}.cardChip{font-family:var(--mono);letter-spacing:.16em;white-space:nowrap;border:1px solid var(--seam);color:var(--rail);padding:3px 6px;font-size:8px}.card-shiny .cardChip{background:var(--bone);border-color:var(--bone);color:#000;font-weight:600}.card-worn .cardChip{color:var(--carbon);border-color:#1d1d21}.cardChipPlain{letter-spacing:.18em;color:var(--carbon);border:none;padding:0}.card-earned .cardChip,.card-shelf .cardChip{letter-spacing:.14em;color:var(--carbon);border:none;padding:0;font-size:7px}.card-earned .cardChip{letter-spacing:.12em;font-size:8px}.card-earned.card-shiny .cardChip,.card-shelf.card-shiny .cardChip{color:#000;background:0 0;font-weight:600}.cardMark{font-family:var(--jp);color:currentColor;font-size:14px;font-weight:900;line-height:1}.cardMarkStrike{color:var(--strike)}.cardMid{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:7px;min-height:0;display:flex;position:relative}.cardWord{font-family:var(--jp);white-space:nowrap;font-weight:900;line-height:1}.cardRomaji{font-family:var(--mono);letter-spacing:.18em;color:var(--rail);white-space:nowrap;font-size:9px;font-weight:600}.card-shiny .cardRomaji,.card-shiny .cardReading,.card-shiny .cardKind{color:#000000b8}.card-earned .cardRomaji,.card-shelf .cardRomaji{letter-spacing:.1em;font-size:7px;overflow:hidden}.card-earned .cardRomaji{letter-spacing:.02em}.card-earned.card-worn .cardRomaji{color:var(--carbon)}.card-earned .cardMid,.card-shelf .cardMid{justify-content:center}.cardReading{font-family:var(--jp);letter-spacing:.14em;color:var(--rail);white-space:nowrap;font-size:11px;font-weight:400}.cardReadingBig{font-family:var(--jp);letter-spacing:0;color:var(--bone);font-weight:700;line-height:1}.cardPromptRomaji{letter-spacing:-.01em;white-space:nowrap;font-weight:900;line-height:1}.cardFoot{position:relative}.cardRule{background:var(--seam);height:1px;margin-bottom:8px;display:block}.card-shiny .cardRule{background:#0000006b}.card-worn .cardRule{background:#1d1d21}.cardMeaning{letter-spacing:-.01em;white-space:nowrap;font-size:14px;font-weight:900;line-height:1;display:block;overflow:hidden}.card-earn .cardMeaning{font-size:18px}.cardMeaningOff{height:14px;font-family:var(--mono);letter-spacing:.18em;color:var(--carbon);white-space:nowrap;align-items:center;gap:6px;font-size:8px;display:flex}.cardMeaningDash{background:var(--carbon);width:14px;height:1px;display:inline-block}.cardKind{font-family:var(--mono);letter-spacing:.14em;color:var(--carbon);white-space:nowrap;margin-top:4px;font-size:8px;display:block;overflow:hidden}.card-back{aspect-ratio:5/7;border-color:var(--strike);background:var(--chassis) repeating-linear-gradient(45deg, #ff2e8842 0 6px, transparent 6px 12px);justify-content:center;align-items:center;width:100%}.cardBackMark{font-family:var(--jp);color:var(--strike);font-size:16px;font-weight:900}.cardOverlay{z-index:20;background:#0a0a0bdb;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.setRowWords{white-space:nowrap;font-size:12px}.setTotals{border:1px solid var(--seam);background:var(--plate);padding:14px 17px}.setTotalsRow{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.setTotal{font-family:var(--mono);letter-spacing:.1em;color:var(--bone);white-space:nowrap;font-size:11px}.setTotal-shiny{color:var(--strike)}.setTotal-worn{color:var(--rail)}.setTotalZero{color:var(--carbon)}.collectionLink{border-top:1px solid var(--seam);width:100%;font-family:var(--mono);letter-spacing:.18em;color:var(--print);text-align:left;margin-top:13px;padding-top:12px;font-size:10px;display:block}.setTotals+.actionBar{margin-top:10px}.screenHeadStick{z-index:2;background:var(--chassis);margin-top:-10px;padding:10px 0;position:sticky;top:0}.collectionList{flex-direction:column;gap:22px;margin-top:20px;display:flex}.collectionRow{border-bottom:1px solid var(--seam);padding-bottom:20px}.collectionHead{align-items:baseline;gap:10px;margin-bottom:10px;display:flex}.collectionWord{font-family:var(--jp);color:var(--bone);white-space:nowrap;font-size:20px;font-weight:900;line-height:1}.collectionMark{color:var(--strike);opacity:.55;font-style:normal}.collectionMeaning{min-width:0;font-family:var(--mono);letter-spacing:.16em;color:var(--carbon);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:9px;overflow:hidden}.collectionTotal{font-family:var(--mono);letter-spacing:.1em;color:var(--print);white-space:nowrap;font-size:11px}.collectionRowEmpty .collectionTotal{color:var(--carbon)}.collectionCards{align-items:flex-start;gap:9px;display:flex}.collectionSlot{flex-direction:column;flex:1;align-items:center;gap:7px;min-width:0;display:flex}.shelfSlot{aspect-ratio:5/7;border:1px dashed var(--seam);clip-path:polygon(0 0,100% 0,100% 100%,10px 100%,0 calc(100% - 10px));justify-content:center;align-items:center;width:100%;display:flex}.shelfSlotStock{font-family:var(--mono);letter-spacing:.14em;color:var(--carbon);font-size:8px}.collectionTimes{font-family:var(--mono);color:var(--bone);font-size:13px;font-weight:600}.collectionSlot-shiny .collectionTimes{color:var(--strike)}.collectionSlot-worn .collectionTimes{color:var(--rail)}.collectionTimesZero{color:var(--carbon)}.collectionSlot .card-shiny{box-shadow:0 0 22px -8px #ff2e888c}.dialogScrim{z-index:30;padding:var(--gutter);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a0a0bb8;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialogPanel{border:1px solid var(--seam);background:var(--plate);clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%);width:100%;max-width:374px;padding:20px}.dialogActions{flex-direction:column;gap:9px;margin-top:20px;display:flex}.dialogBtn{flex:none;height:54px;padding:0;font-size:16px}.frameBehindDialog>:not(.dialogScrim){pointer-events:none}@media (prefers-reduced-motion:reduce){.dialogScrim{transition:none}}.roundHead{align-items:center;gap:8px;padding-right:15px;display:flex}.roundChip{background:var(--strike);color:#000;font-family:var(--mono);letter-spacing:.16em;white-space:nowrap;padding:4px 7px;font-size:9px;font-weight:800}.roundChipBone{background:var(--bone);color:var(--chassis)}.roundDeck{font-family:var(--mono);letter-spacing:.14em;color:var(--rail);white-space:nowrap;flex:1;font-size:10px}.roundTop{align-items:stretch;gap:12px;margin-top:20px;display:flex}.roundCard{opacity:0;will-change:transform, opacity, filter;flex:none}.roundCardPeek .cardMeaning{animation:.22s ease-out both meaningPeek}@keyframes meaningPeek{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.roundCardPeek .cardMeaning{animation:none}}.meltFilter{width:0;height:0;position:absolute}.round .canvasWrap{margin-top:18px}.canvasFoot{font-family:var(--mono);letter-spacing:.14em;color:#0a0a0b73;white-space:nowrap;z-index:3;font-size:9px;position:absolute;bottom:8px;right:10px}.btnGrade{text-align:center;letter-spacing:.02em;border:1px solid;flex:1;padding:18px;font-size:16px;font-weight:900}.wordReveal{z-index:2;pointer-events:auto;--stroke:#ff2e88e6;--shadow:#ff2e8824;align-items:center;display:flex;position:absolute;inset:0;container-type:size}.wordRevealCell{flex:none;justify-content:center;align-items:center;height:100%;display:flex;position:relative}.wordRevealGlyph{aspect-ratio:1;width:min(100%,100cqh)}.wordRevealGlyph svg{display:block}.wordRevealSmall{transform-origin:0 100%}.handGhost{z-index:25;pointer-events:none;will-change:transform, opacity;justify-content:center;align-items:center;position:fixed}.roundHand{display:inline-block}.ghostResult{font-size:250px;bottom:200px;right:-52px}.resultCount{letter-spacing:-.04em;margin-top:28px;font-size:64px;font-weight:900;line-height:.92}.resultCountWord{letter-spacing:-.01em;margin-left:.14em;font-size:26px}.resultTally{align-items:center;gap:9px;margin-top:14px;display:flex}.resultShiny{font-family:var(--mono);letter-spacing:.14em;background:var(--strike);color:#000;white-space:nowrap;padding:5px 8px;font-size:10px;font-weight:800}.resultShinyCold{background:var(--plate);color:var(--carbon)}.resultRest{font-family:var(--mono);letter-spacing:.14em;color:var(--rail);white-space:nowrap;font-size:10px}.resultScreen .jokerMark{transform-origin:70% 60%}.resultRows{margin:16px calc(var(--gutter) * -1) 0;flex-direction:column;flex:1;justify-content:center;gap:12px;padding:0 12px;display:flex}.resultRow{align-items:flex-start;display:flex;position:relative}.revealSlot{perspective:600px;cursor:pointer;will-change:transform;flex:none;width:84px;height:118px;position:relative}.resultRow .revealSlot+.revealSlot{margin-left:min(0px, calc((100% - var(--cols) * 84px) / (var(--cols) - 1)))}.revealInner{transform-style:preserve-3d;transition:transform .24s cubic-bezier(.3,.6,.3,1);position:absolute;inset:0;transform:rotateY(180deg)}.revealUp .revealInner{transform:rotateY(0)}.resultSnapped .revealInner{transition:none}.revealFace{backface-visibility:hidden;clip-path:polygon(0 0,100% 0,100% 100%,8px 100%,0 calc(100% - 8px));display:flex;position:absolute;inset:0;overflow:hidden}.revealFace>.card{width:100%;height:100%}.revealFaceBack{transform:rotateY(180deg)}.cardShine{pointer-events:none;mix-blend-mode:screen;background:linear-gradient(105deg,#0000 40%,#ffffff2e 47%,#ffffffd1 50%,#ffffff2e 53%,#0000 60%);position:absolute;inset:-30% -60%;transform:translate(-70%)}.revealShining .cardShine{animation:3s linear infinite cardShine}@keyframes cardShine{0%{animation-timing-function:cubic-bezier(.4,0,.2,1);transform:translate(-70%)}23.33%{transform:translate(70%)}to{transform:translate(70%)}}@media (prefers-reduced-motion:reduce){.revealInner{transition:none}.resultScreen{animation:.16s ease-out both resultFade}}@keyframes resultFade{0%{opacity:0}to{opacity:1}}.resultNote{font-family:var(--mono);letter-spacing:.14em;color:var(--carbon);min-height:1.7em;font-size:9px;line-height:1.7}.btnBone{background:var(--bone);color:var(--chassis);letter-spacing:.02em;text-align:center;clip-path:polygon(0 0,100% 0,100% 100%,18px 100%,0 calc(100% - 18px));font-size:21px;font-weight:900}.resultNote+.btnBone{margin-top:16px}.creditList{margin-top:11px;list-style:none}.creditRow{border-top:1px solid var(--seam);flex-wrap:wrap;align-items:baseline;gap:8px;padding:13px 0;display:flex}.creditName{letter-spacing:-.01em;font-size:15px;font-weight:900;text-decoration:none}a.creditName{border-bottom:1px solid var(--strike)}.creditLicense{font-family:var(--mono);letter-spacing:.14em;color:var(--rail);font-size:9px}.creditNote{text-align:right;font-family:var(--mono);letter-spacing:.1em;color:var(--carbon);white-space:nowrap;flex:1;font-size:9px}@media (prefers-reduced-motion:reduce){.bar>i{transition:none}}.jokerDrill{margin-top:16px}.session{--chrome:calc(524px + env(safe-area-inset-top) + env(safe-area-inset-bottom))}.round{--chrome:calc(508px + env(safe-area-inset-top) + env(safe-area-inset-bottom))}.jokerDrill .jokerLine{font-size:12px}.board{width:100%;max-width:1040px;padding:40px var(--gutter) calc(30vh + 48px);flex-direction:column;gap:40px;margin:0 auto;display:flex}.boardHead{flex-direction:column;gap:12px;display:flex}.boardTags{flex-wrap:wrap;gap:8px;display:flex}.boardTag{font-family:var(--mono);letter-spacing:.16em;color:var(--bone);background:#ffffff1c;padding:4px 8px;font-size:10px;font-weight:800}.boardTagStrike{background:var(--strike);color:var(--chassis)}.boardTagBlue{background:var(--blueprint);color:var(--chassis)}.boardTagGhost{box-shadow:inset 0 0 0 1px var(--seam);color:var(--rail);background:0 0}.boardHead h1{letter-spacing:-.03em;font-size:26px;font-weight:900;line-height:1.1}.boardHead p,.boardNote{font-family:var(--mono);color:var(--rail);max-width:76ch;font-size:12px;line-height:1.6}.boardHead code{color:var(--bone)}.boardActions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:4px;display:flex}.boardMissing{font-family:var(--mono);color:var(--caution);letter-spacing:.04em;font-size:11px;line-height:1.7}.boardRigs{background:var(--seam);border:1px solid var(--seam);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1px;display:grid}.rig{background:var(--plate);flex-direction:column;gap:12px;padding:18px;display:flex}.rigHead{flex-direction:column;gap:6px;display:flex}.rigTag{color:var(--bone);font-weight:800}.rigBlurb{color:var(--print);text-wrap:pretty;font-size:12.5px;line-height:1.55}.rigRow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rigRowTight{gap:6px}.rigBtn{flex:none;height:38px;padding:0 14px}.rigChip{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--seam);color:var(--rail);background:0 0;padding:6px 9px;font-size:10px}.rigChipOn{border-color:var(--strike);color:var(--strike)}.rigCanvas{background:var(--bone);height:200px;box-shadow:inset 0 0 0 1px var(--seam);position:relative}.rigMeter{grid-template-columns:auto minmax(0,1fr) 64px;align-items:center;gap:8px;margin-top:8px;display:grid}.rigMeterLabel,.rigMeterValue{font-family:var(--mono);letter-spacing:.16em;color:var(--rail);font-size:9px}.rigMeterValue{text-align:right;font-variant-numeric:tabular-nums}.rigMeterTrack{background:var(--seam);height:4px}.rigMeterFill{background:var(--strike);height:100%;transition:width 60ms linear}.rigPanel{padding:4px 0}.rigTimeline{border:1px solid var(--seam);max-height:160px;font-family:var(--mono);color:var(--rail);padding:8px 10px;font-size:10.5px;line-height:1.7;list-style:none;overflow:auto}.rigTimeline li{gap:12px;display:flex}.rigTimelineAt{color:var(--carbon);white-space:pre;font-variant-numeric:tabular-nums}.rigTimelineName{color:var(--print)}.rigChrome{flex-direction:column;gap:12px;display:flex}.rigDecks{background:var(--seam);border:1px solid var(--seam);flex-direction:column;gap:1px;display:flex}.rigDeck{background:var(--chassis);color:var(--print);font-family:var(--mono);letter-spacing:.16em;text-align:left;padding:11px 12px;font-size:11px}.rigDeckOn{color:var(--strike);background:var(--plate)}.rigCard{border:1px solid var(--seam);background:var(--plate);width:84px;height:118px;color:var(--rail);font-family:var(--mono);letter-spacing:.14em;padding:8px;font-size:9px;transition:transform .14s}.rigCardUp{border-color:var(--bone);color:var(--bone);transform:translateY(-10px)}.boardTier{flex-direction:column;gap:14px;display:flex}.boardTierHead{flex-wrap:wrap;align-items:baseline;gap:11px;display:flex}.boardTierHead b{font-size:14px;font-weight:700}.cueList{background:var(--seam);border:1px solid var(--seam);flex-direction:column;gap:1px;display:flex}.cue{background:var(--plate);flex-direction:column;gap:7px;padding:14px 16px;display:flex}.cueTop{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.cueDot{background:var(--carbon);flex:none;align-self:center;width:7px;height:7px}.cue-ready .cueDot{background:var(--live)}.cue-missing .cueDot{background:var(--caution)}.cue-synth .cueDot{background:var(--blueprint)}.cueName{font-family:var(--mono);color:var(--bone);font-size:13px;font-weight:800}.cueFrom,.cueSpec,.cueWhere,.cueState{font-family:var(--mono);letter-spacing:.06em;color:var(--rail);font-size:10.5px}.cueFrom{color:var(--carbon)}.cueSpec{letter-spacing:.08em;text-align:right}.cueGrow{flex:1}.cueNote{color:var(--print);text-wrap:pretty;max-width:88ch;font-size:13px;line-height:1.6}.cueAmend{font-family:var(--mono);color:var(--caution);max-width:88ch;font-size:11px;line-height:1.6}.cueActions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:2px;display:flex}.cue-missing .cueState{color:var(--caution)}.cue-ready .cueState{color:var(--live)}.cueReal{font-family:var(--mono);letter-spacing:.06em;color:var(--live);border:1px solid #0000;padding:2px 6px;font-size:10.5px}.cueRealOff{color:var(--caution);border-color:var(--caution)}.cueHeld{font-family:var(--mono);letter-spacing:.16em;color:var(--chassis);background:var(--caution);padding:3px 6px;font-size:9px}.cueBtn{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;border:1px solid var(--seam);background:var(--chassis);color:var(--bone);align-items:center;padding:7px 11px;font-size:10px;text-decoration:none;display:inline-flex}.cueBtn:hover{border-color:var(--bone)}.cueBtnGhost{color:var(--rail)}.boardSilent{color:var(--rail);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px 28px;font-size:12.5px;line-height:1.6;display:grid}.boardSilent b{color:var(--print)}.ladder{font-family:var(--mono);flex-direction:column;gap:6px;font-size:11.5px;display:flex}.ladderRow{grid-template-columns:72px minmax(0,1fr);align-items:center;gap:14px;display:grid}.ladderRow .ladderBar{background:var(--print);grid-area:1/2;align-self:center;height:8px}.ladderRow .ladderBarHot{background:var(--strike)}.ladderDb{color:var(--rail);text-align:right}.ladderDbHot{color:var(--strike);font-weight:800}.ladderCues{color:var(--print);background:var(--chassis);grid-area:1/2;justify-self:end;padding-left:12px}.boardLog{border-top:1px solid var(--seam);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);max-height:26vh;padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom));z-index:40;background:#0a0a0bf0;position:fixed;bottom:0;left:0;right:0;overflow:auto}.boardLogHead{justify-content:space-between;align-items:center;gap:12px;max-width:1040px;margin:0 auto 6px;display:flex}.boardLog ol{max-width:1040px;font-family:var(--mono);margin:0 auto;font-size:11px;line-height:1.8;list-style:none}.boardLog li{align-items:baseline;gap:10px;display:flex}.logHit .logMark{color:var(--live)}.logMiss .logMark,.logWhy{color:var(--caution)}.logName{color:var(--bone);min-width:15ch}.logAt,.logAs,.logIdle{color:var(--carbon)}.logAt{font-variant-numeric:tabular-nums}.cardView{flex-direction:column;gap:18px}.receiptTrack{scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:36px;width:100%;max-width:100vw;padding:0 calc(50% - 107px);display:flex;overflow:auto hidden}.receiptTrack::-webkit-scrollbar{display:none}.cardView:not(.cardViewMany) .receiptTrack{justify-content:center;overflow-x:hidden}.receiptCard{width:214px;height:300px;color:inherit;font:inherit;scroll-snap-align:center;scroll-snap-stop:always;touch-action:pan-x;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;cursor:default;background:0 0;border:0;flex:none;padding:0;position:relative}.receiptCard:focus-visible{outline:1px dashed var(--bone);outline-offset:4px}.receiptCard .receiptHeld{opacity:1;position:absolute;inset:0}.receiptCard[data-ink=fade] .receiptHeld{opacity:0;transition:opacity .3s ease-out}.receiptBody{background:var(--bone);flex:1;justify-content:center;align-items:center;min-height:0;margin-top:10px;display:flex;position:relative;overflow:hidden}.receiptBox{flex:none;position:relative}.receiptBox:before,.receiptBox:after{content:"";pointer-events:none;z-index:1;position:absolute}.receiptBox:before{border-left:1px dashed #0a0a0b29;width:0;top:6%;bottom:6%;left:50%}.receiptBox:after{border-top:1px dashed #0a0a0b29;height:0;top:50%;left:6%;right:6%}.receiptInk{z-index:1;display:block;position:absolute;inset:0}.receiptBox .wordReveal{--stroke:#ff2e888c;--shadow:#ff2e8814;pointer-events:none}.receiptLegend{text-align:center}.receiptLegendBlank{visibility:hidden}.receiptPager{align-items:center;gap:4px;margin-top:-8px;display:flex}.receiptStep{width:44px;height:44px;font-family:var(--mono);color:var(--bone);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;font-size:20px;line-height:1;display:flex}.receiptStep:disabled{color:var(--carbon);cursor:default}.receiptPage{text-align:center;min-width:44px;color:var(--rail)}@media (prefers-reduced-motion:reduce){.receiptCard[data-ink=fade] .receiptHeld{transition:none}}
