/* Workshop objects remain the visual language of every choice. */
.action-icon{width:2.15rem;height:2.15rem;flex:0 0 2.15rem;vertical-align:middle;filter:drop-shadow(0 2px 1px #67412345)}
.button,.quiet,.check-button,.book-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem}
.button .option-icon{width:3.2rem;height:3.2rem;flex:0 0 3.2rem;margin:0}
.building-grid>a{position:relative;min-width:0;display:flex;align-items:flex-end;justify-content:center;text-decoration:none;border:3px solid transparent;border-radius:18px;padding:1rem;color:var(--ink);transition:background .2s,transform .2s}
.building-grid>a:hover,.building-grid>a:focus-visible{background:#ffefb125;border-color:#d3a047;transform:translateY(-3px)}
.building-grid>a>span{position:static;transform:none;white-space:normal;max-width:100%;text-align:center;background:#fff3cd;border:2px solid #c88c3e;border-radius:12px;box-shadow:0 4px 0 #79522a;padding:.45rem .8rem;font-weight:800}
.store-room{display:grid;grid-template-columns:1fr 1fr;align-items:center;background:#fffbed;overflow:hidden;padding:2rem;gap:1.5rem}
.store-building{aspect-ratio:1;background-image:url('assets/homes.webp');background-size:300% 200%;background-position:var(--house-x) var(--house-y)}
.store-welcome{padding:1.5rem}.store-welcome .button{margin-top:1rem}.store-helper{display:flex;gap:1.5rem;align-items:center;padding:1.5rem;margin-top:1.5rem}.store-helper .portrait{width:110px;flex-shrink:0}
.quest-board{overflow-anchor:none}.quest-activity{min-height:420px}.quest-guide .read{min-width:9rem}.quest-activity button:disabled{cursor:not-allowed;opacity:.55}.quest-activity .choice{min-height:150px}
.decoration-stage{position:relative;isolation:isolate;max-width:600px;margin:auto}.decoration-stage .wagon-stage{margin:0;width:100%}
.remove-bow{position:absolute;z-index:5;width:19%;min-width:48px;aspect-ratio:1;border:0;background:transparent;padding:0;cursor:pointer;border-radius:50%;touch-action:manipulation}
.remove-bow .piece{width:100%;height:100%;margin:0;display:block;pointer-events:none}.remove-bow>span{position:absolute;right:0;bottom:0;background:#fff6d8;color:#762d65;border-radius:50%;font:bold 1.6rem/1.1 sans-serif;min-width:1.6rem}.remove-bow>span:empty{display:none}
.remove-bow:focus-visible,.remove-bow:hover{outline:3px dashed #a55d2d;outline-offset:3px;background:#ffe9a250}
.bow-0{left:40%;top:29%}.bow-1{left:11%;top:56%}.bow-2{left:61%;top:56%}.bow-3{left:17%;top:19%}.bow-4{left:68%;top:20%}
.tangled-ribbons{position:absolute;inset:0;pointer-events:none;z-index:4}.tangled-ribbons i{position:absolute;border:7px double #c74392;border-radius:45%;width:65%;height:15%;left:12%;top:66%;transform:rotate(12deg);box-shadow:0 2px 0 #f3b23e}.tangled-ribbons i:nth-child(2){width:24%;height:35%;left:10%;top:48%;transform:rotate(-25deg);border-color:#e36c9c}.tangled-ribbons i:nth-child(3){width:23%;height:35%;left:59%;top:48%;transform:rotate(27deg)}
.is-jammed .wagon-stage{animation:wagon-mishap .75s ease-in-out both}.is-jammed .fitted-wheel{animation:wheel-loose .8s ease-out both}.is-jammed .remove-bow{animation:bow-tug 1.2s ease-in-out 2}.is-repaired .wagon-stage{animation:wagon-repair .4s ease-out}
.decoration-stage>.action-icon{position:absolute;top:8%;left:44%;width:13%;height:auto;animation:decoration-firework .7s ease-out both;pointer-events:none}
.decoration-burst{position:absolute;inset:0;pointer-events:none;overflow:hidden}.decoration-burst i{position:absolute;left:50%;top:35%;width:10px;height:5px;border-radius:2px;background:hsl(var(--h) 85% 60%);transform:rotate(calc(var(--i)*20deg));animation:decoration-sprinkle .8s ease-out both}
.crazy-icons{display:inline-flex;position:relative;align-items:center;min-width:95px;height:55px}.crazy-icons .piece{width:45px;height:45px;margin:0;transform:rotate(-22deg)}.crazy-icons .piece:last-child{transform:rotate(23deg);margin-left:-15px}.crazy-icons .action-icon{width:25px;height:25px;flex-basis:25px;align-self:flex-start;margin-left:-10px}.decor-options{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.crazy-choice{background:linear-gradient(135deg,#ffdc84,#ffbfcd,#c7e4e7)}
@keyframes wagon-mishap{0%,100%{transform:rotate(0)}25%{transform:rotate(-5deg) translateX(-6px)}50%{transform:rotate(4deg) translateX(6px)}75%{transform:rotate(-2deg)}}
@keyframes wheel-loose{to{transform:translate(-35%,-23%) rotate(19deg)}}
@keyframes wagon-repair{from{transform:translateY(6px) rotate(-2deg)}to{transform:none}}
@keyframes bow-tug{50%{filter:drop-shadow(0 0 7px #ffcf4d);scale:1.08}}
@keyframes decoration-firework{0%{scale:.1;opacity:0}65%{scale:1.7;opacity:1}100%{scale:1;opacity:.7}}
@keyframes decoration-sprinkle{from{transform:rotate(calc(var(--i)*20deg)) translateX(0);opacity:1}to{transform:rotate(calc(var(--i)*20deg)) translateX(155px);opacity:0}}
body.still .decoration-stage *,body.tab-away .decoration-stage *{animation:none!important}.still .is-jammed .fitted-wheel{transform:translate(-35%,-23%) rotate(19deg)}
@media(max-width:700px){.store-room{grid-template-columns:1fr;padding:1rem;gap:0}.store-building{width:min(100%,420px);margin:auto}.store-helper{gap:.75rem;padding:1rem}.store-helper .portrait{width:80px}.building-grid>a{padding:.35rem}.building-grid>a>span{font-size:.78rem;padding:.25rem .35rem}.quest-activity{min-height:380px}.decor-options>.button{flex:1 1 150px}.action-icon{width:1.8rem;height:1.8rem;flex-basis:1.8rem}}
