.spirals-wrap{padding-bottom:4rem}.spirals-head{margin:1.4rem 0 1.8rem}.spirals-framing{color:var(--muted);margin-top:.3rem;font-style:italic}.spirals-controls{border-bottom:1px solid var(--edge);flex-wrap:wrap;gap:1.6rem 2.4rem;margin-bottom:2rem;padding-bottom:1.6rem;display:flex}.spirals-control{flex-direction:column;gap:.5rem;display:flex}.spirals-control-label{color:var(--faint);letter-spacing:.02em;font-size:.85rem}.spirals-control .seal-row{margin:0}.spirals-control-wide{flex:22rem}.spirals-control-wide .seal-row{flex-wrap:wrap}.spirals-control .seal-pill:disabled{opacity:.4;cursor:not-allowed}.spirals-grid{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem;display:grid}.spirals-card{text-align:left;cursor:pointer;font:inherit;color:inherit;transition:transform var(--t-ack) linear, border-color calc(var(--t) * 2) var(--ease);align-items:center;gap:1rem;padding:1rem 1.1rem;display:flex}.spirals-card:hover,.spirals-card:focus-visible{border-color:var(--her-mauve)}.spirals-card:active{transform:scale(.985)}.spirals-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.spirals-lens{border:1px solid var(--her-wing);background:var(--bg-outer);width:4.6rem;height:4.6rem;box-shadow:0 0 18px var(--rose-glow), inset 0 0 14px var(--bg-inner);border-radius:50%;flex:none;position:relative;overflow:hidden}.spirals-lens-canvas{position:absolute;inset:0}.spirals-lens-canvas canvas{width:100%;height:100%;display:block}.spirals-card-body{flex-direction:column;gap:.25rem;min-width:0;display:flex}.spirals-card-name{color:var(--fg-outer);font-size:1.05rem}.spirals-card-blurb{color:var(--muted);font-size:.85rem;line-height:1.4}@media (prefers-reduced-motion:reduce){.spirals-card,.spirals-card:active{transition:none}}@media (max-width:640px){.spirals-controls{gap:1.1rem 1.6rem}.spirals-grid{grid-template-columns:1fr}}.spirals-screen{background:var(--bg-inner);cursor:pointer;touch-action:none;position:fixed;inset:0}.spirals-stage{z-index:0;position:fixed;inset:0}.spirals-portrait{z-index:1;pointer-events:none;opacity:0;transition:opacity var(--t-ack) linear;animation:spirals-portrait-breathe var(--pulse) ease-in-out infinite;position:fixed}.spirals-portrait.in{opacity:.8}.spirals-portrait-bust{width:auto;max-width:none;height:88vh;bottom:0;right:-4vw;-webkit-mask-image:radial-gradient(60% 70% at 55% 35%,#000000e6 0%,#00000059 50%,#0000 82%);mask-image:radial-gradient(60% 70% at 55% 35%,#000000e6 0%,#00000059 50%,#0000 82%)}.spirals-portrait-full{width:auto;max-width:none;height:92vh;bottom:0;left:50%;transform:translate(-50%);-webkit-mask-image:radial-gradient(55% 75% at 50% 40%,#000000e6 0%,#0000004d 55%,#0000 85%);mask-image:radial-gradient(55% 75% at 50% 40%,#000000e6 0%,#0000004d 55%,#0000 85%)}@keyframes spirals-portrait-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.018)}}.spirals-portrait-full{animation-name:spirals-portrait-breathe-centred}@keyframes spirals-portrait-breathe-centred{0%,to{transform:translate(-50%)scale(1)}50%{transform:translate(-50%)scale(1.018)}}@media (prefers-reduced-motion:reduce){.spirals-portrait{transition:none;animation:none}}@media (max-width:640px){.spirals-portrait-bust{height:70vh;right:-22vw}}@media (max-height:520px) and (min-width:641px){.spirals-portrait-bust{height:62vh}.spirals-portrait-full{height:72vh}}.spirals-clock{z-index:2;left:50%;bottom:calc(1.4rem + env(safe-area-inset-bottom,0px));pointer-events:none;color:var(--faint);opacity:.5;letter-spacing:.08em;font-variant-numeric:tabular-nums;margin:0;padding:0;font-size:.8rem;position:fixed;transform:translate(-50%)}.spirals-screen.ending .spirals-clock,.spirals-screen.ending .spirals-portrait.in{opacity:0;transition:opacity calc(var(--pulse) * 2) var(--ease)}@media (prefers-reduced-motion:reduce){.spirals-screen.ending .spirals-clock,.spirals-screen.ending .spirals-portrait.in{transition:none}}.spirals-back{top:calc(16px + env(safe-area-inset-top,0px));left:calc(16px + env(safe-area-inset-left,0px));z-index:50;color:var(--fg-outer);opacity:1;pointer-events:auto;border:1px solid var(--edge);cursor:pointer;background:0 0;padding:.55rem 1rem;font-size:.85rem;transition:none;animation:none;position:fixed}.spirals-back:hover{color:var(--fg-outer);border-color:var(--fg-outer);background:0 0}.spirals-back:active{opacity:1}.spirals-music-drawer{right:calc(.9rem + env(safe-area-inset-right,0px));bottom:calc(.9rem + env(safe-area-inset-bottom,0px));z-index:55;flex-direction:column;align-items:flex-end;gap:.6rem;display:flex;position:fixed}.spirals-music-toggle{background:var(--raised);width:2.5rem;height:2.5rem;color:var(--muted);border:1px solid var(--edge);cursor:pointer;transition:opacity var(--t-ack) linear;border-radius:50%;justify-content:center;align-items:center;display:flex}.spirals-music-toggle:hover{color:var(--her-orchid);border-color:var(--her-dusk)}.spirals-music-toggle:active{opacity:.7}.spirals-music-panel{opacity:0;pointer-events:none;width:min(19rem,100vw - 2.4rem);transition:opacity var(--t-ack) linear, transform var(--t-ack) linear;flex-direction:column;gap:.8rem;padding:1rem 1.1rem;display:flex;transform:translateY(6px)scale(.98)}.spirals-music-panel.open{opacity:1;pointer-events:auto;transform:none}.spirals-music-panel .seal-row{gap:.4rem;margin:0}.spirals-music-panel .seal-pill{padding:.4rem .8rem;font-size:.82rem}.spirals-music-note{color:var(--muted);margin:0}.spirals-music-shuffle{color:var(--muted);align-items:center;gap:.5rem;font-size:.88rem;display:flex}.spirals-music-volume{color:var(--faint);flex-direction:column;gap:.3rem;font-size:.82rem;display:flex}.spirals-music-volume input[type=range]{width:100%}.spirals-music-now{min-height:1.1em;margin:0}@media (prefers-reduced-motion:reduce){.spirals-music-toggle,.spirals-music-panel{transition:none}}.spirals-music-drawer.inline{width:100%;display:block;position:static}.spirals-music-panel.inline{opacity:1;pointer-events:auto;max-width:40rem;box-shadow:none;background:0 0;border:0;margin-top:.4rem;padding:0;display:block;position:static;transform:none}
