:root{color-scheme:dark;--bg: #0d0b09;--bg-elev: #1a1614;--ink: #ede6d3;--ink-muted: #8a8479;--ink-dim: #837c70;--ink-detail: #948c80;--burgundy: #6a1a1a;--burgundy-deep: #3a0e0e;--gold: #c9a961;--gold-bright: #e6c988;--gold-dim: #98814a;--gold-rgb: 201, 169, 97;--divider: rgba(var(--gold-rgb), .15);--ok: #6ab04c;--err: #d63447;--card-radius: 4.5% / 3.2%;--card-aspect: 63 / 88;--carousel-card-w: min(380px, 88cqw, calc(78cqh * 63 / 88));--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-decel: cubic-bezier(.06, .85, .2, 1)}*{box-sizing:border-box}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,sans-serif;height:100%;overflow:hidden}body{background:radial-gradient(ellipse at 50% -10%,#1c1512,#0d0b09 60%)}#app{max-width:1080px;margin:0 auto;padding:clamp(.75rem,2vh,2rem) clamp(.75rem,3vw,1.5rem);display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto auto auto;gap:clamp(.75rem,2vh,1.75rem);height:100dvh;overflow:hidden}#app.alpha-notice-dismissed{grid-template-rows:auto minmax(0,1fr) auto auto auto auto}.alpha-notice{display:flex;align-items:center;justify-content:center;gap:.65rem;padding:.45rem .75rem;border:1px solid rgba(var(--gold-rgb),.35);background:rgba(var(--gold-rgb),.1);color:var(--ink-detail);font-size:clamp(.62rem,.45vw + .42rem,.72rem);letter-spacing:.08em;text-align:center;text-transform:uppercase}.alpha-notice[hidden]{display:none}.alpha-banner{display:inline-flex;align-items:center;gap:.45rem}.alpha-banner strong{color:var(--gold-bright);letter-spacing:.2em}.alpha-banner-close{appearance:none;border:0;padding:.1rem .25rem;background:transparent;color:var(--ink-muted);cursor:pointer;font:inherit;font-size:1.25em;line-height:1}.alpha-helper{margin:0}@media (hover: hover){.alpha-banner-close:hover{color:var(--gold-bright)}}.header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding-bottom:clamp(.5rem,1.5vh,1.25rem);border-bottom:1px solid var(--divider)}.header-center{text-align:center;min-width:0}.header-slot{display:flex;align-items:center;gap:.5rem;min-width:0}.header-left{justify-self:start;flex-wrap:wrap}.header-right{justify-self:end;flex-wrap:wrap;justify-content:flex-end}.header h1{font-family:Cinzel,serif;font-weight:600;font-size:clamp(1.5rem,3.5vw,2.5rem);margin:0;letter-spacing:clamp(.2em,.7vw,.35em);color:var(--gold);text-shadow:0 0 30px rgba(var(--gold-rgb),.2);line-height:1}.header .subtitle{font-size:clamp(.65rem,.6vw + .4rem,.75rem);color:var(--ink-muted);letter-spacing:.3em;text-transform:uppercase;margin-top:.35rem}.stage{display:grid;place-items:center;min-height:0;min-width:0;position:relative;perspective:1200px;container-type:size;container-name:stage;overflow-x:hidden;overflow-y:auto}.stage-empty{color:var(--ink-dim);font-style:italic;font-size:.9rem}.card{aspect-ratio:var(--card-aspect);border-radius:var(--card-radius);overflow:hidden;box-shadow:0 20px 40px #00000080,0 0 0 1px #0006;background:#000;position:relative}.card-back{background:#1a0505}.card-face{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover}.card-face-enter{animation:card-face-enter .4s var(--ease-out) both}@keyframes card-face-enter{0%{opacity:0}to{opacity:1}}.carousel{width:100%;max-width:900px;position:relative;overflow:hidden;padding:20px 0;mask-image:linear-gradient(to right,transparent 0,black 12%,black 88%,transparent 100%)}.carousel-track{display:flex;gap:16px;will-change:transform;padding:0 calc(50% - var(--carousel-card-w) / 2)}.carousel-track>.card{flex:0 0 var(--carousel-card-w)}.carousel-highlight{position:absolute;inset:0;pointer-events:none;display:grid;place-items:center}.carousel-highlight:before{content:"";width:calc(var(--carousel-card-w) + 14px);height:calc((var(--carousel-card-w) + 14px) * (88 / 63));border:1px solid var(--gold-dim);border-radius:5%/3.5%;box-shadow:inset 0 0 30px rgba(var(--gold-rgb),.1),0 0 20px rgba(var(--gold-rgb),.08);opacity:0;transition:opacity .4s var(--ease-out)}.carousel.spinning .carousel-highlight:before{opacity:1}.carousel.landed .carousel-highlight:before{opacity:1;animation:land-thunk .24s var(--ease-out)}@keyframes land-thunk{0%{transform:scale(1.02)}60%{transform:scale(.99)}to{transform:scale(1)}}.reveal{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(.4rem,1cqh,1rem);width:100%;height:100%;animation:reveal-enter .2s var(--ease-out) both}.reveal .card{width:var(--carousel-card-w)}.reveal .card:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,#17120e,#221b14,#17120e);background-size:200% 100%;animation:card-shimmer 1.8s ease-in-out infinite}@keyframes card-shimmer{0%{background-position:165% 0}to{background-position:-65% 0}}.reveal-meta{text-align:center;max-width:min(520px,92vw);animation:reveal-meta .8s .3s var(--ease-out) both}.reveal-meta .name{font-family:Cinzel,serif;font-weight:600;font-size:clamp(1.05rem,1.4vw + .6rem,1.4rem);color:var(--gold);letter-spacing:.1em;margin:0}.reveal-meta .type{color:var(--ink-muted);font-size:clamp(.8rem,.7vw + .55rem,.95rem);margin-top:.35rem}.reveal-meta .pt{color:var(--ink);font-size:clamp(.9rem,.7vw + .6rem,1.05rem);margin-top:.5rem;font-weight:600}@keyframes reveal-enter{0%{opacity:0}to{opacity:1}}@keyframes reveal-meta{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.pull-row{display:grid;place-items:center}.pull{font-family:Cinzel,serif;font-weight:600;font-size:clamp(.95rem,1vw + .55rem,1.15rem);letter-spacing:clamp(.15em,.5vw,.25em);color:var(--gold);background:linear-gradient(180deg,#2a1010,#1a0808);border:1px solid var(--gold-dim);border-radius:4px;padding:clamp(.75rem,1.5vh,1rem) clamp(1.5rem,5vw,3rem);cursor:pointer;transition:color .2s,border-color .2s,box-shadow .3s,transform .15s;box-shadow:0 0 rgba(var(--gold-rgb),0)}@media (hover: hover){.pull:hover:not(:disabled){color:var(--gold-bright);border-color:var(--gold);box-shadow:0 0 30px rgba(var(--gold-rgb),.25)}}.pull:active:not(:disabled){transform:scale(.985)}.pull:disabled{color:var(--ink-dim);border-color:var(--ink-dim);cursor:default}.pull .x{font-weight:700;color:var(--gold-bright)}.x-selector{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:.5rem;width:100%;max-width:42rem;margin:0 auto}.x-btn{display:flex;align-items:center;justify-content:center;min-height:2.5rem;padding:.4rem;background:transparent;border:1px solid var(--ink-dim);border-radius:3px;color:var(--ink-muted);font-family:Cinzel,serif;font-weight:500;font-size:clamp(.85rem,.6vw + .55rem,.95rem);cursor:pointer;transition:all .15s}@media (hover: hover){.x-btn:hover{border-color:var(--gold-dim);color:var(--ink)}}.x-btn.active{background:rgba(var(--gold-rgb),.08);border-color:var(--gold);color:var(--gold-bright)}.x-btn--empty{opacity:.32;border-style:dashed;cursor:not-allowed}@media (hover: hover){.x-btn--empty:hover{border-color:var(--ink-dim);color:var(--ink-muted);background:transparent}}.printer-state{display:flex;align-items:center;gap:.4rem;letter-spacing:.15em;text-transform:uppercase;font-size:clamp(.6rem,.4vw + .5rem,.75rem);color:var(--ink-muted)}.dot{width:8px;height:8px;border-radius:50%;background:var(--ink-dim)}.dot.paired{background:var(--ok);box-shadow:0 0 8px color-mix(in srgb,var(--ok) 50%,transparent)}.dot.error{background:var(--err);box-shadow:0 0 8px color-mix(in srgb,var(--err) 50%,transparent)}.dot.busy{background:var(--gold);box-shadow:0 0 8px rgba(var(--gold-rgb),.6)}.pair-btn,.action-btn{background:transparent;border:1px solid var(--ink-dim);color:var(--ink-muted);padding:.35rem .7rem;border-radius:3px;font-family:inherit;font-size:clamp(.7rem,.4vw + .55rem,.8rem);cursor:pointer;transition:all .15s;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}@media (hover: hover){.pair-btn:hover,.action-btn:hover:not(:disabled){border-color:var(--gold-dim);color:var(--ink)}}.action-btn:disabled{opacity:.4;cursor:default}.attribution{font-size:clamp(.6rem,.4vw + .45rem,.7rem);color:var(--ink-dim);text-align:center;letter-spacing:.1em}.attribution a{color:var(--ink-muted);text-decoration:none}@media (hover: hover){.attribution a:hover{color:var(--gold-dim)}}.gear{background:transparent;border:1px solid var(--ink-dim);color:var(--ink-muted);border-radius:3px;width:2rem;height:2rem;font-size:1rem;line-height:1;cursor:pointer;transition:all .15s}@media (hover: hover){.gear:hover{border-color:var(--gold-dim);color:var(--gold-bright)}}.settings-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:100}.settings-overlay[hidden]{display:none}.settings-panel{width:min(30rem,100%);max-height:90dvh;overflow-y:auto;background:var(--bg-elev);border:1px solid var(--divider);border-radius:6px;padding:1.25rem 1.4rem;display:flex;flex-direction:column;gap:.9rem;box-shadow:0 20px 60px -20px #000c}.settings-head{display:flex;align-items:center;justify-content:space-between}.settings-head h2{margin:0;font-family:Cinzel,serif;font-weight:600;font-size:1.05rem;color:var(--ink)}.settings-x{background:none;border:none;color:var(--ink-muted);font-size:1rem;cursor:pointer}@media (hover: hover){.settings-x:hover{color:var(--ink)}}.settings-status{display:flex;align-items:center;gap:.5rem;font-family:ui-monospace,monospace;font-size:.8rem;color:var(--ink-muted)}.settings-field{display:flex;flex-direction:column;gap:.35rem;font-family:ui-monospace,monospace;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}.settings-field select,.settings-field input{background:var(--bg);border:1px solid var(--ink-dim);color:var(--ink);border-radius:3px;padding:.5rem .6rem;font-family:Inter,system-ui,sans-serif;font-size:.85rem;text-transform:none;letter-spacing:normal}.settings-inline{display:flex;gap:.5rem;align-items:stretch}.settings-inline input{flex:1}.settings-sub{font-family:Inter,system-ui,sans-serif;font-size:.72rem;text-transform:none;letter-spacing:normal;color:var(--ink-muted);line-height:1.4}.help-panel{width:min(38rem,100%)}.help-body{display:flex;flex-direction:column;gap:1.4rem}.help-section h3{font-family:Cinzel,serif;font-weight:600;font-size:.95rem;color:var(--gold);margin:0 0 .4rem}.help-section p{margin:0 0 .6rem;font-size:.85rem;line-height:1.6;color:var(--ink-muted)}.help-section ul{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.35rem}.help-section li{font-size:.85rem;line-height:1.5;color:var(--ink-muted)}.help-section strong{color:var(--ink);font-weight:600}.help-ability{border-left:2px solid var(--gold-dim);padding:.4rem 0 .4rem .75rem;color:var(--ink)!important;font-family:ui-monospace,monospace;font-size:.82rem!important}.help-table-scroll{overflow-x:auto}.help-printer-table{width:100%;border-collapse:collapse;font-size:.85rem}.help-printer-table thead th{text-align:left;font-family:ui-monospace,monospace;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);font-weight:500;padding:0 .6rem .4rem;border-bottom:1px solid var(--divider)}.help-printer-table td{padding:.7rem .6rem;border-bottom:1px solid var(--divider);vertical-align:top}.help-td-img{width:72px}.help-printer-img{width:72px;height:auto;border-radius:4px;display:block;background:var(--bg)}.help-printer-name{color:var(--ink);font-weight:600;margin-bottom:.2rem}.help-printer-desc{color:var(--ink-muted);font-size:.8rem;line-height:1.45}.help-printer-tested{margin-top:.35rem;color:var(--gold-bright);font-family:ui-monospace,monospace;font-size:.67rem;letter-spacing:.04em;text-transform:uppercase}.help-td-buy{white-space:nowrap;text-align:right}.help-buy{display:inline-block;border:1px solid var(--gold-dim);border-radius:3px;padding:.35rem .7rem;color:var(--gold-bright);text-decoration:none;font-size:.78rem;letter-spacing:.05em}@media (hover: hover){.help-buy:hover{border-color:var(--gold);background:rgba(var(--gold-rgb),.08)}}.help-buy--disabled{color:var(--ink-dim);border-color:var(--ink-dim);cursor:default}.help-note{font-size:.78rem!important;color:var(--ink-muted)!important}.help-affiliate-disclosure{margin-top:.65rem;color:var(--ink-muted)!important;font-size:.72rem!important;font-style:italic}.help-supply-link{margin-top:.7rem}.settings-advanced{border-top:1px solid var(--divider);padding-top:.6rem}.settings-advanced>summary{cursor:pointer;font-family:ui-monospace,monospace;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);list-style:revert}.settings-advanced[open]>summary{margin-bottom:.6rem}.settings-note{font-family:ui-monospace,monospace;font-size:.75rem;color:var(--gold-dim);padding:.5rem .6rem;border:1px solid var(--divider);border-radius:3px}.settings-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.settings-hint{margin:0;font-size:.72rem;line-height:1.6;color:var(--ink-muted)}.idle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;height:100%;text-align:center}.idle-mv{font-family:Cinzel,serif;font-weight:700;font-size:clamp(4rem,22vh,9rem);line-height:1;color:var(--gold-bright);text-shadow:0 0 40px rgba(var(--gold-rgb),.25)}.idle-label{font-family:ui-monospace,monospace;text-transform:uppercase;letter-spacing:.35em;font-size:clamp(.6rem,.4vw + .5rem,.8rem);color:var(--ink-muted)}.idle-note{margin-top:.75rem;font-size:clamp(.7rem,.4vw + .55rem,.85rem);color:var(--ink-dim);letter-spacing:.05em}.fault{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;max-width:32rem;margin:0 auto;padding:1rem;text-align:center}.fault-icon{font-size:clamp(2rem,6vh,3rem);line-height:1}.fault-title{font-family:Cinzel,serif;font-weight:600;font-size:clamp(1.1rem,1vw + .8rem,1.5rem);color:var(--ink)}.fault-body{font-size:clamp(.8rem,.4vw + .65rem,.95rem);color:var(--ink-muted);line-height:1.5}.fault-help{display:block;margin-top:.6rem;font-family:ui-monospace,monospace;font-size:.8rem;color:var(--gold-dim)}.fault-detail{margin-top:.55rem;font-family:ui-monospace,monospace;font-size:.7rem;line-height:1.4;color:var(--ink-detail);word-break:break-word}.fault-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin-top:.75rem}.browser-list{list-style:none;margin:.5rem 0 0;padding:.75rem 1rem;border:1px solid var(--divider);border-radius:4px;background:#ffffff05;text-align:left;display:inline-flex;flex-direction:column;gap:.4rem}.browser-list li{display:flex;align-items:baseline;gap:.5rem;font-size:clamp(.85rem,.4vw + .7rem,.95rem);color:var(--ink)}.browser-list em{color:var(--ink-muted);font-style:normal;font-size:.85em}.browser-note{margin-top:.75rem;font-size:clamp(.78rem,.4vw + .6rem,.88rem);color:var(--ink-muted);line-height:1.5}.browser-list .mark,.browser-note .mark{font-weight:700;color:var(--ok)}.mark.bad{color:var(--err)}.print-line{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:1.4rem;font-family:ui-monospace,monospace;font-size:clamp(.7rem,.4vw + .55rem,.8rem);letter-spacing:.05em;color:var(--ink-muted)}.pl-dot{width:7px;height:7px;border-radius:50%;background:var(--ink-dim)}.pl-dot.busy{background:var(--gold);box-shadow:0 0 8px rgba(var(--gold-rgb),.6);animation:pl-pulse 1s ease-in-out infinite}.pl-dot.ok{background:var(--ok);animation:pl-pop .15s var(--ease-out)}.pl-dot.err{background:var(--err)}@keyframes pl-pulse{0%,to{opacity:.4}50%{opacity:1}}@keyframes pl-pop{0%{transform:scale(.4)}70%{transform:scale(1.3)}to{transform:scale(1)}}.print-line:has(.pl-dot.busy):after{content:"";width:2ch;margin-left:-.5rem;text-align:left;white-space:pre;animation:pl-ellipsis 1.2s infinite}@keyframes pl-ellipsis{0%{content:""}33%{content:"."}66%{content:".."}to{content:""}}.linkish{background:none;border:none;padding:0;color:var(--gold-dim);font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}@media (hover: hover){.linkish:hover{color:var(--gold-bright)}}@media (max-width: 560px){.x-selector{grid-template-columns:repeat(6,minmax(0,1fr));gap:.4rem}#pairLabel{display:none}.header{gap:.5rem}.pull{width:100%;text-align:center}}@media (max-width: 380px){.x-selector{grid-template-columns:repeat(5,minmax(0,1fr))}.header .subtitle{display:none}}@media (pointer: coarse){.x-btn,.pull,.action-btn,.pair-btn,.gear{min-height:2.75rem}.gear{min-width:2.75rem}.settings-field select,.settings-field input{min-height:2.75rem}}@media (max-height: 620px){.reveal-meta{display:none}:root{--carousel-card-w: min(380px, 88cqw, calc(94cqh * 63 / 88))}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.pl-dot.busy{animation:none}}
