/* Find the Quest Cup: the original cup game inside the shared CSQ retro desktop. */
body.retro-cup{
  --ink:var(--retro-ink,#182525);
  --ink-muted:var(--retro-muted,#344747);
  min-width:320px;min-height:100vh;margin:0;overflow-x:hidden;
  color:var(--retro-ink,#182525);
  background-color:var(--retro-desktop,#BD9CE8);
  background-image:repeating-linear-gradient(0deg,transparent 0 3px,#00000008 3px 4px);
  font-family:Verdana,Arial,sans-serif;
}
.retro-cup *{box-sizing:border-box}
.retro-cup .skip-link{position:absolute;top:-100px;left:10px;z-index:100;padding:12px;background:#fff;color:#000080;font:bold 12px 'Courier New',monospace}.retro-cup .skip-link:focus{top:10px}
.retro-cup .topbar{max-width:1000px;margin:22px auto 0;padding:12px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--retro-panel,#CBB5EF);border:2px solid;border-color:var(--retro-edge-light,#fff) var(--retro-edge-dark,#52505B) var(--retro-edge-dark,#52505B) var(--retro-edge-light,#fff);box-shadow:5px 5px #0005}
.retro-cup .logo{color:var(--retro-ink,#182525);text-decoration:none;font:900 clamp(19px,3vw,29px)/1.2 'Courier New',monospace;letter-spacing:-1.5px}.retro-cup .logo span{color:var(--retro-link,#513477)}
.retro-cup .vibe-button{min-height:38px;padding:7px 11px;border:3px solid;border-radius:0;box-shadow:1px 1px #222;border-color:var(--retro-edge-light,#fff) var(--retro-edge-dark,#52505B) var(--retro-edge-dark,#52505B) var(--retro-edge-light,#fff);background:var(--retro-panel,#CBB5EF);color:var(--retro-ink,#182525);font:bold 11px/1.3 Verdana,sans-serif;cursor:pointer}
.retro-cup .retro-menu{max-width:1000px;margin:auto;display:flex;align-items:center;gap:22px;flex-wrap:wrap;padding:10px 18px;background:var(--retro-tint,#E1CEF6);border:1px solid var(--retro-edge-dark,#343434);font:13px 'Courier New',monospace}.retro-cup .retro-menu a{color:var(--retro-link,#513477);text-underline-offset:3px}.retro-cup .retro-menu span{margin-left:auto;font-size:11px;color:var(--retro-muted,#344747)}

.cup-desktop{width:min(calc(100% - 32px),1000px);margin:0 auto 30px;padding:clamp(18px,4vw,44px);background:var(--retro-tint,#E1CEF6);border:1px solid var(--retro-edge-dark,#253B3B);box-shadow:5px 5px #0005}
.program-window{max-width:850px;margin:auto;background:var(--retro-panel,#CBB5EF);border:2px solid;border-color:var(--retro-edge-light,#fff) var(--retro-edge-dark,#52505B) var(--retro-edge-dark,#52505B) var(--retro-edge-light,#fff);box-shadow:7px 7px #0004}
.program-titlebar,.reveal-titlebar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--retro-title,#513477);color:var(--retro-title-ink,#fff);font:bold 12px/1.4 'Courier New',monospace}
.program-titlebar{margin:3px;padding:8px 10px}.program-titlebar span:last-child{font-weight:normal;letter-spacing:3px}
.program-toolbar{display:flex;gap:23px;padding:7px 12px;background:var(--retro-panel,#CBB5EF);border:1px solid var(--retro-edge-dark,#777);border-width:1px 0;font:10px/1.3 'Courier New',monospace}
.program-content{padding:clamp(16px,4vw,34px);background:var(--retro-paper,#F3E7FF)}
.cup-intro{text-align:center}.program-kicker{margin:0 0 12px;color:var(--retro-muted,#344747);font:bold 10px/1.5 'Courier New',monospace;letter-spacing:1px}.cup-intro h1{margin:0;color:var(--retro-ink,#182525);font:900 clamp(31px,6vw,54px)/.98 'Courier New',monospace;letter-spacing:-3px}.cup-intro>p:last-child{max-width:590px;margin:15px auto 21px;color:var(--retro-muted,#344747);font:14px/1.6 Verdana,sans-serif}

.game-shell{position:relative}.status-bar{min-height:38px;display:flex;align-items:center;gap:9px;padding:8px 11px;background:var(--retro-tint,#E1CEF6);border:2px inset var(--retro-edge-light,#fff)}.status-light{width:10px;height:10px;flex:0 0 auto;background:#35a84a;border:1px solid var(--retro-edge-dark,#333);box-shadow:inset 1px 1px #ffffff88}.game-status{margin:0;font:bold 11px/1.4 'Courier New',monospace}
.shuffle-stage{position:relative;min-height:278px;padding:54px 10px 5px;overflow:hidden;border:1px solid var(--retro-edge-dark,#777);border-top:0;background-color:var(--retro-tint,#E1CEF6);background-image:linear-gradient(#0000000b 1px,transparent 1px),linear-gradient(90deg,#0000000b 1px,transparent 1px);background-size:18px 18px}
.cup-row{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:clamp(2px,2.5vw,18px);max-width:700px;margin:auto}
.cup-slot{position:relative;min-width:0;min-height:205px;display:flex;align-items:flex-end;justify-content:center}
.cup-button{position:relative;z-index:2;width:min(100%,190px);min-width:72px;min-height:205px;padding:0;border:0;background:transparent;cursor:pointer;touch-action:manipulation;transform:translate3d(0,0,0);transition:transform .34s ease,filter .2s ease}.cup-button:disabled{cursor:default}.cup-button:not(:disabled):hover{filter:brightness(1.06)}.cup-button:not(:disabled):active{transform:translateY(4px) scale(.97)}
.cup-art{display:block;width:100%;height:100%;overflow:visible}.cup-ground{fill:#0004}.cup-body{fill:var(--retro-accent,#FFBBD9);stroke:var(--retro-ink,#182525);stroke-width:6;stroke-linejoin:round}.cup-side-shade{fill:var(--retro-title,#513477);opacity:.45}.cup-highlight{fill:none;stroke:var(--retro-edge-light,#fff);stroke-width:9;stroke-linecap:round;opacity:.65}.cup-top{fill:var(--retro-accent,#FFBBD9);stroke:var(--retro-ink,#182525);stroke-width:6}.cup-top-inner{fill:var(--retro-title,#513477);stroke:var(--retro-ink,#182525);stroke-width:3}.cup-base{fill:var(--retro-title,#513477);stroke:var(--retro-ink,#182525);stroke-width:6}.cup-base-shine{fill:none;stroke:var(--retro-edge-light,#fff);stroke-width:6;stroke-linecap:round;opacity:.55}.cup-badge{fill:var(--retro-paper,#F3E7FF);stroke:var(--retro-ink,#182525);stroke-width:5}.cup-badge-inner{fill:var(--retro-title,#513477);stroke:var(--retro-title,#513477);stroke-width:2}.cup-number-art{fill:var(--retro-title-ink,#fff);font:800 39px 'Courier New',monospace}
.hidden-token,.intro-token{position:absolute;left:50%;display:grid;place-items:center;text-align:center;background:var(--retro-accent,#FFBBD9);color:var(--retro-accent-ink,#182525);border:2px solid var(--retro-ink,#182525);box-shadow:3px 3px var(--retro-ink,#182525);font:bold 9px/1.1 'Courier New',monospace}.hidden-token{z-index:1;bottom:13px;width:74px;height:56px;transform:translateX(-50%) scale(.7);opacity:0;transition:transform .34s ease,opacity .2s ease}.hidden-token span{display:block;font-size:18px}.intro-token{z-index:1;bottom:30px;width:82px;height:65px;transform:translateX(-50%) rotate(-3deg);transition:transform .3s ease,opacity .2s ease}.intro-token span{font-size:24px}.intro-token strong{font-size:9px}
.game-shell[data-phase="intro"] .cup-two{transform:translateY(-104px)}.game-shell[data-phase="cover"] .cup-two{transform:translateY(0)}
.game-shell[data-phase="cover"] .intro-token,.game-shell[data-phase="shuffling"] .intro-token,.game-shell[data-phase="ready"] .intro-token,.game-shell[data-phase="revealed"] .intro-token{opacity:0;transform:translateX(-50%) translateY(22px) rotate(-3deg) scale(.75)}
.game-shell[data-phase="shuffling"] .cup-button{pointer-events:none}.game-shell[data-phase="shuffling"] .cup-one{animation:shuffle-left 3.15s cubic-bezier(.45,.05,.55,.95) both}.game-shell[data-phase="shuffling"] .cup-two{animation:shuffle-middle 3.15s cubic-bezier(.45,.05,.55,.95) both}.game-shell[data-phase="shuffling"] .cup-three{animation:shuffle-right 3.15s cubic-bezier(.45,.05,.55,.95) both}
@keyframes shuffle-left{0%,100%{transform:translateX(0)}18%{transform:translateX(105%)}37%{transform:translateX(205%)}57%{transform:translateX(105%)}77%{transform:translateX(205%)}90%{transform:translateX(105%)}}
@keyframes shuffle-middle{0%,100%{transform:translateX(0)}18%{transform:translateX(-105%)}37%{transform:translateX(-105%)}57%{transform:translateX(105%)}77%{transform:translateX(-105%)}90%{transform:translateX(-105%)}}
@keyframes shuffle-right{0%,100%{transform:translateX(0)}18%{transform:translateX(0)}37%{transform:translateX(-205%)}57%{transform:translateX(-205%)}77%{transform:translateX(0)}90%{transform:translateX(0)}}
.game-shell[data-phase="revealed"] .cup-slot.is-selected .cup-button{transform:translateY(-70px) rotate(-3deg)}.game-shell[data-phase="revealed"] .cup-slot.is-selected .hidden-token{opacity:1;transform:translateX(-50%) scale(1)}.game-shell[data-phase="revealed"] .cup-slot:not(.is-selected) .cup-button{filter:saturate(.45);opacity:.62}

.quest-reveal{margin-top:16px;border:2px solid;border-color:var(--retro-edge-light,#fff) var(--retro-edge-dark,#52505B) var(--retro-edge-dark,#52505B) var(--retro-edge-light,#fff);background:var(--retro-paper,#F3E7FF);box-shadow:4px 4px #0003}.quest-reveal[hidden]{display:none}.reveal-titlebar{padding:8px 10px}.reveal-content{padding:clamp(17px,4vw,28px)}.reveal-kicker{margin:0 0 10px;color:var(--retro-muted,#344747);font:bold 9px/1.5 'Courier New',monospace;letter-spacing:.7px}.quest-reveal h2{margin:0 0 10px;color:var(--retro-ink,#182525);font:bold clamp(23px,4vw,34px)/1.1 'Courier New',monospace}.quest-reveal #quest-description{max-width:650px;margin:0 0 20px;color:var(--retro-ink,#182525);font:14px/1.6 Verdana,sans-serif}.quest-actions{display:flex;flex-wrap:wrap;gap:10px}.quest-action{min-height:48px;padding:13px 16px;border:3px solid;border-radius:0;border-color:var(--retro-edge-light,#fff) var(--retro-edge-dark,#52505B) var(--retro-edge-dark,#52505B) var(--retro-edge-light,#fff);box-shadow:2px 2px #222;background:var(--retro-panel,#CBB5EF);color:var(--retro-ink,#182525);font:bold 12px/1.3 'Courier New',monospace;text-decoration:none;cursor:pointer}.quest-action.do-quest{background:var(--retro-accent,#FFBBD9);color:var(--retro-accent-ink,#182525)}.quest-action:active{border-color:var(--retro-edge-dark,#52505B) var(--retro-edge-light,#fff) var(--retro-edge-light,#fff) var(--retro-edge-dark,#52505B);box-shadow:none;transform:translate(1px,1px)}
.load-error,.noscript-note{padding:15px;background:var(--retro-paper,#F3E7FF);border:1px dashed var(--retro-edge-dark,#777);font:12px/1.6 'Courier New',monospace}.load-error a,.noscript-note a{color:var(--retro-link,#513477)}
.program-footer{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:7px 10px;background:var(--retro-panel,#CBB5EF);border-top:1px solid var(--retro-edge-dark,#777);font:9px/1.4 'Courier New',monospace}
.retro-cup .cup-footer{max-width:1000px;margin:0 auto 30px;padding:18px;text-align:center;background:var(--retro-panel,#CBB5EF);border:2px solid;border-color:var(--retro-edge-light,#fff) var(--retro-edge-dark,#52505B) var(--retro-edge-dark,#52505B) var(--retro-edge-light,#fff);color:var(--retro-muted,#344747);font:11px/1.9 'Courier New',monospace}.retro-cup .cup-footer a{display:inline-block;padding:5px 2px;color:var(--retro-link,#513477)}
.retro-cup :is(a,button):focus-visible{outline:3px solid #B13B00;outline-offset:3px}.retro-cup[data-retro-mode="dark"]{color-scheme:dark}

@media(max-width:680px){
  .retro-cup .topbar{margin:0;padding:10px}.retro-cup .logo{font-size:19px}.retro-cup .vibe-button{padding:6px;font-size:10px}
  .retro-cup .retro-menu{gap:0;justify-content:space-between;padding:3px 9px;font-size:11px}.retro-cup .retro-menu a{padding:12px 3px}.retro-cup .retro-menu span{display:none}
  .cup-desktop{width:100%;margin:0;padding:12px 10px 23px}.program-window{box-shadow:4px 4px #0004}.program-toolbar{gap:17px}.program-toolbar span:nth-child(3){display:none}
  .program-content{padding:17px 10px 20px}.cup-intro h1{font-size:34px;letter-spacing:-2.5px}.cup-intro>p:last-child{margin:12px auto 17px;font-size:13px}
  .shuffle-stage{min-height:205px;padding:38px 2px 2px}.cup-row{gap:0}.cup-slot,.cup-button{min-height:158px}.cup-button{min-width:0;width:100%}.game-shell[data-phase="intro"] .cup-two{transform:translateY(-76px)}
  .game-shell[data-phase="revealed"] .cup-slot.is-selected .cup-button{transform:translateY(-49px) rotate(-3deg)}.hidden-token{bottom:8px;width:58px;height:45px;font-size:7px}.hidden-token span{font-size:14px}.intro-token{bottom:21px;width:64px;height:49px}.intro-token span{font-size:18px}
  .reveal-content{padding:18px 13px}.quest-actions{display:grid}.quest-action{width:100%;text-align:center}.program-footer span:nth-child(2){display:none}.retro-cup .cup-footer{margin:0;padding:18px 12px}
}
@media(max-width:380px){.cup-slot,.cup-button{min-height:142px}.shuffle-stage{min-height:187px}.program-kicker{font-size:9px}.game-status{font-size:10px}}
@media(prefers-reduced-motion:reduce){.retro-cup *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
