:root{color:#263d39;font-synthesis:none;--green:#244f4b;--paper:#fffcf5;--muted:#687971;--line:#d8ddcc;--coral:#ce644d;background:#f4f0e6;font-family:Yu Gothic,Hiragino Kaku Gothic ProN,system-ui,sans-serif;font-weight:500}*{box-sizing:border-box}body{background:radial-gradient(at 12% 20%,#fffaf1 0,#0000 60%),radial-gradient(at 100% 0,#dce7da 0,#0000 55%),#f4f0e6;min-width:300px;margin:0}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:disabled{cursor:default;opacity:.42}button:focus-visible{outline-offset:3px;outline:3px solid #d57c32}button svg{flex-shrink:0;width:22px;height:22px}[hidden]{display:none!important}h1,h2,h3,p{margin:0}.shell{width:min(1040px,100% - 48px);margin:auto;padding:28px 0 16px}.masthead{align-items:center;gap:16px;display:flex}.brand-icon{background:var(--green);color:#f8e8bb;border-radius:16px 16px 6px;place-items:center;width:54px;height:54px;display:grid;transform:rotate(-5deg)}.brand-icon svg{width:33px;height:33px}.eyebrow{letter-spacing:.16em;color:#698077;font-size:10px;font-weight:800}h1{letter-spacing:.08em;font-size:29px;line-height:1.5}.header-actions{gap:8px;margin-left:auto;display:flex}.icon-button{background:#fffcf596;border:1px solid #b6c5b7;border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.help-button{font-family:Georgia,serif;font-size:22px;font-weight:700}.journey{border-block:1px solid var(--line);align-items:center;gap:20px;margin:22px 0 30px;padding:13px 0;display:flex}.trip-label{letter-spacing:.06em;font-size:13px}#tickets{gap:7px;margin:0 0 0 auto;padding:0;list-style:none;display:flex}#tickets li{color:#819083;background:#f8f7ef;border:1px solid #cdd6c8;border-radius:6px;place-items:center;width:25px;height:25px;font-size:10px;display:grid}#tickets .active{border:2px solid var(--coral);color:var(--coral);background:#fff6df}#tickets .you{background:var(--green);border-color:var(--green);color:#fff}#tickets .early{color:#955440;background:#efd4c8;border-color:#deac95}#tickets .cpu,#tickets .pass{background:#dce1d4}#round-label{text-align:right;min-width:64px;color:var(--muted);font-size:11px}.play-layout{grid-template-columns:minmax(0,350px) minmax(0,1fr);align-items:start;gap:52px;display:grid}.duel-card{background:var(--paper);border:1px solid #dfdfce;border-radius:16px;padding:21px 24px 16px;position:relative;box-shadow:0 7px #e3e2d34d}.card-heading{border-bottom:1px dashed #d9d8c8;justify-content:space-between;align-items:center;padding-bottom:12px;display:flex}.round-tag{color:var(--muted);font-size:11px}.contestants{color:#65736b;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;font-size:10px;display:flex}.contestants span{white-space:nowrap;align-items:center;gap:4px;display:flex}.contestants svg{width:24px;height:24px}.contestants b{background:#edf0e4;border-radius:20px;padding:2px 6px;font-size:11px}.contestants i{color:#96a38e;font-family:Georgia,serif}.offer-art{background:radial-gradient(#f0f0df 0,#0000 66%);place-items:center;height:158px;margin:11px 0 8px;display:grid;position:relative}.offer-art:after{content:"";background:#324d3e0c;border-radius:50%;width:126px;height:12px;position:absolute;bottom:6px}.offer-art .luggage-art{filter:drop-shadow(0 5px 1px #334b4220);z-index:1;width:auto;max-width:185px;height:126px;transform:rotate(-5deg)}.offer-description{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.offer-description h2{letter-spacing:.03em;font-size:17px}.value-badge{white-space:nowrap;background:#eef0e3;border-radius:4px;padding:5px 7px;font-size:11px;font-weight:700}.offer-note{color:#758075;text-align:center;margin-top:8px;font-size:11px}.signal-zone{text-align:center;min-height:58px;margin:22px 0 17px}#signal-label{color:var(--green);letter-spacing:.03em;font-size:18px;font-weight:800}#signal-detail{color:#788274;margin-top:7px;font-size:11px}.primary,.secondary{border:1px solid #0000;border-radius:9px;min-height:48px;padding:12px 18px;font-size:13px;font-weight:700}.primary{background:var(--green);color:var(--paper);box-shadow:0 3px #153b36}.primary:hover{background:#32625b}.primary:active{transform:translateY(2px);box-shadow:0 1px #153b36}.secondary{background:0 0;border-color:#bcc6b6}.wide{justify-content:center;align-items:center;gap:16px;width:100%;display:flex}.tiny{text-align:center;color:#798174;min-height:18px;margin:12px 0 0;font-size:10px;line-height:1.8}#race-actions{text-align:center}.buzzer{background:var(--coral);color:#fff6e8;-webkit-user-select:none;user-select:none;border:5px solid #f0c8af;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:146px;height:116px;margin:0 auto 18px;display:flex;box-shadow:0 8px #a54636,0 12px #e7d8bc,0 15px 17px #7254321a}.buzzer span{letter-spacing:.1em;font-size:26px;font-weight:800}.buzzer small{letter-spacing:.08em;opacity:.85;font-size:9px}.buzzer:active{transform:translateY(5px);box-shadow:0 3px #a54636,0 7px #e7d8bc}.text-button{text-underline-offset:4px;color:#69766c;background:0 0;border:0;min-height:44px;padding:8px 12px;font-size:11px;text-decoration:underline}[data-phase=signal] .signal-zone{background:#fff0cc;border-radius:12px;margin-top:14px;margin-bottom:9px;padding:8px 0}[data-phase=signal] #signal-label{color:#a9472e;font-size:29px;animation:.18s ease-out signal-pop}[data-phase=signal] .duel-card{border-color:#dca66f;box-shadow:0 0 0 3px #e8c88b80}.bag-heading{justify-content:space-between;align-items:center;gap:12px;margin:-2px 0 27px;display:flex}.bag-heading h2{letter-spacing:.04em;margin-top:5px;font-size:18px}.score-tag{white-space:nowrap;border-left:1px solid #ccd5c7;align-items:baseline;gap:7px;padding-left:18px;display:flex}.score-tag b{font-family:Georgia,serif;font-size:32px;font-weight:500}.score-tag span{color:#728371;font-size:10px}.case-outer{background:repeating-linear-gradient(0deg,#c09d70 0 2px,#bd996c 2px 4px);border:3px solid #a78256;border-radius:22px;max-width:470px;margin:0 auto;padding:15px 18px 25px;position:relative;box-shadow:0 7px #906e47,0 16px 21px #4c573622}.case-outer:before,.case-outer:after{content:"";z-index:1;background:#7d6747;border-radius:3px;width:7px;height:40px;position:absolute;top:calc(50% - 20px)}.case-outer:before{left:-6px}.case-outer:after{right:-6px}.case-handle{border:7px solid #866b49;border-bottom:0;border-radius:12px 12px 0 0;width:72px;height:19px;position:absolute;top:-19px;left:calc(50% - 36px)}.case-stitch{border:1px dashed #f1d9b3;border-radius:9px;padding:7px}.board{aspect-ratio:6/5;touch-action:none;-webkit-user-select:none;user-select:none;background:#e9ddbc;border:2px solid #866f4f;border-radius:7px;position:relative;overflow:hidden;box-shadow:inset 0 2px 7px #60492f26}.board-cells{grid-template-rows:repeat(5,1fr);grid-template-columns:repeat(6,1fr);display:grid;position:absolute;inset:0}.cell{background:0 0;border:1px dashed #bdb597;border-top:0;border-left:0;border-radius:0;min-width:0;min-height:0;padding:0;opacity:1!important}.cell:nth-child(6n){border-right:0}.cell:nth-child(n+25){border-bottom:0}.cell:focus-visible{outline-offset:-4px;z-index:4;outline-color:#244f4b}.selecting .cell{cursor:crosshair}.pieces,.ghost{pointer-events:none;position:absolute;inset:0}.packed-piece{filter:drop-shadow(0 2px 1px #63502f35);padding:1px;position:absolute}.packed-piece .luggage-art{width:100%;height:100%;display:block}.packed-piece.is-selected{opacity:.42}.ghost-cell{background:#3d8c593d;border:3px solid #2f6e56;border-radius:8px;width:16.6667%;height:20%;position:absolute}.ghost-cell.invalid{background:#d859493b;border-color:#b73b33}.case-label{letter-spacing:.28em;text-align:center;color:#5d4c35;font-size:8px;font-weight:800;position:absolute;bottom:4px;left:0;right:0}.bag-meta{color:#6c7a6d;justify-content:space-between;max-width:470px;margin:16px auto 12px;font-size:11px;display:flex}.packing-tools{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.tool-button{background:#fffcf5a6;border:1px solid #c5d0bf;border-radius:7px;justify-content:center;align-items:center;gap:5px;min-height:44px;padding:8px 11px;font-size:12px;display:flex}kbd{opacity:.7;border:1px solid #bfcab6;border-radius:3px;padding:0 3px;font-size:9px}.packing-hint{text-align:center;color:#65796b;min-height:34px;margin:10px 0 9px;font-size:11px;line-height:1.7}.tray-heading{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.tray-heading h3{font-size:12px;font-weight:700}.tray-heading h3 span{text-align:center;background:#e1e7d7;border-radius:50%;min-width:19px;margin-left:5px;padding:2px;font-size:10px;display:inline-block}.tray-heading small{color:#8c715e;font-size:10px}.inventory{background:#e9eddf66;border:1px dashed #bcc8b6;border-radius:10px;flex-wrap:wrap;gap:8px;min-height:65px;padding:7px;display:flex}.empty-tray{color:#788774;margin:auto;font-size:11px}#mobile-actions{margin-top:15px}#mobile-actions:empty{display:none}.inventory-button{text-align:left;touch-action:none;background:#fffcf5;border:1px solid #d7d9c4;border-radius:8px;flex:1 0 140px;align-items:center;gap:8px;min-height:58px;padding:7px;font-size:10px;display:flex}.inventory-button.chosen{background:#fff8dc;border:2px solid #466e58;padding:6px}.inventory-button small{color:#7a816c;margin-top:5px;font-size:9px;display:block}.inventory-art{flex-shrink:0;place-items:center;width:48px;height:40px;display:grid}.inventory-art svg{width:auto;max-width:48px;height:40px;max-height:40px}footer{color:#85907f;border-top:1px solid #d9dfcf;justify-content:space-between;align-items:center;margin-top:15px;padding-top:4px;font-size:10px;display:flex}dialog{background:var(--paper);width:min(460px,100vw - 28px);max-height:calc(100dvh - 36px);color:var(--green);border:1px solid #d0d4be;border-radius:18px;padding:28px;box-shadow:0 25px 90px #152d3750}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#193b3a66}dialog h2{margin:15px 0 10px;font-size:23px;line-height:1.5}dialog>p{color:#748175;margin-bottom:20px;font-size:12px;line-height:1.8}.dialog-heading{justify-content:space-between;align-items:center;display:flex}.instructions{margin:22px 0;padding-left:24px}.instructions li{margin:18px 0;padding-left:6px;font-size:14px}.instructions p{color:#68796c;margin-top:5px;font-size:12px;line-height:1.9}.dialog-note{color:#6f7e6c;border-top:1px dashed #ccd2bc;margin-bottom:20px;padding-top:15px;font-size:11px;line-height:1.8}.dialog-buttons{justify-content:flex-end;gap:10px;display:flex}#result-dialog{text-align:center}.result-stamp{background:#edf1df;border:1px dashed #95a68b;border-radius:50%;place-items:center;width:65px;height:65px;margin:20px auto 0;display:grid;transform:rotate(-7deg)}.result-stamp svg{width:38px;height:38px}.result-score{color:var(--coral);justify-content:center;align-items:baseline;gap:9px;margin:8px 0 18px;display:flex}.result-score b{font-family:Georgia,serif;font-size:68px;line-height:1}.result-score span{font-size:17px}#result-breakdown{border-block:1px dashed #d1d5bd;margin:0 0 13px;padding:12px 0;font-size:12px}#result-breakdown div{justify-content:space-between;padding:5px 2px;display:flex}#result-breakdown dd{margin:0;font-weight:700}#result-fastest{font-size:11px}#result-dialog .secondary{margin-top:13px}#result-dialog .text-button{margin-top:8px}@keyframes signal-pop{0%{transform:scale(.85)}to{transform:scale(1)}}@media (min-width:721px) and (max-height:820px){.shell{padding-top:16px}.journey{margin:15px 0 22px;padding:10px 0}.play-layout{grid-template-columns:340px minmax(0,1fr);gap:42px}.case-outer,.bag-meta{max-width:392px}.offer-art{height:140px}.bag-heading{margin-bottom:25px}.packing-hint{margin:7px 0 4px}.inventory{min-height:58px}footer{margin-top:9px}}@media (max-width:720px){.shell{width:calc(100% - 28px);padding-top:18px}.masthead{gap:10px}.brand-icon{border-radius:12px;width:43px;height:43px}.brand-icon svg{width:27px;height:27px}h1{letter-spacing:.04em;font-size:23px}.eyebrow{font-size:9px}.header-actions{gap:5px}.header-actions .icon-button{width:40px;height:40px}.journey{flex-wrap:wrap;gap:10px;margin:16px 0 22px;padding:10px 0}.trip-label{flex:1;font-size:10px}#round-label{order:1;min-width:40px;font-size:10px}#tickets{order:2;justify-content:space-between;gap:5px;width:100%;margin:0}#tickets li{width:26px;height:22px}.play-layout{grid-template-columns:1fr;gap:30px}.duel-card{width:100%;max-width:470px;margin:auto;padding:16px 20px 12px;scroll-margin-top:14px}.card-heading{padding-bottom:8px}.contestants{margin-top:12px}.offer-art{height:122px;margin:6px 0}.offer-art .luggage-art{max-width:165px;height:104px}.offer-note{font-size:10px}.signal-zone{min-height:49px;margin:15px 0 12px}#signal-label{font-size:17px}.buzzer{width:140px;height:98px}.buzzer span{font-size:23px}.packing-section{scroll-margin-top:16px}.bag-heading h2{font-size:16px}.score-tag{gap:4px;padding-left:10px}.score-tag b{font-size:29px}.case-outer{border-radius:16px;padding:10px 10px 22px}.case-stitch{padding:4px}.bag-meta{margin-top:15px}.packing-tools{gap:4px}.tool-button{white-space:nowrap;flex:1;padding:7px 9px;font-size:11px}.tool-button svg{width:19px;height:19px}kbd{display:none}.packing-hint{min-height:34px}[data-phase=packing] .duel-card{grid-template-columns:1fr auto;gap:5px;padding:13px 16px;display:grid}[data-phase=packing] .card-heading,[data-phase=packing] .contestants,[data-phase=packing] .offer-art,[data-phase=packing] .offer-note,[data-phase=packing] .offer-description{display:none}[data-phase=packing] .signal-zone{text-align:left;grid-column:1/-1;min-height:0;margin:0}[data-phase=packing] #signal-label{font-size:15px}[data-phase=packing] #signal-detail{font-size:10px}[data-phase=packing] #packing-actions{grid-column:1/-1;margin-top:9px}[data-phase=packing] #packing-actions .tiny{margin-top:7px}[data-phase=result] .offer-art{height:94px}[data-phase=result] .offer-art .luggage-art{height:80px}.tray-heading small{font-size:9px}.inventory-button{flex-basis:130px}dialog{padding:22px}dialog h2{font-size:20px}}@media (max-width:350px){.shell{width:calc(100% - 20px)}h1{font-size:21px}.brand-icon{display:none}.tool-button{padding:6px;font-size:10px}.tool-button svg{width:17px}.case-outer{padding:8px 6px 20px}.case-stitch{padding:3px}.tray-heading{align-items:start}.tray-heading small{text-align:right;max-width:140px}.score-tag span{font-size:9px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
