@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&family=IBM+Plex+Mono:wght@400;500&display=swap";@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&family=IBM+Plex+Mono:wght@400;500&display=swap";@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:16px/145% system-ui,Segoe UI,Roboto,sans-serif}body{background:#0e131a;margin:0}@keyframes home-draw{0%{stroke-dashoffset:289px}to{stroke-dashoffset:0}}@keyframes home-spin{0%{transform:rotate(-200deg)}to{transform:rotate(0)}}@keyframes home-midline{0%{opacity:0;transform:scaleY(.1)}to{opacity:1;transform:scaleY(1)}}@keyframes home-dot{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes home-soft{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes home-rise{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.home{--accent:oklch(78% .13 195);--ease-soft:cubic-bezier(.33, 0, .2, 1);--ease-draw:cubic-bezier(.33, 0, .15, 1);--ease-pop:cubic-bezier(.4, 0, .2, 1);color:#e7ebf1;background:#0e131a;flex-direction:column;flex:1;min-height:0;padding:28px 40px 32px;font-family:Space Grotesk,system-ui,sans-serif;display:flex;overflow:hidden}.home__nav{animation:home-rise 1s var(--ease-soft) 3s both;justify-content:space-between;align-items:center;display:flex}.home__brand{align-items:center;gap:11px;display:flex}.home__mark{width:26px;height:26px;color:var(--accent);flex:none}.home__brand-name{letter-spacing:-.025em;font-size:17px;font-weight:700}.home__links{letter-spacing:.14em;text-transform:uppercase;color:#7c8797;gap:30px;font-family:IBM Plex Mono,monospace;font-size:11.5px;display:flex}.home__links a{color:inherit;text-decoration:none}.home__links a:hover{color:#e7ebf1}.home__links a:last-child{color:var(--accent)}.home__hero{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:34px;display:flex}.home__logo{width:152px;height:152px;color:var(--accent);transform-origin:50%;animation:home-spin 1.6s var(--ease-draw) both;flex:none;overflow:visible}.home__logo .brain-mark__ring{stroke-width:4.6px;stroke-linecap:round;stroke-dasharray:289;animation:home-draw 1.6s var(--ease-draw) both}.home__logo .brain-mark__midline{stroke-width:4.6px;transform-origin:50%;animation:home-midline .6s var(--ease-pop) 1.5s both}.home__logo .brain-mark__dot{animation:home-dot .6s var(--ease-pop) both}.home__logo .brain-mark__dot--left{transform-origin:31% 36%;animation-delay:1.8s}.home__logo .brain-mark__dot--right{transform-origin:69% 62%;animation-delay:1.95s}.home__headings{flex-direction:column;align-items:center;gap:16px;display:flex}.home__title{letter-spacing:-.025em;animation:home-soft 1.2s var(--ease-soft) 2.35s both;margin:0;font-size:76px;font-weight:700;line-height:1}.home__subtitle{letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;color:#7c8797;animation:home-soft 1.2s var(--ease-soft) 2.6s both;margin:0;font-family:IBM Plex Mono,monospace;font-size:12.5px}.home__pitch{animation:home-rise 1s var(--ease-soft) 3.1s both;flex-direction:column;align-items:center;gap:26px;display:flex}.home__blurb{text-align:center;color:#9aa5b4;text-wrap:pretty;max-width:430px;margin:0;font-size:16.5px;line-height:1.6}.home__actions{gap:12px;display:flex}.home__cta{background:var(--accent);color:#0e131a;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;border:1px solid #0000;border-radius:23px;align-items:center;height:46px;padding:0 26px;font-family:IBM Plex Mono,monospace;font-size:12px;display:inline-flex}.home__cta:hover{background:#f2f1e9}.home__cta--ghost{color:#9aa5b4;background:0 0;border-color:#253040}.home__cta--ghost:hover{border-color:var(--accent);color:#e7ebf1;background:0 0}@media (prefers-reduced-motion:reduce){.home,.home *{animation:none}}@keyframes lib-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.lib{--accent:oklch(78% .13 195);--rule:#1a222e;--muted:#6b7686;color:#e7ebf1;background:#0e131a;flex-direction:column;flex:1;min-height:0;font-family:Space Grotesk,system-ui,sans-serif;display:flex;overflow:auto}.lib__header{border-bottom:1px solid var(--rule);flex:none;justify-content:space-between;align-items:center;padding:22px 40px;display:flex}.lib__brand{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:11px;padding:0;display:flex}.lib__mark{width:24px;height:24px;color:var(--accent);flex:none}.lib__brand-name{letter-spacing:-.025em;font-size:16px;font-weight:700}.lib__tabs{gap:34px;display:flex}.lib__tab{color:var(--muted);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #0000;padding:0 0 3px;font-family:IBM Plex Mono,monospace;font-size:12.5px}.lib__tab:hover{color:#e7ebf1}.lib__tab--active{border-bottom-color:var(--accent);color:#e7ebf1}.lib__account{letter-spacing:.16em;text-transform:uppercase;color:#4c5766;font-family:IBM Plex Mono,monospace;font-size:11px}.lib__main{flex-direction:column;flex:1;gap:26px;padding:40px 40px 64px;animation:.6s cubic-bezier(.33,0,.2,1) both lib-in;display:flex}.lib__main--empty{justify-content:center;align-items:center;gap:30px;padding:64px 40px}.lib__titles{flex-direction:column;gap:8px;display:flex}.lib__titles--centred{align-items:center;gap:14px}.lib__title{letter-spacing:-.02em;margin:0;font-size:30px;font-weight:700}.lib__main--empty .lib__title{font-size:34px}.lib__count{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0;font-family:IBM Plex Mono,monospace;font-size:11.5px}.lib__blurb{text-align:center;color:#9aa5b4;text-wrap:pretty;max-width:420px;margin:0;font-size:16px;line-height:1.6}.lib__error{color:#d97757;margin:0}.lib__table{border:1px solid var(--rule);border-radius:10px;overflow:hidden}.lib__row{border-top:1px solid var(--rule);grid-template-columns:92px 1.2fr .8fr 1.6fr .9fr 110px;align-items:center;gap:20px;padding:16px 22px;display:grid}.lib__row:hover{background:#101620}.lib__row--head{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);background:#101620;border-top:0;padding:13px 22px;font-family:IBM Plex Mono,monospace;font-size:10.5px}.lib__row--head:hover{background:#101620}.lib__loading{border-top:1px solid var(--rule);color:var(--muted);margin:0;padding:18px 22px}.lib__thumb{object-fit:cover;background:#101620;border:1px solid #232d3b;border-radius:4px;width:72px;height:44px}.lib__scan-name{font-size:16px;font-weight:500}.lib__meta{letter-spacing:.1em;text-transform:uppercase;color:#9aa5b4;font-family:IBM Plex Mono,monospace;font-size:12px}.lib__regions{color:#9aa5b4;text-wrap:pretty;font-size:13.5px;line-height:1.5}.lib__status{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);align-items:center;gap:8px;font-family:IBM Plex Mono,monospace;font-size:11px;display:inline-flex}.lib__status-dot{background:var(--accent);border-radius:50%;width:6px;height:6px}.lib__open{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;justify-self:start;padding:0;font-family:IBM Plex Mono,monospace;font-size:11.5px}.lib__open:hover{color:#e7ebf1}.lib__actions{gap:12px;display:flex}.lib__cta{background:var(--accent);color:#0e131a;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;border:1px solid #0000;border-radius:22px;align-items:center;height:44px;padding:0 24px;font-family:IBM Plex Mono,monospace;font-size:12px;text-decoration:none;display:inline-flex}.lib__cta:hover{background:#f2f1e9}.lib__cta--ghost{color:#9aa5b4;background:0 0;border-color:#253040}.lib__cta--ghost:hover{border-color:var(--accent);color:#e7ebf1;background:0 0}.lib__footer{border-top:1px solid var(--rule);letter-spacing:.16em;text-transform:uppercase;color:#4c5766;flex:none;padding:20px 40px;font-family:IBM Plex Mono,monospace;font-size:11px}@media (prefers-reduced-motion:reduce){.lib,.lib *{animation:none}}@keyframes ps-miss{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}.puzzle-screen{--accent:oklch(78% .13 195);--miss:oklch(66% .17 25);--good:oklch(80% .13 175);color:#e7ebf1;background:#0e131a;flex-direction:column;flex:1;min-height:0;font-family:Space Grotesk,system-ui,sans-serif;display:flex;overflow:hidden}.ps-header{border-bottom:1px solid #212a36;flex:none;align-items:center;gap:28px;padding:18px 24px;display:flex}.ps-header__title{align-items:baseline;gap:10px;display:flex}.ps-header__mark{width:22px;height:22px;color:var(--accent);flex:none;align-self:center}.ps-header__app-name{letter-spacing:-.01em;font-size:19px;font-weight:700}.ps-header__puzzle-id{color:#7f8b9c;font-family:IBM Plex Mono,monospace;font-size:12px}.ps-tabs{background:#171e28;border:1px solid #232d3b;border-radius:9px;gap:2px;padding:3px;display:flex}.ps-tab{cursor:pointer;color:#7f8b9c;background:0 0;border:none;border-radius:6px;padding:6px 14px;font:500 13px Space Grotesk,sans-serif}.ps-tab:hover{color:#c3ccd8}.ps-tab.is-active{color:#eaf0f6;background:#2b3949}.ps-tab.is-active:hover{color:#eaf0f6}.ps-header__spacer{flex:1}.ps-header__meta{align-items:center;gap:20px;display:flex}.ps-counter{align-items:center;gap:10px;display:flex}.ps-counter__text{color:#7f8b9c;font-family:IBM Plex Mono,monospace;font-size:13px}.ps-progress{background:#212a36;border-radius:3px;width:108px;height:5px;overflow:hidden}.ps-progress__bar{background:var(--accent);height:100%;transition:width .22s}.ps-timer{color:#cdd5e0;font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,monospace;font-size:15px}.ps-hint-toggle{cursor:pointer;color:#8b97a8;background:#171e28;border:1px solid #2a3543;border-radius:7px;padding:6px 11px;font:500 12px Space Grotesk,sans-serif}.ps-hint-toggle.is-active{color:oklch(90% .06 195);background:oklch(34% .05 195);border-color:oklch(62% .09 195)}.ps-body{background:#212a36;flex:1;grid-template-columns:minmax(0,1fr) 372px;align-items:stretch;gap:1px;min-height:0;display:grid}.ps-board-section{background:#0e131a;flex-direction:column;min-width:0;min-height:0;display:flex}.ps-board-wrap{flex:1;place-items:center;min-height:0;padding:24px 28px 12px;display:grid}.ps-board{background:radial-gradient(circle at 50% 45%,#151d27 0%,#0f151d 70%);border:1px solid #1e2733;border-radius:14px;width:100%;max-width:780px;height:100%;min-height:0}.ps-board.is-crosshair{cursor:crosshair}.ps-board.is-pointer{cursor:pointer}.ps-scan{opacity:.55;pointer-events:none;image-rendering:auto}.ps-silhouette{fill:#9eafc40e;stroke:#9eafc429;stroke-width:.22px}.ps-silhouette-hidden{fill:#0000;stroke:#0000;stroke-width:.22px}.ps-piece{stroke-width:.25px}.ps-piece.is-placed{fill:oklch(62% .09 195/.85);stroke:oklch(82% .11 195)}.ps-piece.is-explore{fill:#93a1b466;stroke:#141b24e6;stroke-width:.2px;cursor:pointer}.ps-piece.is-active{fill:oklch(68% .11 195/.9);stroke:oklch(88% .09 195);stroke-width:.4px;cursor:pointer}.ps-piece.is-good{fill:oklch(66% .11 175/.9);stroke:var(--good);stroke-width:.35px}.ps-piece.is-wrong{fill:oklch(58% .14 25/.85);stroke:var(--miss);stroke-width:.35px}.ps-piece-group{cursor:pointer}.ps-piece__label{text-anchor:middle;dominant-baseline:middle;pointer-events:none;fill:#e7ebf18c;font-family:IBM Plex Mono,monospace;font-size:2.4px}.ps-piece__label.is-placed{fill:#08131a}.ps-status{flex:none;align-items:center;gap:14px;min-height:26px;padding:0 28px 20px;display:flex}.ps-status__label{color:#6d7a8c;letter-spacing:.02em;font-family:IBM Plex Mono,monospace;font-size:12px}.ps-status__text{color:#6d7a8c;font-size:13px}.ps-status__text.is-active{color:#e7ebf1}.ps-status__text.is-miss{color:var(--miss)}.ps-status__text.is-good{color:var(--good)}.ps-aside{background:#111823;flex-direction:column;min-height:0;display:flex}.place-panel{flex-direction:column;flex:1;min-height:0;display:flex}.place-panel__head{border-bottom:1px solid #1e2733;flex:none;padding:18px 20px 12px}.place-panel__title{color:#cdd5e0;font-size:13px;font-weight:500}.place-panel__desc{color:#6d7a8c;text-wrap:pretty;margin-top:4px;font-size:12px}.place-panel__list{flex-direction:column;flex:1;gap:2px;min-height:0;padding:8px 12px 20px;display:flex;overflow-y:auto}.place-row{background:#151d28;border:1px solid #1e2733;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px 8px;display:grid}.place-row.is-done{background:0 0;border-color:#0000}.place-row__name{color:#b9c3d1;text-wrap:pretty;padding-right:6px;font-size:12.5px;line-height:1.3}.place-row.is-done .place-row__name{color:#4f5b6b}.place-row__items{gap:6px;display:flex}.place-item{cursor:pointer;background:#1b2431;border:1px solid #232d3b;border-radius:7px;flex-direction:column;align-items:center;gap:1px;width:44px;padding:4px 2px;display:flex}.place-item:hover:not(:disabled){background:#212c3b;border-color:#41505f}.place-item:disabled{cursor:default;background:#131a24;border-color:#232d3b}.place-item.is-selected{background:oklch(42% .07 195);border-color:oklch(82% .11 195)}.place-item.is-miss{animation:.4s ps-miss}.place-item__shape{width:30px;height:30px;overflow:visible}.place-item__shape path{fill:#93a1b4}.place-item.is-selected .place-item__shape path{fill:oklch(72% .12 195);stroke:#eaf2f6;stroke-width:.5px}.place-item.is-placed .place-item__shape path{fill:#2b3543}.place-item.is-miss .place-item__shape path{fill:var(--miss)}.place-item__side{color:#6d7a8c;font-family:IBM Plex Mono,monospace;font-size:10px}.place-item.is-selected .place-item__side{color:#0d1a20}.place-item.is-placed .place-item__side{color:#3f4a58}.place-panel__complete{background:#101c1e;border-top:1px solid #1e2733;flex:none;padding:16px 20px}.place-panel__complete-title{color:var(--good);font-size:13px;font-weight:500}.place-panel__complete-desc{color:#8b97a8;margin-top:3px;font-size:12px}.explore-panel{flex-direction:column;flex:1;min-height:0;display:flex}.explore-panel__head{border-bottom:1px solid #1e2733;flex:none;padding:20px}.explore-panel__title{color:#cdd5e0;font-size:13px;font-weight:500}.explore-panel__desc{color:#6d7a8c;text-wrap:pretty;margin-top:5px;font-size:12px}.explore-info__row{align-items:flex-start;gap:14px;display:flex}.explore-info__icon{background:#0e1620;border:1px solid #23303d;border-radius:10px;flex:none;place-items:center;width:64px;height:64px;display:grid}.explore-info__shape{width:46px;height:46px;overflow:visible}.explore-info__shape path{fill:oklch(72% .12 195)}.explore-info__body{min-width:0}.explore-info__name-row{align-items:baseline;gap:8px;display:flex}.explore-info__name{text-wrap:pretty;font-size:15px;font-weight:500;line-height:1.25}.explore-info__speak{cursor:pointer;opacity:.75;background:0 0;border:none;flex:none;padding:2px;font-size:13px;line-height:1}.explore-info__speak:hover{opacity:1}.explore-info__abbr{color:oklch(78% .11 195);margin-top:5px;font-family:IBM Plex Mono,monospace;font-size:11px}.explore-info__dl{grid-template-columns:auto 1fr;gap:7px 16px;margin:16px 0 0;font-size:12px;display:grid}.explore-info__dl dt{color:#6d7a8c}.explore-info__dl dd{color:#cdd5e0;margin:0}.explore-info__dl dd:nth-of-type(2),.explore-info__dl dd:nth-of-type(3){font-family:IBM Plex Mono,monospace}.explore-panel__list{flex:1;min-height:0;padding:8px 12px 20px;overflow-y:auto}.explore-item-row{align-items:center;gap:4px;display:flex}.explore-item{cursor:pointer;text-align:left;color:#b9c3d1;background:0 0;border:1px solid #0000;border-radius:8px;flex:1;align-items:baseline;gap:8px;min-width:0;margin-bottom:2px;padding:8px;font-family:Space Grotesk,sans-serif;display:flex}.explore-item__speak{cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:6px;flex:none;margin-bottom:2px;padding:4px 6px;font-size:12px;line-height:1}.explore-item__speak:hover{opacity:1;background:#18202b}.explore-item:hover:not(.is-active){background:#18202b}.explore-item.is-active{color:#eaf6f8;background:oklch(36% .05 195);border-color:oklch(62% .09 195)}.explore-item__abbr{color:#6d7a8c;text-align:left;flex:0 0 46px;font-family:IBM Plex Mono,monospace;font-size:10.5px}.explore-item.is-active .explore-item__abbr{color:oklch(90% .08 195)}.explore-item__name{text-wrap:pretty;text-align:left;font-size:12.5px;line-height:1.3}.recall-panel{flex-direction:column;flex:1;min-height:0;display:flex}.recall-panel__head{border-bottom:1px solid #1e2733;flex:none;justify-content:space-between;align-items:baseline;padding:18px 20px 12px;display:flex}.recall-panel__title{color:#cdd5e0;font-size:13px;font-weight:500}.recall-panel__progress{color:#6d7a8c;font-family:IBM Plex Mono,monospace;font-size:11px}.recall-panel__body{flex-direction:column;flex:1;gap:18px;min-height:0;padding:20px;display:flex;overflow-y:auto}.recall-shape{background:#0e1620;border:1px solid #23303d;border-radius:12px;flex:none;place-items:center;height:168px;display:grid}.recall-shape__svg{width:74%;height:74%;overflow:visible}.recall-shape__svg path{stroke-width:.3px}.recall-shape__svg path.is-neutral{fill:#93a1b4;stroke:#b6c2d2}.recall-shape__svg path.is-correct{fill:oklch(66% .11 175/.9);stroke:var(--good)}.recall-shape__svg path.is-wrong{fill:oklch(58% .14 25/.85);stroke:var(--miss)}.recall-choices{flex-direction:column;gap:7px;display:flex}.recall-choice{text-align:left;cursor:pointer;color:#cdd5e0;text-wrap:pretty;background:#1b2431;border:1px solid #232d3b;border-radius:9px;padding:11px 13px;font:400 12.5px/1.35 Space Grotesk,sans-serif}.recall-choice:hover:not(:disabled){background:#212c3b;border-color:#41505f}.recall-choice:disabled{cursor:default}.recall-choice.is-correct{border-color:var(--good);color:#e8fbf6;background:oklch(35% .06 175)}.recall-choice.is-wrong{border-color:var(--miss);color:#ffeae6;background:oklch(32% .08 25)}.recall-choice.is-disabled{color:#5c6878;background:#151d28;border-color:#1e2733}.recall-feedback{flex-direction:column;gap:12px;display:flex}.recall-feedback p{color:#8b97a8;text-wrap:pretty;margin:0;font-size:12.5px}.recall-next{color:#eaf6f8;cursor:pointer;background:oklch(40% .06 195);border:1px solid oklch(62% .09 195);border-radius:8px;align-self:flex-start;padding:9px 18px;font:500 13px Space Grotesk,sans-serif}.recall-next:hover{background:oklch(48% .07 195)}.recall-panel__stats{border-top:1px solid #1e2733;flex:none;gap:22px;padding:14px 20px;display:flex}.recall-stat__value{font-family:IBM Plex Mono,monospace;font-size:16px}.recall-stat__value.is-correct{color:var(--good)}.recall-stat__value.is-wrong{color:var(--miss)}.recall-stat__label{color:#6d7a8c;margin-top:2px;font-size:11px}.app{flex-direction:column;height:100vh;display:flex}.app__error{color:#c0392b;padding:1.5rem}.review-queue{color:#cdd5e0;background:#171e28;border-bottom:1px solid #232d3b;flex:none;align-items:baseline;gap:10px;padding:8px 24px;font-family:Space Grotesk,system-ui,sans-serif;display:flex}.review-queue:has(.review-queue__empty){display:none}.review-queue__heading{color:#7f8b9c;text-transform:uppercase;letter-spacing:.03em;flex:none;margin:0;font-size:11px;font-weight:500}.review-queue__empty{color:#5c6878;margin:0;font-size:12px}.review-queue__list{flex-wrap:wrap;flex:1;gap:4px 14px;min-width:0;margin:0;padding:0;font-size:12px;list-style:none;display:flex}
