:root{color-scheme:light;font-family:Georgia,serif;color:#382f27;background:#e9dec8;--line: #cabb9d}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top,#fcf6e8,transparent 75%)}main{max-width:1150px;margin:auto;padding:28px 28px 18px}h1{margin:7px 0;font-size:clamp(1.9rem,4vw,2.8rem);letter-spacing:-.04em;font-weight:600}h2{margin:6px 0 10px;font-size:clamp(1.15rem,2.6vw,1.65rem)}p{line-height:1.6;margin:.4rem 0}.eyebrow{font-size:.65rem;text-transform:uppercase;letter-spacing:.18em;color:#7a613a;font-weight:700}.masthead{text-align:center;padding-bottom:20px}.masthead>p:last-child{color:#766344;font-style:italic}button,select{font:inherit;color:inherit;background:#fbf5e8;border:1px solid #bca987;border-radius:5px;padding:.65rem .85rem}button{cursor:pointer;touch-action:manipulation}button:hover:not(:disabled){background:#e9dbba;border-color:#8d6a2d}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,select:focus-visible{outline:3px solid #086d87;outline-offset:3px}select{max-width:100%}label{display:flex;align-items:center;gap:12px;font-size:.9rem}[hidden]{display:none!important}.controls{border-block:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0}.buttons{display:flex;gap:7px;font-size:.85rem}.point-total{display:grid;grid-template-columns:auto auto;column-gap:12px;align-items:baseline}.point-total>span{font-size:.72rem;text-transform:uppercase;letter-spacing:.09em}.point-total strong{font-size:2rem;color:#20533c}.point-total small{grid-column:1 / -1;color:#786648;font:10px/1.6 system-ui,sans-serif}.category-switch{display:none}.card-categories{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:18px;margin-top:16px}.tray-section{min-width:0;padding:12px;border:1px solid var(--line);border-radius:8px}.tray-help{font:11px/1.6 system-ui,sans-serif;color:#786648;margin-bottom:7px}.tray-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.tray-scroll{display:flex;gap:5px}.tray-scroll button{padding:.3rem .6rem;font-size:.8rem}.card-tray{display:flex;gap:9px;overflow-x:auto;padding:5px 3px 12px;scrollbar-color:#b6a583 #e6dac1;scrollbar-width:thin}.tray-card,.dop-choice{flex:0 0 81px;min-width:0;padding:0;border:2px solid transparent;position:relative;background:transparent;border-radius:6px;-webkit-user-select:none;user-select:none}.tray-card{touch-action:manipulation;cursor:grab}.tray-card:active{cursor:grabbing}.tray-card img,.dop-choice img{width:100%;height:auto;display:block;border-radius:5px;pointer-events:none}.tray-card-name{display:block;min-height:35px;padding:5px 2px 0;font:9px/1.4 system-ui,sans-serif}.tray-card.selected,.dop-choice.selected{border-color:#326b4d;background:#dce5cc}.selected-count:not(:empty){position:absolute;top:3px;right:3px;border-radius:12px;padding:3px 5px;background:#174931;color:#fff;font:700 10px system-ui,sans-serif}.drop-area{display:flex;align-items:stretch;justify-content:center;gap:14px;margin-top:10px}.drop-slot{display:flex;align-items:center;justify-content:center;gap:12px;flex:0 1 270px;min-height:104px;min-width:0;padding:10px;border:2px dashed #b6a27c;border-radius:8px;background:#f7efdc;text-align:center;font-size:.84rem}.drop-slot.filled{border-style:solid;background:#fbf5e8}.drop-slot.drag-over{border-color:#237a4f;background:#dbeccf;box-shadow:0 0 0 3px #4c9a5d44}.drop-slot img{width:54px;height:auto;border-radius:4px}.drop-slot strong{display:block;font-size:.83rem;margin-bottom:8px}.drop-slot button{font:10px system-ui,sans-serif;padding:5px 8px}.dop-options{margin:14px auto 0;padding:12px;border:1px solid #bca987;border-radius:8px;max-width:360px;text-align:center}.dop-options legend{padding:0 8px;font-size:.9rem}.dop-choices{display:flex;justify-content:center;gap:24px}.dop-choice{flex-basis:100px;touch-action:manipulation}.selection-note{text-align:center;font:11px/1.6 system-ui,sans-serif;color:#786648;min-height:1.6em;margin:8px 0 0}.drag-ghost{position:fixed;width:92px;pointer-events:none;transform:translate(-50%,-50%) rotate(-5deg);z-index:1000;filter:drop-shadow(0 7px 10px #0005)}.drag-ghost img{width:100%;display:block;border-radius:5px}body.dragging{-webkit-user-select:none;user-select:none;cursor:grabbing}.diamond-options{border:0;text-align:center;margin:12px 0 0;padding:0}.diamond-options legend{margin:0 auto 7px;font-size:.8rem}.diamond-options button{margin:0 3px;font-size:.8rem}.diamond-options button[aria-pressed=true]{background:#214f3c;color:#fff3d4}.stage{margin-top:18px;border-radius:12px;overflow:hidden;background:#152e29;box-shadow:0 12px 26px #322b2018;color:#f3e7d0}.stage-heading{display:flex;justify-content:space-between;gap:18px;padding:18px 22px 0;font-size:.83rem}.stage-heading>span:last-child{color:#a7dcc4}#viewport{height:540px;position:relative;touch-action:pan-y}#viewport canvas{display:block;width:100%;height:100%;cursor:grab}#viewport canvas:active{cursor:grabbing}#scene-loading{position:absolute;inset:45% 0 auto;text-align:center;color:#f8e6bb}.view-hint{margin:0;padding:12px 14px;border-top:1px solid #bca98726;display:flex;justify-content:space-between;gap:8px;font:10px/1.6 system-ui,sans-serif;letter-spacing:.05em;color:#c5d2c2}.error{margin:16px;padding:12px;background:#fff2dd;color:#732e23;border:1px solid #d5a58a;border-radius:5px;font:13px/1.6 system-ui,sans-serif}.fallback-cards{display:flex;justify-content:center;gap:14px;padding:0 14px 18px}.fallback-cards img{width:min(36%,170px);height:auto;object-fit:contain;border-radius:8px}.explanation{padding:20px 24px;margin-top:20px;border:1px solid #bca987;border-left:4px solid #99743b;border-radius:6px;background:#faf4e6}#description{font-size:.95rem}#outcome{color:#20533c;margin-top:12px;min-height:1.6em;font:13px/1.7 system-ui,sans-serif}footer{text-align:center;padding-top:18px;font:11px/1.7 system-ui,sans-serif;color:#77694f}footer p{margin:3px 0}@media(max-width:950px){.category-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.category-switch button{min-height:44px;padding:8px;font-size:.85rem}.category-switch button[aria-pressed=true]{background:#214f3c;border-color:#214f3c;color:#fff3d4}.card-categories{grid-template-columns:minmax(0,1fr);margin-top:8px}.tray-scroll button{min-width:44px;min-height:44px}.buttons button,.drop-slot button,.diamond-options button{min-height:44px}.card-tray>:first-child{margin-inline-start:auto}.card-tray>:last-child{margin-inline-end:auto}.tray-card{flex-basis:88px}.tray-card-name{font-size:11px;min-height:34px}.drop-area{margin-top:8px}.drop-slot{flex-basis:100%;padding:4px 8px;min-height:52px;font-size:.8rem}.drop-slot img{display:none}.drop-slot>div{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}.drop-slot strong{font-size:.8rem;margin:0;text-align:left}.drop-slot button{min-width:64px;min-height:44px;font-size:11px}.dop-options{width:100%;max-width:480px;min-width:0;margin-top:8px;padding:6px}.dop-options legend{font-size:.8rem}.dop-choices{gap:6px}.dop-choice{flex:1 1 0;display:flex;align-items:center;gap:6px;padding:4px}.dop-choice img{width:32px;flex-shrink:0}.dop-choice .tray-card-name{min-height:0;padding:0;text-align:left;overflow-wrap:anywhere}.dop-choice .selected-count{display:none}#viewport{height:clamp(320px,65svh,460px)}}@media(max-width:650px){main{padding:12px 10px 16px}.masthead{padding-bottom:10px}.masthead .eyebrow{font-size:.58rem;letter-spacing:.12em}h1{font-size:1.8rem;margin:5px 0}.masthead>p:last-child{font-size:.9rem}.controls{flex-wrap:wrap;gap:8px;padding:8px 0}.point-total{margin:auto;text-align:center}.point-total strong{font-size:1.6rem}.buttons{width:100%;font-size:.8rem}.buttons button{flex:1;min-height:44px;padding:8px 4px}.tray-section{padding:8px}.tray-heading{margin-bottom:0;gap:6px}.tray-heading h2{margin:0;letter-spacing:.1em}.tray-help{margin:2px 0 5px}.card-tray{gap:8px;padding-bottom:6px;overscroll-behavior-x:contain}.selection-note{margin-top:6px}.diamond-options{margin-top:8px}.diamond-options button{min-height:44px;padding:8px}.stage{margin-top:10px}.stage-heading{font-size:.75rem;padding:12px 12px 0;flex-wrap:wrap;gap:4px 12px}#viewport{height:clamp(300px,100vw,420px)}.view-hint{font-size:10px;flex-direction:column;align-items:center;text-align:center;padding:8px}.explanation{padding:12px;margin-top:12px}#description{font-size:.9rem}}@media(pointer:coarse){.tray-card,#viewport canvas{cursor:pointer}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
