/* Native asset primitives. Text is never rasterized. */
:root{--cream:#fffdf4;--navy:#183844;--jade:#b8e2c9;--sky:#b9e1f3;--coral:#f6ac96;--sunflower:#ffdb71;--muted:#45616a;--border:#66828c;font:16px/1.5 system-ui,sans-serif;color:var(--navy);background:var(--cream)}
*{box-sizing:border-box}body{margin:0}a{color:var(--navy);text-underline-offset:3px}img,svg{max-width:100%}h1{font-size:clamp(1.5rem,3vw,2rem);line-height:1.2}h2{font-size:1.25rem}h3{font-size:1rem}.safe{padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.wrap{max-width:1200px;margin:auto;overflow-wrap:anywhere}.row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.stack{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;overflow-wrap:anywhere}.panel{border:2px solid var(--border);border-radius:24px;padding:20px;background:var(--cream);box-shadow:0 5px 0 #18384416;min-width:0}.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:99px;padding:5px 12px;background:var(--jade)}.note{color:var(--muted);font-size:.875rem}.boundary{border-left:4px solid var(--border);padding:8px 12px;background:var(--sky)}button,input,select,textarea{font:inherit;color:var(--navy);border:2px solid var(--border);border-radius:12px;min-height:48px;padding:10px 14px;background:var(--cream);max-width:100%}button{font-weight:650;cursor:pointer;background:var(--sky)}button.secondary{background:var(--cream)}button:disabled{cursor:not-allowed;background:#e1e8e6;color:var(--muted)}button:hover:not(:disabled){background:var(--jade)}button:active:not(:disabled){transform:translateY(1px)}:focus-visible,.focus-demo{outline:3px solid var(--navy);outline-offset:3px}label{display:grid;gap:6px;margin:8px 0}input:not([type=checkbox]):not([type=radio]):not([type=range]),textarea,select{width:100%}input[type=radio]{width:24px;height:24px;min-height:24px;padding:0;accent-color:var(--navy)}textarea{min-height:96px;resize:vertical}input[type=checkbox]{width:24px;height:24px;min-height:24px;accent-color:var(--navy)}input[type=range]{accent-color:var(--navy);padding:0;min-width:100px}fieldset{border:1px solid var(--border);border-radius:12px;min-width:0}legend{padding:0 6px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:20px}.icon{width:32px;height:32px;flex-shrink:0}.hud{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;background:var(--jade);padding:12px;border-radius:18px}.slot{display:grid;place-items:center;min-height:80px;border:2px dashed var(--border);border-radius:16px;background:var(--sky);padding:12px;text-align:center}.plot{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.plot span{border:2px solid var(--border);border-radius:10px;background:var(--jade);padding:14px;text-align:center}.scroll{max-height:190px;overflow:auto;overscroll-behavior:contain;border:1px solid var(--border);border-radius:12px;padding:12px;scroll-padding:12px}.actions{display:flex;flex-wrap:wrap;gap:10px;position:sticky;bottom:0;padding:12px 0 2px;background:var(--cream)}.actions>*{flex:1 1 auto}progress{width:100%;height:22px;accent-color:var(--navy)}.state{background:var(--jade);border-left:5px solid var(--navy);padding:12px;border-radius:10px}.state.error{background:var(--coral)}.state.locked{background:var(--sunflower)}.answers{display:grid;gap:8px}.answers label{display:flex;align-items:center;padding:8px;border:2px solid var(--border);border-radius:12px}.battle{min-height:160px;background:var(--sky);display:grid;place-items:center;border-radius:18px;padding:16px}.catalog{background:var(--jade)}.qr{aspect-ratio:1;max-width:160px;margin:auto;border:3px dashed var(--border);display:grid;place-items:center;padding:16px;text-align:center}.specimen{max-width:620px;margin:auto}.sample-title{font-size:13px;text-transform:uppercase;letter-spacing:.06em}.gallery-img{width:100%;height:auto;aspect-ratio:420/640;object-fit:contain;background:var(--sky);border-radius:16px}.gallery{max-width:820px;margin:auto}.links{display:flex;gap:16px;flex-wrap:wrap;padding:10px 0}.state-list{display:grid;gap:8px}.state-list a{padding:8px}.tab-nav{display:flex;flex-wrap:wrap;gap:8px}.tab-nav a{padding:10px;background:var(--jade);border-radius:12px}.fixed-close{display:flex;justify-content:space-between;align-items:center;gap:12px;position:sticky;top:0;background:var(--cream);z-index:1}.auth-slot{background:var(--sky);border:2px dashed var(--border);padding:12px;border-radius:16px}.error-text{font-weight:650}dialog{color:var(--navy);background:var(--cream);border:2px solid var(--border);border-radius:24px;max-width:560px;width:calc(100% - 32px);max-height:85dvh;overflow:auto}dialog::backdrop{background:#183844aa}body:has(dialog[open]) .world-slot{pointer-events:none}code{overflow-wrap:anywhere}@media(max-width:420px){.safe{padding-left:12px;padding-right:12px}.panel{padding:16px}.actions button{width:100%}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

:root{font-size:18px;line-height:1.5}
h1,h2{font-size:26px;line-height:1.5}h3{font-size:24px;line-height:1.5}
.note,.sample-title{font-size:18px;line-height:1.5}
button,input,select,textarea{font-size:18px;line-height:1.5;min-height:48px}
.product-card{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px;border:2px solid var(--border);border-radius:16px;background:var(--jade)}
.product-card img{width:48px;height:48px;object-fit:contain;flex-shrink:0}
.product-card strong{font-size:24px}
