/* Open paper, live strokes, and physical affordances. No common game card. */
.material-game{position:relative;isolation:isolate;max-width:100%;min-width:0}
.material-board{display:block;width:100%;min-width:0;position:relative}.material-svg{display:block;width:100%;height:auto;overflow:visible;touch-action:none;color:var(--ink);fill:none;stroke:var(--ink);font-family:Arial,Helvetica,sans-serif}.material-svg text{stroke:none}.material-svg text:not([fill]){fill:var(--ink)}.material-handle{cursor:grab;touch-action:none;outline:none}.material-handle:active{cursor:grabbing}.material-handle:focus-visible{filter:drop-shadow(0 0 3px var(--lime))}.material-handle[aria-disabled=true]{cursor:default}.material-status{max-width:38em;font:15px/1.55 monospace!important;min-height:3em}.material-game[data-outcome=win] .material-svg{animation:material-exhale .8s ease-out both}.material-game[data-outcome=curse] .material-svg{animation:material-recoil .65s both}@keyframes material-exhale{50%{translate:0 -8px}to{translate:0 0}}@keyframes material-recoil{25%{rotate:-2deg}55%{rotate:2deg}to{rotate:0}}
.riddle-feeding-clue{font:12px/1.5 monospace!important;text-align:center;opacity:.7}.riddle-loose-answers{display:flex;flex-direction:column;align-items:center;gap:13px;padding:6px 5% 25px}.riddle-word{display:block;width:fit-content;max-width:90%;padding:12px 0;font-size:clamp(17px,3.4vw,28px);line-height:1.2;font-weight:700;letter-spacing:-.04em;border:0;background:none;text-align:center;rotate:var(--answer-angle);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:7px;animation:riddle-word-arrive .8s both;animation-delay:var(--answer-delay);will-change:translate}.riddle-word.being-fed{rotate:0;z-index:4;cursor:grabbing}.riddle-word.riddle-consumed{animation:riddle-swallow .65s ease-in both}.riddle-word.riddle-rejected{pointer-events:none;animation:riddle-spit 1s ease-in both}.riddle-throat{transform-box:fill-box;transform-origin:center;animation:riddle-breath 4s ease-in-out infinite}.riddle-throat.riddle-chewing{animation:riddle-chew .22s ease-in-out 4}@keyframes riddle-breath{50%{scale:1 .7}}@keyframes riddle-chew{50%{scale:1.1 .3}}@keyframes riddle-word-arrive{from{opacity:0;translate:0 25px;filter:blur(5px)}to{opacity:1;translate:0 0;filter:blur(0)}}@keyframes riddle-swallow{to{translate:0 -120px;scale:.02;opacity:0}}@keyframes riddle-spit{25%{translate:-10px -20px;rotate:-5deg}to{translate:15px 40px;rotate:12deg;opacity:0}}
@media(max-width:650px){.material-status{font-size:14px!important}.material-svg{max-width:100%}}
@media(prefers-reduced-motion:reduce){.material-svg,.material-svg *{animation:none!important;transition:none!important}}
/* Evidence of impossible places visited. These scars survive a reload. */
.afterlife-anchor{position:relative}.afterlife-doodle{display:block;width:min(300px,75%);height:auto;max-height:110px;overflow:visible;pointer-events:none;margin:14px 0 0 auto}
body.reward-origami main{background-image:linear-gradient(164deg,transparent calc(50% - 1px),color-mix(in srgb,var(--ink) 18%,transparent) 50%,transparent calc(50% + 1px)),linear-gradient(90deg,transparent calc(50% - 1px),color-mix(in srgb,var(--ink) 12%,transparent) 50%,transparent calc(50% + 1px));background-size:100% 330px,100% 100%}body.reward-origami header,body.reward-origami footer{background-image:linear-gradient(135deg,var(--lime) 0 14px,transparent 14px)}.afterlife-plane{transform-origin:200px 60px;animation:afterlife-air 7s ease-in-out infinite}
body.reward-punctuation .line{border-top:0;background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 7px);height:3px}.afterlife-comma{transform-box:fill-box;transform-origin:center;animation:afterlife-chew 4s var(--phase) ease-in-out infinite}
body.reward-gravity .spec:nth-child(2){rotate:-2deg;transform-origin:50% 90%}body.reward-gravity .spec:nth-child(3){rotate:2deg;transform-origin:50% 90%}.afterlife-moon{transform-origin:150px 54px;animation:afterlife-orbit 12s linear infinite}
body.reward-menagerie .spec{border-bottom:2px dashed var(--ink)}.afterlife-animal{animation:afterlife-gait 1.2s var(--phase) ease-in-out infinite}.afterlife-legs{transform-box:fill-box;transform-origin:50% 0;animation:afterlife-step 1.2s var(--phase) ease-in-out infinite}
@keyframes afterlife-air{50%{translate:8px -12px;rotate:7deg}}@keyframes afterlife-chew{45%{scale:1 .8}55%{scale:1.05 1.1}}@keyframes afterlife-orbit{to{rotate:360deg}}@keyframes afterlife-gait{50%{translate:0 -5px}}@keyframes afterlife-step{50%{transform:skewX(12deg);scale:1 .8}}
@media(max-width:650px){.afterlife-doodle{max-width:220px;max-height:85px}body.reward-gravity .spec:nth-child(n){rotate:0}.afterlife-gravity{rotate:0}}
@media(prefers-reduced-motion:reduce){.afterlife-doodle *{animation:none!important}}

.afterlife-bottle{display:inline-block;width:28px;height:42px;margin:0 0 0 8px;vertical-align:middle}
#secret-scene.departing[data-departure=introduce]{animation:tom-introduction-out .8s cubic-bezier(.65,0,.9,.5) both}
@keyframes tom-introduction-out{25%{transform:perspective(600px) rotateX(-14deg);opacity:1}60%{transform:perspective(600px) rotateX(12deg) translateY(-8px);clip-path:inset(0 0 0 0)}100%{transform:translateY(-50px);clip-path:inset(0 0 100% 0);opacity:0}}
@media(prefers-reduced-motion:reduce){#secret-scene.departing[data-departure=introduce]{animation:none!important}}

/* An occasional visitor; never a permanent pet widget. */
.wandering-tom{animation:none!important}.wandering-tom.cat-visiting{animation:cat-visit 6.8s ease-in-out both!important}
@keyframes cat-visit{0%{translate:80px 100px;rotate:15deg;opacity:0}12%{translate:0 0;rotate:0;opacity:1}42%{translate:-12vw 0;rotate:-5deg}61%{translate:-12vw -12px;rotate:7deg}78%{translate:-3vw 0;rotate:-3deg;opacity:1}100%{translate:-8vw 100px;rotate:-20deg;opacity:0}}
#secret-scene.victory #scene-title{color:var(--ink)!important}
@media(prefers-reduced-motion:reduce){.wandering-tom.cat-visiting{animation:none!important}}

/* Artwork carries the invitation; keyboard detail remains accessible. */
.origami-whisper,.menagerie-whisper,.punctuation-whisper,.gravity-key{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
#secret-scene[data-behavior=game] #scene-symbol{display:none}#secret-scene[data-behavior=game] #scene-title{margin-right:0;font-size:clamp(24px,4vw,45px)}

@media(max-width:650px){body.reward-gravity .spec:nth-child(n){rotate:none}body.reward-gravity .specs,body.reward-gravity .intro{overflow:clip}}
