.cham-root{--c-cream-50:#fffaf0;--c-cream-100:#fcf1de;--c-cream-200:#f7e6c9;--c-cream-300:#f4ddc1;--c-wine-800:#520210;--c-wine-900:#380009;--c-ink-900:#1a1014;--c-ink-700:#3d2a35;--c-plum-700:#4a2a48;--c-sage-500:#6e9682;--c-ochre-500:#a8855e;--c-rose:#d8657a;--c-backdrop:#0e0c09;--c-border:1.5px solid var(--c-ink-900);--c-stamp:4px 4px 0 var(--c-ink-900);--c-display:var(--cham-font-display), "Bagel Fat One", system-ui, sans-serif;--c-mono:var(--cham-font-mono), "JetBrains Mono", ui-monospace, monospace;--c-body:var(--cham-font-body), "Inter", ui-sans-serif, system-ui, sans-serif;--c-ease:cubic-bezier(.22, 1, .36, 1);--c-spring:cubic-bezier(.34, 1.56, .64, 1);font-family:var(--c-body);color:var(--c-ink-900)}.cham-btn{border:var(--c-border);min-height:44px;font-family:var(--c-mono);letter-spacing:.04em;text-transform:lowercase;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform .16s var(--c-ease), box-shadow .16s var(--c-ease), background-color .16s var(--c-ease), color .16s var(--c-ease);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:12px;font-weight:500;display:inline-flex}.cham-btn:focus-visible,.cham-link:focus-visible,.cham-thumb:focus-visible,.cham-chip:focus-visible{outline:3px solid var(--c-wine-800);outline-offset:3px}.cham-btn-primary{color:var(--c-cream-50);border-color:var(--c-wine-900);background:linear-gradient(180deg, #7a0a20 0%, var(--c-wine-800) 55%, var(--c-wine-900) 100%);text-shadow:0 1px #00000059;box-shadow:inset 0 1px 0 #fff3, inset 0 -1px 0 #00000040, 3px 3px 0 var(--c-ink-900)}.cham-btn-secondary{color:var(--c-ink-900);background:var(--c-cream-50);box-shadow:3px 3px 0 var(--c-ink-900)}.cham-btn-secondary[aria-pressed=true]{background:var(--c-ink-900);color:var(--c-cream-100)}.cham-btn-danger{color:var(--c-cream-50);background:var(--c-ink-900);box-shadow:3px 3px 0 var(--c-wine-800)}.cham-btn-ghost{color:var(--c-ink-700);background:0 0;border-color:#0000}.cham-btn-sm{padding:8px 14px;font-size:11px}@media (hover:hover){.cham-btn-primary:hover,.cham-btn-secondary:hover{box-shadow:inset 0 1px 0 #fff3, 4px 4px 0 var(--c-ink-900);transform:translate(-1px,-1px)}.cham-btn-secondary:hover:not([aria-pressed=true]){background:var(--c-cream-200)}.cham-btn-ghost:hover,.cham-link:hover{color:var(--c-wine-800)}}.cham-btn-primary:active,.cham-btn-secondary:active,.cham-btn-danger:active{box-shadow:1px 1px 0 var(--c-ink-900);transform:translate(2px,2px)}.cham-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.cham-link{min-width:44px;min-height:44px;font-family:var(--c-mono);letter-spacing:.04em;text-transform:lowercase;text-underline-offset:3px;color:var(--c-ink-700);cursor:pointer;background:0 0;border:0;padding:0 10px;font-size:11px;text-decoration:underline}.cham-label{font-family:var(--c-mono);letter-spacing:.08em;text-transform:lowercase;color:var(--c-ink-700);margin:0;font-size:11px;font-weight:500}.cham-hint{font-family:var(--c-mono);color:var(--c-ink-700);margin:0;font-size:11px;line-height:1.5}.cham-sr{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.cham-hero{--top:140px;--bottom:96px;z-index:1;background:var(--c-backdrop);border-bottom:1.5px solid var(--c-ink-900);height:90vh;min-height:560px;position:relative;overflow:hidden;container:cham-hero/size}.cham-frame{left:0;right:0;top:var(--top);bottom:var(--bottom);position:absolute}.cham-placeholder,.cham-painting,.cham-canvas{width:100%;height:100%;position:absolute;inset:0}.cham-bleed{z-index:0;filter:blur(48px)brightness(.8)saturate(.9);pointer-events:none;background:50%/cover no-repeat;position:absolute;inset:0;transform:scale(1.25)}.cham-placeholder{filter:blur(10px);background:50%/contain no-repeat;transform:scale(.98)}.cham-painting{object-fit:contain;filter:drop-shadow(0 0 70px #0e0c09bf);-webkit-mask-composite:source-in;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none;display:block;-webkit-mask-image:linear-gradient(90deg,#0000,#000 3% 97%,#0000),linear-gradient(#0000,#000 3% 97%,#0000);mask-image:linear-gradient(90deg,#0000,#000 3% 97%,#0000),linear-gradient(#0000,#000 3% 97%,#0000);-webkit-mask-composite:source-in;mask-composite:intersect}.cham-canvas{touch-action:manipulation;cursor:crosshair;outline:none;display:block}.cham-hero[data-mode=place] .cham-canvas{touch-action:none;cursor:grab}.cham-hero[data-mode=place] .cham-canvas:focus-visible{box-shadow:inset 0 0 0 3px var(--c-cream-300)}.cham-side{display:contents}.cham-card,.cham-bar,.cham-place,.cham-picker,.cham-mine{background:var(--c-cream-100);border:var(--c-border);box-shadow:var(--c-stamp)}.cham-card{z-index:2;width:min(600px,100% - 32px);max-height:calc(var(--top) - 38px);text-align:center;border-radius:14px;padding:10px 18px 12px;position:absolute;top:30px;left:50%;overflow:hidden;transform:translate(-50%)}.cham-name{font-family:var(--c-display);letter-spacing:.01em;text-transform:lowercase;color:var(--c-wine-800);text-shadow:3px 3px 0 var(--c-cream-300);margin:0;font-size:clamp(30px,5vw,50px);font-weight:400;line-height:1}.cham-copy{color:var(--c-ink-700);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:6px 0 0;font-size:14px;line-height:1.45;display:-webkit-box;overflow:hidden}.cham-mine-inline{display:none}.cham-bar{z-index:2;border-radius:999px;align-items:center;gap:14px;max-width:calc(100% - 24px);padding:8px 10px 8px 18px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.cham-count{font-family:var(--c-mono);white-space:nowrap;color:var(--c-ink-700);font-variant-numeric:tabular-nums;margin:0;font-size:12px}.cham-count b{color:var(--c-wine-800);font-weight:700}.cham-bar-actions{gap:8px;display:flex}.cham-place,.cham-picker,.cham-mine{z-index:3;border-radius:18px;width:min(640px,100% - 24px);padding:12px 14px;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.cham-place{gap:8px;display:grid}.cham-place-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.cham-place-sliders{grid-template-columns:1fr 1fr;gap:4px 16px;display:grid}.cham-hero[data-mode=place]{--top:26px;--bottom:214px}.cham-only-mouse{display:none}@media (hover:hover) and (pointer:fine){.cham-only-touch{display:none}.cham-only-mouse{display:inline}}.cham-chip{border:var(--c-border);background:var(--c-cream-50);min-height:44px;color:var(--c-ink-900);font-family:var(--c-mono);text-transform:lowercase;cursor:pointer;border-radius:12px;flex-shrink:0;align-items:center;gap:8px;padding:4px 12px 4px 8px;font-size:12px;display:inline-flex}.cham-chip-hint{color:var(--c-wine-800);text-underline-offset:2px;font-size:10px;text-decoration:underline}.cham-slider{min-width:0;min-height:44px;font-family:var(--c-mono);color:var(--c-ink-700);align-items:center;gap:10px;font-size:11px;display:flex}.cham-slider input{min-width:0;accent-color:var(--c-wine-800);flex:1;height:28px}.cham-place-toggles,.cham-place-actions{gap:8px;display:flex}.cham-place-actions{justify-content:space-between}.cham-picker-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.cham-tray{scroll-snap-type:x proximity;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;gap:8px;margin:0;padding:4px 2px 8px;list-style:none;display:flex;overflow-x:auto}.cham-thumb{scroll-snap-align:start;border:var(--c-border);background:var(--c-cream-50);width:78px;height:96px;color:var(--c-ink-900);font-family:var(--c-mono);text-transform:lowercase;cursor:pointer;border-radius:12px;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;padding:8px 4px 6px;font-size:10px;transition:background-color .12s,color .12s;display:flex}.cham-thumb span{white-space:nowrap}.cham-thumb[aria-pressed=true],.cham-thumb:active{background:var(--c-wine-800);color:var(--c-cream-100)}@media (hover:hover){.cham-thumb:hover{background:var(--c-cream-200)}}.cham-mine-list{gap:4px;max-height:min(46vh,320px);margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.cham-mine-list li{border-bottom:1px solid #1a10141f;align-items:center;gap:10px;padding:2px 0;display:flex}.cham-mine-name{flex-direction:column;flex:1;min-width:0;font-size:14px;display:flex}.cham-mine-name small{font-family:var(--c-mono);color:var(--c-ink-700);font-size:10px}.cham-ripple{z-index:1;border:2px solid var(--c-cream-300);pointer-events:none;width:44px;height:44px;animation:cham-ripple .65s var(--c-ease) forwards;border-radius:50%;margin:-22px 0 0 -22px;position:absolute}@keyframes cham-ripple{0%{opacity:.9;transform:scale(.3)}to{opacity:0;transform:scale(1.4)}}.cham-reveal{z-index:2;background:var(--c-cream-50);border:var(--c-border);max-width:min(260px,80vw);box-shadow:3px 3px 0 var(--c-ink-900);text-align:center;animation:cham-pop .32s var(--c-spring);border-radius:12px;padding:8px 12px 4px;position:absolute;transform:translate(-50%,-100%)}.cham-reveal.below{transform:translate(-50%)}.cham-reveal-title{overflow-wrap:anywhere;margin:0;font-size:14px;font-weight:600;line-height:1.3}.cham-reveal-meta{font-family:var(--c-mono);color:var(--c-ink-700);margin:2px 0 0;font-size:10px}.cham-reveal-actions{justify-content:center;display:flex}@keyframes cham-pop{0%{opacity:0;scale:.85}}.cham-toast{z-index:4;left:50%;top:calc(var(--top) + 12px);background:var(--c-ink-900);max-width:calc(100% - 32px);color:var(--c-cream-100);font-family:var(--c-mono);text-align:center;pointer-events:none;animation:cham-pop .26s var(--c-ease);border-radius:999px;margin:0;padding:9px 16px;font-size:12px;position:absolute;transform:translate(-50%)}.cham-credit{font-family:var(--c-mono);letter-spacing:.06em;text-align:center;color:var(--c-ink-700);margin:0;padding:8px 16px 0;font-size:10px}.cham-dialog-backdrop{z-index:1000;background:#1a101473;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.cham-dialog{background:var(--c-cream-100);border:var(--c-border);width:min(380px,100%);box-shadow:var(--c-stamp);animation:cham-pop .22s var(--c-ease);border-radius:18px;padding:18px 18px 16px}.cham-dialog-title{margin:0;font-size:17px;font-weight:600}.cham-dialog-body{color:var(--c-ink-700);margin:6px 0 0;font-size:14px;line-height:1.5}.cham-dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.cham-editor-loading{z-index:900;background:var(--c-cream-100);font-family:var(--c-mono);place-items:center;font-size:12px;display:grid;position:fixed;inset:0}@container cham-hero (min-width:1140px) and (min-aspect-ratio:8/5){.cham-frame{top:0;bottom:0}.cham-side{z-index:2;flex-direction:column;gap:18px;width:min(360px,50cqw - 37.65cqh - 56px);display:flex;position:absolute;top:28px;bottom:28px;left:28px}.cham-card,.cham-bar,.cham-place,.cham-picker,.cham-mine{width:auto;max-height:none;position:static;transform:none}.cham-card{text-align:left;padding:16px 20px 18px}.cham-copy{-webkit-line-clamp:unset}.cham-bar{border-radius:18px;flex-direction:column;align-items:stretch;gap:12px;padding:16px}.cham-bar-actions{flex-direction:column}.cham-mine{width:min(360px,50cqw - 37.65cqh - 56px);position:absolute;bottom:28px;left:28px}.cham-toast{top:28px}.cham-place-sliders{grid-template-columns:1fr}}@media (max-width:640px){.cham-hero{--top:124px;--bottom:102px;height:92svh;min-height:520px}.cham-card{border-radius:12px;padding:8px 12px 10px;top:26px}.cham-mine-button{display:none}.cham-mine-inline{min-width:0;min-height:0;color:var(--c-wine-800);margin:-16px -8px;padding:16px 8px;font-size:11px;display:inline}.cham-name{font-size:30px}.cham-copy{font-size:12.5px;line-height:1.4}.cham-bar{border-radius:26px;flex-direction:column;align-items:stretch;gap:4px;width:calc(100% - 20px);padding:6px;bottom:14px}.cham-count{text-align:center;padding-top:2px}.cham-bar-actions{gap:6px}.cham-bar .cham-btn{flex:1 1 0;min-width:0;padding:10px 8px}.cham-place,.cham-picker,.cham-mine{bottom:max(10px, env(safe-area-inset-bottom));width:calc(100% - 16px);padding:10px}.cham-hero[data-mode=place]{--bottom:226px}.cham-place-sliders{gap:4px 10px}.cham-slider{gap:6px}.cham-place .cham-hint{font-size:10.5px}}@media (prefers-reduced-motion:reduce){.cham-root *,.cham-root :before,.cham-root :after{transition:none!important;animation:none!important}}
