@font-face{font-family:NATS;src:url(./NATS-Regular-CRhrUSbd.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--color-white:#fff;--color-woodsmoke:#0e0e10;--color-grey-mid:#6c6c6d;--color-grey-contrast:#333;--color-grey-muted:#919191;--color-grey-border:#dbdbdb;--color-grey-faint:#0e0e1070;--color-footer:#959596;--color-card-bg:#f9f9f9;--color-divider:#0003;--color-accent:#b22133;--color-accent-muted:#f5a0a0;--color-accent-hover:#f08080;--font-family-base:"Geist", sans-serif;--font-family-mono:"Geist Mono", monospace;--font-family-display:"NATS", "Geist", sans-serif;--font-size-hero-large:38.4px;--font-size-hero:37.3px;--font-size-body:17.4px;--font-size-body-sm:17px;--font-size-body-xs:13.3px;--font-size-link:13px;--font-size-footer:13.6px;--font-size-card-title:17.4px;--font-size-tooltip:11px;--line-height-hero:20px;--line-height-body:28.8px;--line-height-section-title:26px;--line-height-footer:16.8px;--spacing-xxs:10px;--spacing-xs:12px;--spacing-sm:16px;--spacing-md:19.4px;--spacing-lg:20px;--spacing-xl:40px;--spacing-footer:14px;--radius:12px;--border-radius-card:20px;--radius-lg:var(--border-radius-card);--radius-pill:999px;--ease-page-enter:cubic-bezier(.16, 1, .3, 1);--ease-page-leave:cubic-bezier(.7, 0, .84, 0);--shadow:0 12px 40px #0e0e1014;--shadow-hover:0 12px 40px #0e0e101f;--shadow-active:0 20px 60px #0e0e1029;--shadow-tooltip:0 8px 24px #0e0e101f;--skeleton-bg:#f3f4f6;--skeleton-surface:#fff;--skeleton-shine:#fff;--green:#22c55e;--yellow:#facc15;--orange:#fb923c;--red:#ef4444;--gold:#fbbf24;--gold-hover:#fcd34d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--color-white:#0e0e10;--color-woodsmoke:#f0f0f0;--color-grey-mid:#9a9a9a;--color-grey-contrast:#d0d0d0;--color-grey-muted:#707070;--color-grey-border:#2a2a2a;--color-grey-faint:#f0f0f070;--color-footer:#717171;--color-card-bg:#1a1a1a;--color-divider:#ffffff26;--color-accent:#cf4949;--color-accent-muted:#8b4545;--color-accent-hover:#9b5050;--shadow:0 12px 40px #0000004d;--shadow-hover:0 12px 40px #0006;--shadow-active:0 20px 60px #00000080;--shadow-tooltip:0 8px 24px #0006;--skeleton-bg:#111418;--skeleton-surface:#191d23;--skeleton-shine:#1a1f26;--gold:#f59e0b;--gold-hover:#fbbf24;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.btn,.random-toggle,.favourites-toggle,.btn-bookmark{--bordered-hover-bg:#f0f0f014;--bordered-hover-border:var(--color-grey-mid);--bordered-hover-color:var(--color-woodsmoke);--bordered-shadow-hover:none;--bordered-shadow-active:none;--bordered-shadow-focus:none}.btn:not(.secondary):not(.btn-bookmark){--bordered-hover-bg:#c7303029;--bordered-hover-border:var(--color-accent-hover);--bordered-hover-color:var(--color-accent-hover);--bordered-shadow-hover:none;--bordered-shadow-active:none;--bordered-shadow-focus:none}.random-toggle{--bordered-hover-bg:#f0f0f014;--bordered-hover-border:var(--color-grey-mid);--bordered-hover-color:var(--color-woodsmoke);--bordered-shadow-hover:none;--bordered-shadow-active:none;--bordered-shadow-focus:none}.btn.secondary{--bordered-hover-bg:#f0f0f01a;--bordered-hover-border:var(--color-grey-mid);--bordered-hover-color:var(--color-woodsmoke);--bordered-shadow-hover:none;--bordered-shadow-active:none;--bordered-shadow-focus:none}.btn-bookmark,.favourites-toggle{--bordered-hover-bg:#f59e0b1f;--bordered-hover-border:var(--gold);--bordered-hover-color:var(--gold);--bordered-shadow-hover:none;--bordered-shadow-active:none;--bordered-shadow-focus:none}.random-toggle.active{--bordered-hover-bg:var(--color-grey-contrast);--bordered-hover-border:var(--color-grey-contrast);--bordered-hover-color:var(--color-white);--bordered-shadow-hover:none;--bordered-shadow-active:none;--bordered-shadow-focus:none}.favourites-toggle.active,.btn-bookmark.active{--bordered-hover-bg:var(--gold);--bordered-hover-border:var(--gold);--bordered-hover-color:var(--color-white);--bordered-shadow-hover:none;--bordered-shadow-active:none;--bordered-shadow-focus:none}}::selection{background-color:#d22c2c40}@media (prefers-color-scheme:dark){::selection{background-color:#c7303059}}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;overflow-x:hidden}*,:before,:after{box-sizing:border-box}a{text-underline-offset:4px}body{background:var(--color-white);color:var(--color-woodsmoke);font-family:var(--font-family-base);font-size:var(--font-size-body);line-height:var(--line-height-body);margin:0;overflow-x:hidden}.app-container{flex-direction:column;height:100vh;display:flex;position:relative}header{border-bottom:1px solid var(--color-grey-border);background:var(--color-white);z-index:10;padding:0;position:relative}.header-content{max-width:1200px;padding:var(--spacing-sm) 22px;justify-content:space-between;align-items:center;gap:var(--spacing-lg);margin:0 auto;display:flex;position:relative}.header-actions{align-items:center;display:flex}.header-brand{flex:0 0 86.625px;width:86.625px;display:block;position:relative}.header-actions{gap:var(--spacing-xs);margin-left:auto}.site-logo{color:inherit;line-height:0;display:block}.site-logo picture,.site-logo img{display:block}.site-logo img{object-fit:contain;width:110px;height:auto}@media (prefers-color-scheme:dark){.site-logo img{filter:invert()}}h1{font-family:var(--font-family-display);font-size:calc(var(--font-size-hero) / 1.5);font-weight:400;line-height:var(--line-height-hero);color:var(--color-accent);letter-spacing:-.03em;white-space:nowrap;margin:0;display:block;position:absolute;top:29%;left:130%}.info-wrapper{align-items:center;display:flex;position:relative}.info-btn{width:32px;height:32px;color:var(--color-grey-mid);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative}@media (any-hover:hover){.info-btn:hover{color:var(--color-woodsmoke);background:#0e0e100a;transform:scale(1.05)}@media (prefers-color-scheme:dark){.info-btn:hover{background:#f0f0f00a}}}.info-btn:focus{outline:none}.info-btn:focus-visible{outline:1px solid var(--color-grey-mid);outline-offset:2px}.info-btn[aria-expanded=true]{color:var(--color-woodsmoke);background:#0e0e100a}@media (prefers-color-scheme:dark){.info-btn[aria-expanded=true]{background:#f0f0f00a}}.info-btn svg{width:20px;height:20px}.help-tooltip{transform:translateX(calc(-50% + var(--tooltip-offset-x,0px)));background:var(--color-white);border:1px solid var(--color-grey-border);border-radius:var(--radius);z-index:1000;width:210px;max-width:calc(100vw - 24px);animation:fadeInScale .16s var(--ease-page-enter);will-change:transform, top, left;padding:10px;position:absolute;top:calc(100% + 8px);left:50%;box-shadow:0 8px 24px #0e0e1014}@keyframes fadeInScale{0%{opacity:0;transform:translateX(calc(-50% + var(--tooltip-offset-x,0px))) translateY(-3px) scale(.98)}to{opacity:1;transform:translateX(calc(-50% + var(--tooltip-offset-x,0px))) translateY(0) scale(1)}}.tooltip-title{color:var(--color-grey-mid);margin:0;padding:2px 8px 7px;font-size:11px;font-weight:500;line-height:1.4}.tooltip-content{flex-direction:column;gap:0;display:flex}.shortcut{min-height:30px;font-size:var(--font-size-link);color:var(--color-grey-contrast);justify-content:space-between;align-items:center;gap:12px;padding:5px 8px;line-height:20px;display:flex}.shortcut-keys{flex-shrink:0;justify-content:flex-end;align-items:center;gap:3px;display:inline-flex}.shortcut kbd{background:var(--color-card-bg);font-family:var(--font-family-mono);color:var(--color-grey-mid);text-align:center;border:0;border-radius:5px;min-width:18px;padding:2px 5px;font-size:10px;font-weight:400;line-height:16px;display:inline-block}@media (prefers-color-scheme:dark){.help-tooltip{box-shadow:0 8px 24px #0000003d}.shortcut kbd{background:var(--color-card-bg);color:var(--color-grey-mid)}}.is-touch .help-tooltip,.is-touch .info-wrapper{display:none!important}.chapter-select{appearance:none;background:var(--color-white);border:1px solid var(--color-grey-border);width:var(--chapter-select-width,96px);border-radius:var(--radius-pill);min-width:92px;max-width:calc(100vw - 32px);font-family:var(--font-family-base);font-size:var(--font-size-link);color:var(--color-woodsmoke);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;touch-action:manipulation;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%236c6c6d' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat;background-size:10px;padding:8px 28px 8px 13px;font-weight:400;line-height:1.4;transition:width .18s cubic-bezier(.4,0,.2,1),border-color .18s,box-shadow .18s;position:absolute;left:50%;transform:translate(-50%)}.chapter-select:focus{border-color:var(--color-grey-border);outline:none}@media (any-hover:hover){.chapter-select:hover,.chapter-select:focus:hover{border-color:var(--color-grey-contrast)}}.chapter-select:focus-visible{border-color:var(--color-grey-contrast)}.main-content{flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:0;padding:20px;display:flex}.stage{--empty-card-radius:5.6274cqw;-webkit-user-select:none;user-select:none;width:min(90vw,900px);margin:0 auto 24px;display:block;position:relative;container-type:inline-size}.skeleton-card{background:var(--skeleton-bg);border-radius:var(--empty-card-radius,0);opacity:0;z-index:2;pointer-events:none;width:100%;height:100%;transition:opacity .2s ease-out;position:absolute;top:0;left:0;overflow:hidden}.skeleton-card:before{content:"";inset:var(--spacing-xs);background:var(--skeleton-surface);border-radius:max(0px, calc(var(--empty-card-radius,0px) - var(--spacing-xs)));position:absolute}.skeleton-card.visible{opacity:1}.skeleton-card:after{content:"";z-index:2;background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--skeleton-shine) 72%, transparent), transparent);width:100%;height:100%;animation:1.5s infinite shimmer;position:absolute;top:0;left:-100%}.empty-state-message{z-index:3;color:var(--color-grey-mid);font-family:var(--font-family-base);font-size:var(--font-size-body-xs);letter-spacing:.08em;text-transform:uppercase;opacity:0;place-items:center;margin:0;font-weight:400;transition:opacity .18s;display:grid;position:absolute;inset:0}.skeleton-card.empty .empty-state-message{opacity:1}.skeleton-card.empty:after{opacity:.55;animation-duration:2.4s}.stage.is-empty .card-shell{visibility:hidden;pointer-events:none}@keyframes shimmer{to{left:100%}}.card-shell{cursor:pointer;perspective:2000px;perspective-origin:50%;contain:layout;isolation:isolate;width:100%;height:100%;transition:transform .15s ease-out,opacity .2s ease-out;position:relative;transform:translateZ(0)}@media (any-hover:hover){.card-shell:hover{transform:translateY(-2px)}}.card-shell.out-left{animation:.14s ease-out both outLeft}.card-shell.in-right{animation:.18s ease-out both inRight}.card-shell.out-right{animation:.14s ease-out both outRight}.card-shell.in-left{animation:.18s ease-out both inLeft}@keyframes outLeft{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-12px)}}@keyframes inRight{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}@keyframes outRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(12px)}}@keyframes inLeft{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.card-shell.swiping-left{animation:.3s cubic-bezier(.4,0,1,1) forwards swipeLeftOut}.card-shell.swiping-right{animation:.3s cubic-bezier(.4,0,1,1) forwards swipeRightOut}.card-shell.scaling-in{animation:.4s cubic-bezier(.34,1.56,.64,1) forwards scaleIn}@media (any-hover:hover) and (pointer:fine){.card-shell.swiping-left,.card-shell.swiping-right{animation-duration:.22s}.card-shell.scaling-in{animation-duration:.3s}}@keyframes swipeLeftOut{0%{opacity:1;transform:translate(0)rotate(0)scale(1)}to{opacity:0;transform:translate(-120%)rotate(-15deg)scale(.8)}}@keyframes swipeRightOut{0%{opacity:1;transform:translate(0)rotate(0)scale(1)}to{opacity:0;transform:translate(120%)rotate(15deg)scale(.8)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.card3d{width:100%;height:100%;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;z-index:1;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;transition:transform .64s cubic-bezier(.4,0,.2,1);position:relative;transform:rotateY(0)}.card3d.flipping{will-change:transform}.card3d.flip-animated{transition:none}.card3d.no-anim{transition:none!important}.card3d.flipped{transform:rotateY(180deg)}.face{backface-visibility:hidden;width:100%;height:100%;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;position:absolute;top:0;left:0}.face.front{transform:rotateY(0)translateZ(.5px)}.face.back{transform:rotateY(180deg)translateZ(.5px)}.face img{object-fit:contain;pointer-events:none;opacity:0;width:100%;height:100%;transition:opacity .2s ease-out;display:block}@media (prefers-color-scheme:dark){.face img{filter:brightness(.9)saturate(.96)}}.face img.loaded{opacity:1}@media (prefers-reduced-motion:reduce){.card3d{transition-duration:1ms}}.controls-wrapper{width:100%;max-width:720px;margin:0 auto;padding:0 20px}.controls{flex-direction:column;align-items:center;gap:20px;display:flex}.nav-buttons{align-items:center;gap:12px;display:flex}.btn{appearance:none;border:1px solid var(--color-grey-border);background:var(--color-white);color:var(--color-grey-contrast);border-radius:var(--radius-pill);font-family:var(--font-family-base);font-size:var(--font-size-link);cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;touch-action:manipulation;align-items:center;gap:8px;min-width:44px;min-height:44px;padding:8px 14px;font-weight:400;line-height:1.4;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;position:relative;overflow:hidden}.btn,.random-toggle,.favourites-toggle,.btn-bookmark{--bordered-hover-bg:#0e0e100f;--bordered-hover-border:var(--color-grey-mid);--bordered-hover-color:var(--color-grey-contrast);--bordered-shadow-hover:none;--bordered-shadow-active:none;--bordered-shadow-focus:none;box-shadow:none}.btn:not(.secondary):not(.btn-bookmark){--bordered-hover-bg:#d22c2c14;--bordered-hover-border:var(--color-accent);--bordered-hover-color:var(--color-accent);--bordered-shadow-hover:none;--bordered-shadow-active:none;--bordered-shadow-focus:none}.random-toggle{--bordered-hover-bg:#0e0e100f;--bordered-hover-border:var(--color-grey-mid);--bordered-hover-color:var(--color-grey-contrast);--bordered-shadow-hover:none;--bordered-shadow-active:none;--bordered-shadow-focus:none}.btn-bookmark,.favourites-toggle{--bordered-hover-bg:#fbbf241f;--bordered-hover-border:var(--gold);--bordered-hover-color:var(--gold);--bordered-shadow-hover:none;--bordered-shadow-active:none;--bordered-shadow-focus:none}@media (any-hover:hover){.btn:hover:not(:disabled),.random-toggle:hover:not(.disabled),.favourites-toggle:hover:not(.disabled){color:var(--bordered-hover-color);border-color:var(--bordered-hover-border);background:var(--bordered-hover-bg);box-shadow:none}}.btn.secondary{color:var(--color-grey-contrast);border:1px solid var(--color-grey-border);--bordered-hover-bg:#0e0e100f;--bordered-hover-border:var(--color-grey-mid);--bordered-hover-color:var(--color-woodsmoke);--bordered-shadow-hover:none;--bordered-shadow-active:none;--bordered-shadow-focus:none;background:0 0}.btn:focus-visible:not(:disabled),.random-toggle:focus-visible:not(.disabled),.favourites-toggle:focus-visible:not(.disabled){outline:2px solid var(--bordered-hover-border);outline-offset:2px;box-shadow:none}.btn:disabled{opacity:.3;cursor:not-allowed}.btn-icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.btn-bookmark{color:var(--gold);border-color:var(--gold);background:0 0;padding:8px 20px;position:relative}.btn-bookmark.active{background:var(--gold);color:var(--color-white);border-color:var(--gold)}.btn-bookmark svg{fill:none;stroke:currentColor;stroke-width:2px;width:20px;height:20px;transition:all .2s}.btn-bookmark.active svg{fill:currentColor;stroke:var(--color-white)}.mode-toggle-wrapper{align-items:center;gap:12px;display:flex}.mode-toggle{appearance:none;border:1px solid var(--color-grey-border);background:var(--color-white);color:var(--color-grey-contrast);border-radius:var(--radius-pill);font-family:var(--font-family-base);font-size:var(--font-size-link);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;align-items:center;gap:6px;padding:6px 12px;font-weight:500;line-height:1.4;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.mode-toggle.active{background:var(--color-accent);color:var(--color-white);border-color:var(--color-accent)}.mode-toggle .toggle-icon{width:14px;height:14px;transition:transform .2s}.mode-toggle.active .toggle-icon{transform:rotate(90deg)}@media (any-hover:hover){.mode-toggle:hover{border-color:var(--color-grey-mid);background:#0e0e100f}.mode-toggle.active:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}}@media (any-hover:hover) and (prefers-color-scheme:dark){.mode-toggle:hover{background:#f0f0f014}}.btn-pas-ok{--bordered-hover-bg:#ef44441a;--bordered-hover-border:var(--red);--bordered-hover-color:var(--red);color:var(--red);border-color:var(--red);background:0 0}.btn-ok{--bordered-hover-bg:#22c55e1a;--bordered-hover-border:var(--green);--bordered-hover-color:var(--green);background:var(--green);color:var(--color-white);border-color:var(--green)}@media (any-hover:hover){.btn-ok:hover:not(:disabled){color:var(--color-white);background:#16a34a;border-color:#16a34a}.btn-pas-ok:hover:not(:disabled){background:var(--bordered-hover-bg);border-color:var(--bordered-hover-border);color:var(--bordered-hover-color)}}body.modal-open{touch-action:none;overscroll-behavior:contain;width:100%;height:100%;position:fixed;overflow:hidden}body.modal-open .app-container,body.modal-open .footer-section{pointer-events:none}.modal{-webkit-backdrop-filter:blur(3px);z-index:1000;opacity:0;pointer-events:none;background:#0e0e1052;justify-content:center;align-items:center;padding:20px;transition:opacity .18s;display:flex;position:fixed;inset:0}.modal.show{opacity:1;pointer-events:all}.modal-content{background:var(--color-white);border:1px solid var(--color-grey-border);border-radius:var(--radius-lg);transition:transform .18s var(--ease-page-enter);box-shadow:var(--shadow-tooltip);width:100%;max-width:360px;padding:28px;transform:translateY(8px)scale(.99)}.modal.show .modal-content{transform:translateY(0)scale(1)}.modal-complete{text-align:center;flex-direction:column;align-items:center;display:flex}.complete-checkmark{background:var(--color-card-bg);width:40px;height:40px;color:var(--color-woodsmoke);border:1px solid var(--color-grey-border);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 14px;display:flex}.complete-checkmark svg{stroke-width:1.75px;width:18px;height:18px}.modal-complete h2{font-family:var(--font-family-display);color:var(--color-woodsmoke);letter-spacing:-.03em;margin:0 0 7px;font-size:26px;font-weight:400;line-height:1}.complete-stats{font-family:var(--font-family-base);font-size:var(--font-size-body-xs);color:var(--color-grey-mid);font-variant-numeric:tabular-nums;margin:0 0 24px;font-weight:400;line-height:1.4}.modal-btn{min-height:42px;font-size:var(--font-size-link);border-radius:var(--radius-pill);cursor:pointer;font-weight:400;line-height:1.4;font-family:var(--font-family-base);-webkit-tap-highlight-color:transparent;border:1px solid #0000;flex:1;justify-content:center;align-items:center;padding:9px 14px;transition:color .18s,background-color .18s,border-color .18s;display:flex}.modal-btn-primary{background:var(--color-woodsmoke);color:var(--color-white);border:1px solid var(--color-woodsmoke)}.modal-btn-ghost{color:var(--color-grey-mid);border:1px solid var(--color-grey-border);background:0 0}@media (any-hover:hover){.modal-btn-primary:hover{background:var(--color-grey-contrast);color:var(--color-white);border-color:var(--color-grey-contrast)}.modal-btn-ghost:hover{border-color:var(--color-grey-mid);color:var(--color-grey-contrast);background:#0e0e100a}}.modal-actions{gap:8px;width:100%;display:flex}.modal-btn:focus-visible{outline:1px solid var(--color-grey-mid);outline-offset:2px}@media (prefers-color-scheme:dark){.modal{background:#00000094}.modal-content{box-shadow:var(--shadow-tooltip)}.modal-btn-ghost{color:var(--color-grey-mid);border-color:var(--color-grey-border)}@media (any-hover:hover){.modal-btn-ghost:hover{border-color:var(--color-grey-mid);background:#f0f0f014}}}@media (width<=480px){.modal-content{padding:24px}.modal-complete h2{font-size:24px}}@media (prefers-reduced-motion:reduce){.modal,.modal-content{transition:none}}.filter-controls{gap:var(--spacing-lg);flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.filter-group{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;touch-action:manipulation;border-radius:12px;flex-direction:column;align-items:center;padding:6px 10px;display:flex}.toggle-pair{gap:var(--spacing-xs);justify-content:center;align-items:center;display:flex}.filter-label{font-size:var(--font-size-body-xs);line-height:var(--line-height-section-title);text-transform:uppercase;letter-spacing:.08em;color:var(--color-grey-mid);font-weight:400}.traffic-pills{cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;touch-action:manipulation;border-radius:20px;align-items:center;gap:4px;padding:6px;transition:background .2s;display:flex}@media (any-hover:hover){.filter-group:hover .traffic-pills{background:#0e0e100a}@media (prefers-color-scheme:dark){.filter-group:hover .traffic-pills{background:#f0f0f00a}}}.pill{background:var(--color-grey-border);width:20px;height:8px;box-shadow:none;border-radius:4px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}#timerFilter[data-level=green] .pill:first-child{background:var(--green);box-shadow:0 0 8px #22c55e66}#timerFilter[data-level=yellow] .pill:first-child,#timerFilter[data-level=orange] .pill:first-child{background:var(--green)}#timerFilter[data-level=yellow] .pill:nth-child(2),#timerFilter[data-level=orange] .pill:nth-child(2){background:var(--yellow)}#timerFilter[data-level=yellow] .pill:nth-child(2){box-shadow:0 0 8px #facc1566}#timerFilter[data-level=orange] .pill:nth-child(3){background:var(--orange);box-shadow:0 0 8px #fb923c66}#difficultyFilter[data-level=green] .pill:first-child{background:var(--green);box-shadow:0 0 8px #22c55e66}#difficultyFilter[data-level=orange] .pill:first-child,#difficultyFilter[data-level=red] .pill:first-child{background:var(--green)}#difficultyFilter[data-level=orange] .pill:nth-child(2),#difficultyFilter[data-level=red] .pill:nth-child(2){background:var(--orange)}#difficultyFilter[data-level=orange] .pill:nth-child(2){box-shadow:0 0 8px #fb923c66}#difficultyFilter[data-level=orange] .pill:nth-child(3){background:var(--color-grey-border)}#difficultyFilter[data-level=red] .pill:nth-child(3){background:var(--red);box-shadow:0 0 8px #ef444466}.random-toggle,.favourites-toggle{background:var(--color-white);border:1px solid var(--color-grey-border);border-radius:var(--radius-pill);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;touch-action:manipulation;font-size:var(--font-size-link);align-items:center;gap:10px;padding:8px 14px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.random-toggle.disabled{cursor:not-allowed;opacity:.6;color:var(--color-grey-muted);background:var(--color-card-bg);border-color:var(--color-grey-border);--bordered-hover-bg:var(--color-card-bg);--bordered-hover-border:var(--color-grey-border);--bordered-hover-color:var(--color-grey-muted);--bordered-shadow-hover:none;--bordered-shadow-active:none;--bordered-shadow-focus:none}@media (any-hover:hover){.random-toggle.disabled:hover{border-color:var(--color-grey-border);background:var(--color-card-bg)}}.random-toggle.active{background:var(--color-grey-contrast);color:var(--color-white);border-color:var(--color-grey-contrast);--bordered-hover-bg:var(--color-grey-contrast);--bordered-hover-border:var(--color-grey-contrast);--bordered-hover-color:var(--color-white);--bordered-shadow-hover:none;--bordered-shadow-active:none;--bordered-shadow-focus:none}.favourites-toggle.active{background:var(--gold);color:var(--color-white);border-color:var(--gold);--bordered-hover-bg:var(--gold);--bordered-hover-border:var(--gold);--bordered-hover-color:var(--color-white);--bordered-shadow-hover:none;--bordered-shadow-active:none;--bordered-shadow-focus:none}.random-icon,.favourites-icon{justify-content:center;align-items:center;width:20px;height:20px;display:flex}.random-icon svg,.favourites-icon svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px;transition:transform .4s cubic-bezier(.4,0,.2,1)}.favourites-toggle.active .favourites-icon svg{fill:currentColor}.random-toggle.active .random-icon svg{transform:rotate(180deg)}.random-label,.favourites-label{font-weight:400}.favourites-count{width:22px;height:22px;color:var(--color-grey-contrast);background:#0e0e100f;border-radius:50%;flex:0 0 22px;justify-content:center;align-items:center;margin-left:4px;padding:0;font-size:11px;line-height:1;display:inline-flex}@media (prefers-color-scheme:dark){.favourites-count{background:#f0f0f00f}}.counter-wrapper{margin-top:var(--spacing-sm);text-align:center;justify-content:center;align-items:center;gap:8px;display:flex}.counter{font-size:var(--font-size-body-xs);line-height:var(--line-height-section-title);color:var(--color-grey-mid);text-transform:uppercase;letter-spacing:.08em;font-weight:400}.btn-restart{appearance:none;border:1px solid var(--color-grey-border);height:24px;color:var(--color-grey-mid);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;gap:4px;padding:0 8px;transition:all .2s;display:inline-flex}.btn-restart svg{flex-shrink:0;width:14px;height:14px}.btn-restart-text{font-size:12px;font-weight:500;line-height:1}@media (any-hover:hover){.btn-restart:hover{border-color:var(--color-grey-mid);color:var(--color-grey-contrast);background:#0e0e100a}@media (prefers-color-scheme:dark){.btn-restart:hover{background:#f0f0f014}}}.btn-text-link{appearance:none;color:var(--color-grey-mid);font-family:var(--font-family-base);font-size:var(--font-size-link);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:8px;font-weight:400;transition:color .2s}@media (any-hover:hover){.btn-text-link:hover{color:var(--color-grey-contrast);text-decoration:underline}}.footer-section{background:var(--color-white);border-top:1px solid var(--color-grey-border);padding:0;position:relative}.footer-content{max-width:1200px;padding:var(--spacing-lg) 22px;margin:0 auto}.footer-row{align-items:center;gap:var(--spacing-lg);grid-template-columns:auto minmax(0,1fr) auto;margin:0 auto;display:grid}.footer-credits{font-size:var(--font-size-footer);color:var(--color-footer);line-height:var(--line-height-footer);text-align:center}.footer-credits a{color:var(--color-grey-contrast);font-weight:500;text-decoration:none;transition:color .2s;position:relative}@media (any-hover:hover){.footer-credits a:hover{text-decoration:underline}}.footer-link{color:var(--color-footer);font-size:var(--font-size-link);line-height:var(--line-height-footer);-webkit-tap-highlight-color:transparent;align-items:center;gap:6px;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}@media (any-hover:hover){.footer-link:hover{color:var(--color-woodsmoke);text-decoration:underline}}.footer-link svg{stroke-width:2px;flex-shrink:0;width:16px;height:16px;display:block}@media (width<=640px){.header-content{padding:var(--spacing-xs) var(--spacing-sm);align-items:center;column-gap:8px;row-gap:var(--spacing-xs);grid-template-columns:minmax(0,1fr) auto;display:grid}.header-brand{flex-basis:88px;grid-area:1/1;width:88px}.header-brand h1{display:none}.site-logo img{width:88px}.header-actions{grid-area:1/2;gap:8px;margin-left:0}.chapter-select{grid-area:2/1/auto/-1;margin:0 auto;position:static;transform:none}.mode-toggle-wrapper{padding-left:12px;position:relative}.mode-toggle-wrapper:before{content:"";background:var(--color-grey-border);width:1px;height:24px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.mode-toggle{gap:4px;padding:4px 10px;font-size:12px}.mode-toggle .toggle-icon{width:12px;height:12px}.info-wrapper{flex-shrink:0;margin-left:auto}.help-tooltip{top:calc(100% + 8px);right:50%;transform:translate(50%)}@keyframes fadeInScale{0%{opacity:0;transform:translate(50%)scale(.95)translateY(-4px)}to{opacity:1;transform:translate(50%)scale(1)translateY(0)}}.filter-controls{gap:10px}.nav-buttons{flex-wrap:wrap;justify-content:center}.footer-row{text-align:center;flex-direction:column;gap:16px;display:flex}.footer-link{justify-content:center}}@media (width<=340px){.header-brand{flex-basis:80px;width:80px}.site-logo img{width:80px}}@media (width<=535px){#prevBtn .btn-text,#nextBtn .btn-text{display:none}.nav-buttons .btn{padding:8px 12px}}@media (width<=545px){.filter-controls{justify-content:center}.toggle-pair{flex:1 0 100%;justify-content:center;width:100%}.toggle-pair .random-toggle,.toggle-pair .favourites-toggle{width:fit-content;max-width:fit-content}}@media (width<=328px){.filter-controls{gap:0}.filter-group{padding:3px}#bookmarkBtn .btn-text{display:none}#bookmarkBtn{padding-left:12px;padding-right:12px}}.swipe-zone{opacity:0;pointer-events:none;z-index:5;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:none;border-radius:16px;justify-content:center;align-items:center;width:min(15vw,60px);height:35vh;transition:opacity .2s ease-out,transform .2s ease-out;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.swipe-zone-ok{color:var(--green);background:#22c55e0d;border:1.5px dashed #22c55e4d;right:4px}.swipe-zone-review{color:var(--red);background:#ef44440d;border:1.5px dashed #ef44444d;left:4px}.swipe-zone.active{opacity:1;background:#22c55e1f;border-style:solid;border-width:1.5px;transform:translateY(-50%)scale(1.05);box-shadow:0 4px 15px #0000000d}.swipe-zone-review.active{background:#ef44441f}.swipe-zone-icon{stroke-width:1.5px;filter:drop-shadow(0 2px 4px #0000000d);width:32px;height:32px}.card-shell.swiping{cursor:grabbing;transition:none!important}.card-shell.snap-back{transition:transform .4s cubic-bezier(.175,.885,.32,1.275)!important}.card-shell.swipe-exit{transition:none!important}@keyframes swipeExitRight{0%{transform:translate3d(var(--swipe-start-x,0), var(--swipe-start-y,0), 0) rotate(var(--swipe-start-rotation,0deg));opacity:1}to{transform:translate3d(calc(100vw + 50px), var(--swipe-start-y,0), 0) rotate(20deg);opacity:0}}@keyframes swipeExitLeft{0%{transform:translate3d(var(--swipe-start-x,0), var(--swipe-start-y,0), 0) rotate(var(--swipe-start-rotation,0deg));opacity:1}to{transform:translate3d(calc(-100vw - 50px), var(--swipe-start-y,0), 0) rotate(-20deg);opacity:0}}.card-shell.swipe-exit-right{animation:.5s cubic-bezier(.25,1,.5,1) forwards swipeExitRight!important}.card-shell.swipe-exit-left{animation:.5s cubic-bezier(.25,1,.5,1) forwards swipeExitLeft!important}.is-touch .card-shell{touch-action:pan-y pinch-zoom}.mode-revision .card-shell{touch-action:none}.card-shell.swiping:hover{transform:none}@media (any-hover:hover){.info-btn:active{transform:scale(.95)}.card-shell:active{transform:translateY(0)scale(.98)}.modal-btn:active{transform:scale(.98)}.btn-restart:active{transform:scale(.95)}}@media (prefers-color-scheme:dark){.swipe-zone-ok{background:#22c55e1f}.swipe-zone-ok.active{background:#22c55e33}.swipe-zone-review{background:#ef44441f}.swipe-zone-review.active{background:#ef444433}}@media (hover:hover) and (pointer:fine){.swipe-zone{display:none}}.hidden{display:none!important}.sr-only{position:absolute;left:-9999px}
