/* A sewing room, hanging cloth options and physical thread controls. */
:root{--cloth:#253f52;--thread:#a8d4d2;--m:#8de0df;--m2:#a59bce}
body{background:#081823;color:#e9f4ef}
.ambient,html[data-scene=welcome] .ambient{background:#081823;z-index:-1}
.ambient:after,.ambient>:not(.atelier-room){display:none!important}
.atelier-room{position:absolute;inset:0;background:url('/assets/gwen-world/atelier-room.svg') center bottom/cover no-repeat;overflow:hidden}
.atelier-room:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 44%,transparent 25%,#03111a38);pointer-events:none}
.atelier-doll{position:absolute;object-fit:contain;pointer-events:none;z-index:1;animation:doll-watch 8s ease-in-out infinite alternate}
.atelier-doll.left{left:0;bottom:16%;width:clamp(130px,14vw,225px);height:210px;transform:rotate(-6deg)}
.atelier-doll.right{right:1%;bottom:12%;width:clamp(120px,13vw,205px);height:210px;animation-delay:-3s}
.atelier-light{position:absolute;inset:0;background:radial-gradient(ellipse at 15% 70%,#54cfd911,transparent 30%),radial-gradient(ellipse at 85% 45%,#827cc311,transparent 35%);animation:room-breathe 12s ease-in-out infinite alternate}
.atelier-sparks{position:absolute;inset:0;animation:room-dust 18s ease-in-out infinite alternate}
.atelier-sparks i{position:absolute;width:3px;height:3px;background:#a5e8db;border-radius:50%;opacity:.4;box-shadow:0 0 5px #9ce5dd66}
.atelier-sparks i:nth-child(1){top:15%;left:20%}.atelier-sparks i:nth-child(2){top:25%;left:80%}.atelier-sparks i:nth-child(3){top:58%;left:8%}.atelier-sparks i:nth-child(4){top:73%;left:75%}.atelier-sparks i:nth-child(5){top:85%;left:30%}.atelier-sparks i:nth-child(6){top:8%;left:48%}.atelier-sparks i:nth-child(7){top:42%;left:28%}.atelier-sparks i:nth-child(8){top:42%;left:90%}.atelier-sparks i:nth-child(9){top:90%;left:88%}
@keyframes doll-watch{from{translate:0 0;rotate:-1deg}to{translate:0 -7px;rotate:2deg}}@keyframes room-breathe{from{opacity:.4}to{opacity:1}}@keyframes room-dust{from{transform:translateY(0);opacity:.4}to{transform:translateY(-25px);opacity:.85}}
.topbar{max-width:1320px;padding:18px 28px;background:none;border:0!important;position:relative;z-index:3}
.brand{color:#c9dbdb;font-size:15px}.brand .original-logo{width:66px;height:66px}.brand small{color:#86a9b5;font-size:8px}
.tools button,.tools a{background:#0c2130bb;border:1px solid #6c94965c;border-radius:5px 11px 5px 11px;font-size:10px;color:#b4cfd4}
.game-audio{background:#0c2130bb!important;border:1px solid #6c94965c!important;border-radius:5px 11px 5px 11px!important}
.tools [aria-pressed=true]{border-color:#bae6d5}
main{max-width:1260px;padding:10px 36px 25px;position:relative;z-index:2}
footer{border:0;color:#7899a7;max-width:1200px;padding:13px 35px;font-size:9px}
/* Welcome: the emblem is stitched into a hoop, sample patches hang beneath it. */
html[data-scene=welcome] .welcome{min-height:calc(100svh - 155px);padding:0;gap:20px}
.intro-copy h1{font-size:clamp(38px,4.3vw,62px);color:#e7f0e8;line-height:1.4;letter-spacing:-1px;text-shadow:0 2px 0 #04101b}
.intro-copy h1 em{color:#a6ded8}.intro-copy p{color:#acc5cd;max-width:420px;font-size:14px}
.intro-copy>.eyebrow{font-size:10px;color:#94b7bb;letter-spacing:2px}
.hero-art.menu-scene{height:440px;min-height:440px;width:100%;isolation:isolate}
.menu-scene .sample{top:auto;bottom:5px;left:20%;width:170px;padding:17px 12px 30px;background:none;border:0;box-shadow:none;border-radius:0;overflow:visible;animation:patch-sway 7s ease-in-out infinite;--tilt:-7deg;transform:translateX(-50%) rotate(var(--tilt));transform-origin:50% -25px}
.menu-scene .sample:before{content:"";position:absolute;inset:0;background:url('/assets/gwen-world/cloth-patch.svg') center/100% 100% no-repeat;z-index:-1}
.menu-scene .sample img{border-radius:2px;width:100%;aspect-ratio:16/10;object-fit:cover;border:1px solid #8eb4bc5c}
.menu-scene .sample span:not(.patch-cord):not(.patch-pin){font-size:6px;letter-spacing:1px;padding-top:10px;color:#bbd5d2}
.menu-scene .sample.sam2{left:50%;bottom:-15px;--tilt:3deg;animation-delay:-2s}.menu-scene .sample.sam3{left:80%;bottom:8px;--tilt:8deg;animation-delay:-4s}
.portal-disc{width:210px;height:210px;background:radial-gradient(circle,#2c48594d,#10273580);border:8px solid #536878;box-shadow:0 0 0 2px #243d50,inset 0 0 0 2px #8aa4ae}
.portal-ring{width:230px;height:230px;border:1px dashed #9abdbb7a;box-shadow:none;animation-duration:32s}.portal-ring.ring-inner{width:185px;height:185px;border:1px dashed #87b6bd66;animation-duration:25s}
.portal-scissors{width:110px;height:160px;left:calc(50% - 55px);top:47px}
.portal-spark{top:20px;transform-origin:10px 130px;font-size:16px;animation-duration:16s}.portal-status{display:none}
.welcome:before,.welcome:after{display:none!important}
.menu-controls .start,.actions .primary,.cut-button{position:relative;background:linear-gradient(120deg,#b6d9cb,#80bfc5);border:0;border-radius:3px 13px 3px 13px;color:#102b34;font-size:17px;min-height:57px;box-shadow:0 5px 0 #193d4a,0 10px 24px #020b1655;animation:none}
.menu-controls .start:before,.actions .primary:before,.cut-button:before{content:"";position:absolute;inset:5px;border:1px dashed #335f6777;border-radius:2px 9px 2px 9px;pointer-events:none}
.menu-controls .start:hover,.actions .primary:hover{transform:translateY(-3px) rotate(-1deg)}
.menu-controls .start span{animation:none}.menu-controls .intro-meta{color:#82a5b0}.menu-hint{color:#71929d;font-size:9px}
/* The round sits inside the room, not a giant store panel. */
html[data-scene=game],html[data-scene=finale]{overflow:auto}
.game.arena{height:auto;min-height:0;max-width:1080px;padding:12px 12px 26px;display:flex;flex-direction:column;gap:12px;background:none;border:0;box-shadow:none}
.game:before,.game:after{display:none!important}
.arena .game-top{order:0;font-size:10px;color:#8cabb7}.arena .game-top>.eyebrow{font-size:8px;letter-spacing:2px}
.game-top #counter{background:#17313f;border:1px dashed #7aabad70;border-radius:3px 9px 3px 9px;padding:8px 12px;min-width:80px;font:15px Hanken,Tahoma;color:#b7d4d4;box-shadow:none}
.arena .steps{order:1;width:min(400px,70%);align-self:center;margin:0 0 7px;height:16px;gap:10px;align-items:center;position:relative!important;overflow:visible;clip-path:none}
.arena .steps:before{content:"";position:absolute;top:50%;left:0;right:0;border-top:1px dashed #6a959a66}
.arena .steps li{position:relative;height:10px;background:#243f4e;border:1px solid #5d818c;border-radius:50%;flex:0 0 10px;margin:auto;overflow:visible;z-index:1}
.arena .steps li:before{inset:2px;border-radius:50%;background:#a3d6ce;transform:scale(0);transition:transform .3s}
.arena .steps li.done:before{transform:scale(1)}.arena .steps li.current{border-color:#c0e3ce;background:#51777c}.arena .steps li.current:before{transform:scale(.6);animation:none}
.gwen-say{order:2;margin:0 auto;min-height:40px;gap:8px}.gwen-badge{width:34px;height:34px;border:1px dashed #749d9c;background:#132e3b;box-shadow:none}.gwen-badge img{width:27px;height:27px}
#bubble{background:#102a36a6;color:#adc9cb;border:0;border-inline-start:1px solid #729b9a77;padding:7px 13px;border-radius:0;font-size:11px}
.arena .round-head{order:3;margin:0}.round-kicker{background:none!important;border:0!important;color:#83a9ae;letter-spacing:1px;font-size:9px}
.arena .round-head h1{font-size:clamp(25px,3vw,36px);margin:7px 0 9px;color:#e2eee7;line-height:1.5}
.arena .round-head p{font-size:11px;color:#93b2bc}
.stage{order:4;min-height:290px;padding:12px 0;gap:20px;position:relative}
.actions{order:5;margin-top:8px;min-height:0;padding:0}.actions:empty{display:none}
.actions .primary{min-width:150px;padding:13px 24px;font-size:14px}
.deck{gap:15px;width:100%;justify-content:center;perspective:none;isolation:isolate}
/* Real irregular textile silhouette. The cord and fastener are separate physical elements. */
.deck .choice{position:relative;background:none;border:0;border-radius:0;box-shadow:none;padding:21px 17px 38px;overflow:visible;max-width:210px;flex:1;isolation:isolate;color:#e8f1e9;transform-origin:50% -50px;transition:translate .3s,rotate .3s}
.deck .choice:before{content:"";position:absolute;inset:0;border:0;border-radius:0;z-index:-1;background:url('/assets/gwen-world/cloth-patch.svg') center/100% 100% no-repeat;opacity:1}
.deck .choice:hover{background:none;border:0;box-shadow:none;translate:0 -8px;rotate:0deg}
.deck .choice.selected{background:none;border:0;box-shadow:none;translate:0 -10px}
.deck .choice.selected:before{filter:brightness(1.2);outline:0}
.deck .choice.selected:after{content:"✓";position:absolute;top:12px;inset-inline-end:14px;width:22px;height:22px;background:#bddfce;color:#173d3b;border:1px solid #5a8781;border-radius:50%;font-size:12px;line-height:20px;z-index:3}
.deck .choice:focus-visible{outline:2px dashed #b4e0d8;outline-offset:8px}
.patch-cord{position:absolute;top:-66px;left:50%;width:1px;height:83px;background:linear-gradient(#506d78,#b9d6ca 40%,#769b9d);pointer-events:none;z-index:0;transform-origin:top}
.patch-cord:before{content:"";position:absolute;top:-4px;left:-4px;width:8px;height:8px;border:1px solid #96b6b0;border-radius:50%;background:#304d56}
.patch-pin{position:absolute;top:12px;left:calc(50% - 5px);width:10px;height:10px;border-radius:50%;border:1px solid #99b6b1;background:radial-gradient(circle at 35% 30%,#b8cbc0,#527980 55%,#27434e);z-index:2;box-shadow:0 1px 3px #06121c}
.hanging-line{position:absolute;top:0;left:-3%;width:106%;height:80px;overflow:visible;z-index:-2;pointer-events:none}
.hanging-line path{fill:none;stroke:#86a8a6;stroke-width:1.5}
.deck.fan{position:relative;padding-top:80px;align-items:stretch;gap:16px}
.deck.fan .world-card{--tilt:-2deg;animation:cloth-drop .65s cubic-bezier(.2,.8,.2,1) both,patch-sway 8s ease-in-out .7s infinite;animation-delay:calc(var(--i)*70ms),calc(var(--i)*-1.1s);transform-origin:50% -45px;min-height:250px}
.world-card:nth-child(2){--tilt:1.5deg}.world-card:nth-child(3){--tilt:-1deg}.world-card:nth-child(4){--tilt:2.5deg}.world-card:nth-child(5){--tilt:-1.5deg}
.deck.fan .world-card:hover,.deck.fan .world-card.selected{animation-play-state:paused;translate:0 -9px;rotate:0deg}
.world-card .card-cover{width:100%;aspect-ratio:16/10;border-radius:2px;object-fit:cover;border:1px solid #91b9b166;box-shadow:0 3px 8px #07162277}
.world-card .number{display:none!important}.world-card .symbol{height:34px!important;margin:10px 0 0;filter:none;opacity:.7}.world-card .symbol svg{width:29px!important;height:29px!important}
.deck .choice h2{font-size:16px;margin:8px 0 4px;line-height:1.5}.deck .choice p{color:#9cbcc2;font-size:10px;margin:0;line-height:1.7}
.deck.threads{position:relative;padding-top:58px;max-width:950px;gap:20px}.deck.threads .thread-card{min-height:200px;padding-top:28px;max-width:175px}
.thread-card .patch-cord{height:66px;top:-48px}.thread-card .spool-dot{width:26px;height:36px;border-radius:2px;border-block:5px solid #8195a3;box-shadow:0 0 0 1px #233f4a;position:relative;z-index:2}
.thread-card .symbol{height:45px!important;opacity:.6}.thread-card .symbol svg{height:35px!important}.thread-card .role{font-size:9px;color:#d1e4d8}
.braid{width:min(280px,70%);height:35px}.braid .ply{stroke-width:3;stroke-dasharray:5 6}.braid.on .ply{animation-duration:5s}
.deck.threads .thread-card:hover{translate:0 -6px}.thread-card.selected .spool-dot{animation-duration:7s!important}
@keyframes cloth-drop{from{opacity:0;transform:translateY(-25px) rotate(-5deg)}to{opacity:1;transform:translateY(0) rotate(var(--tilt,0deg))}}
@keyframes patch-sway{0%,100%{transform:rotate(var(--tilt,-2deg))}50%{transform:rotate(calc(var(--tilt,-2deg) + 2deg)) translateY(-2px)}}
/* Other rounds use the same workshop objects, not generic dashboard boxes. */
.mbox{padding-top:25px!important}.mbox .box{background:linear-gradient(#365467,#182d42);border:1px solid #829f9d;border-radius:3px 12px 3px 12px;box-shadow:inset 0 0 0 5px #132b3b}
.mbox .lid{height:11px;background:#92bcb6}.mbox .pick-beat{background:#173342;border:1px dashed #83a8a4;border-radius:3px;color:#b8d8d5;font-size:11px}
.flip-back{border-radius:3px 18px 3px 18px;background:repeating-linear-gradient(45deg,#284656 0 2px,#223b4e 2px 7px);border:1px dashed #9cbfb6;box-shadow:inset 0 0 0 8px #142f3f,inset 0 0 0 9px #75958e66}
.flip-back:after{content:"✂";font:38px Georgia;color:#a8cfc5}.flip-front{border-radius:3px 18px 3px 18px;border-color:#94bab3}.flip-inner{transition-duration:.7s}
.reel .screen{border:5px solid #496171;border-radius:5px;background:#132939;box-shadow:0 3px 10px #0004}.reel .rec{color:#b0d3bc}.reel h2{font-size:15px}
.chip,.secondary{background:#132d3dd9;border:1px dashed #809f9f;color:#b8d2d0;border-radius:3px 10px 3px 10px}
.toolbag{background:#1b3748d9;border:1px dashed #7e9c9c;border-radius:7px 20px 7px 20px;padding:22px;box-shadow:0 15px 35px #04101b55}
.tools-row legend{color:#a9c8c9}.live-count b{color:#b9dfd5}.stream{border:7px solid #415c6d;border-radius:8px;background:#102d40;box-shadow:0 5px 0 #1a3041}
.fighter{border-radius:5px 18px 5px 18px;background:repeating-linear-gradient(90deg,#b0d4d306 0 1px,transparent 1px 4px),#1a3547;border:1px dashed #87aaa3;box-shadow:0 12px 24px #04101b55;padding:16px}.fighter h2{color:#c9ded6}.fighter .primary{background:#b3d2c4;color:#15333e;border-radius:4px;box-shadow:0 4px 0 #45626c}.vs{color:#bacfc7;text-shadow:none;font:italic 32px Cinzel,Georgia}
.finale{background:#112e3edb!important;border:1px dashed #739b9a;border-radius:8px 28px 8px 28px;padding:25px!important;max-width:720px;margin:30px auto}
.cut-zone{border-radius:50%;border:9px solid #516c7a;background:radial-gradient(circle,#244655,#132c3d);box-shadow:inset 0 0 0 2px #9ab2b1,0 0 0 2px #293f51;width:min(420px,85%);height:240px;margin:25px auto}.cz-thread{border-color:#b9e4d6}.cut-button{min-width:190px}
.result-card.loot{background:none;border:0;box-shadow:none;border-radius:0;padding:17px 17px 35px;position:relative;isolation:isolate}.result-card.loot:before{content:"";position:absolute;inset:0;background:url('/assets/gwen-world/cloth-patch.svg') center/100% 100%;z-index:-1}.loot-front{background:none}.loot-back{border:1px dashed #8bb1a6;background:#173243;border-radius:3px 20px}.rank{color:#c3e3d2}.result-card .primary{background:#b3d7c6;color:#14333b;border-radius:4px}.result-card .poster img{border-radius:3px}.result-actions .primary{background:#b3d7c6;color:#14333b;border-radius:4px}
.privacy-note{color:#8cabb6;font-size:10px}
html[data-motion=off] *,html[data-motion=off] *:before,html[data-motion=off] *:after{animation:none!important;transition:none!important}
html[data-atelier-paused] *,html[data-atelier-paused] *:before,html[data-atelier-paused] *:after,html[data-preview=open] .atelier-room *,html[data-preview=open] .arena *{animation-play-state:paused!important}
html[data-motion=off] .menu-scene .sam1,html[data-motion=off] .menu-scene .sam2,html[data-motion=off] .menu-scene .sam3{transform:translateX(-50%) rotate(var(--tilt));opacity:1}
@media(min-width:1000px){.welcome{grid-template-columns:1fr 1.05fr!important;column-gap:55px!important}.intro-copy{align-self:end;padding-bottom:20px}.hero-art.menu-scene{grid-column:2;grid-row:1/3;align-self:center}.menu-controls{grid-column:1;grid-row:2;align-items:flex-start;min-height:150px}.portal-scissors{top:65px}.portal-spark{top:25px}.menu-hint{bottom:3px}.game.arena{padding-top:10px}.deck.fan{max-width:1000px}.stage{margin-top:3px}}
@media(max-width:999px){.atelier-room{background-size:auto 100%;background-position:center}.welcome{justify-content:flex-start!important;padding-top:15px!important}.intro-copy h1{font-size:36px}.hero-art.menu-scene{height:310px;min-height:310px;max-width:450px}.menu-scene .sample{width:140px;bottom:0}.menu-scene .sample.sam2{bottom:-12px}.portal-scissors{top:20px;width:100px;height:145px;left:calc(50% - 50px)}.portal-ring{width:200px;height:200px}.portal-ring.ring-inner{width:175px;height:175px}.portal-disc{width:185px;height:185px}.portal-spark{top:10px;transform-origin:10px 120px}.intro-copy p{max-width:340px;font-size:12px}.menu-controls{margin-top:18px}.atelier-doll.left{left:-25px;bottom:9%;width:145px}.atelier-doll.right{right:-28px;bottom:4%;width:130px}}
@media(max-width:760px){main{padding:8px 20px 22px}.topbar{padding:12px 18px;gap:8px}.brand span{display:none}.brand .original-logo{width:48px;height:48px}.tools{max-width:275px;gap:5px}.tools button,.tools a{font-size:9px;padding:7px 9px}.tools .game-audio{max-width:205px}.game.arena{padding:8px 0 30px;gap:10px}.arena .round-head h1{font-size:25px}.arena .round-head p{font-size:10px;max-width:280px}.arena .game-top>.eyebrow{display:none}.gwen-say{min-height:34px}#bubble{font-size:10px;max-width:235px}.gwen-badge{width:29px;height:29px}.gwen-badge img{width:23px;height:23px}.arena .steps{width:75%;height:12px;gap:8px}.arena .steps li{flex-basis:8px;height:8px}.stage{min-height:0;padding:8px 0}.deck.fan{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 13px;padding-top:48px;max-width:410px}.hanging-line{height:50px;top:0}.deck.fan .world-card{min-width:0;max-width:none!important;min-height:0;flex:none!important;padding:19px 13px 30px;--tilt:0deg;animation:cloth-drop .55s both;animation-delay:calc(var(--i)*65ms)}.deck.fan .world-card:last-child{grid-column:1/-1;width:calc(50% - 6px);justify-self:center}.world-card .symbol{display:none!important}.deck .choice h2{font-size:13px;margin:10px 0 4px}.deck .choice p{display:block;font-size:9px}.world-card .card-cover{aspect-ratio:16/9}.patch-cord{top:-32px;height:48px}.world-card:nth-child(n+3) .patch-cord{top:-22px;height:40px}.patch-pin{width:8px;height:8px;left:calc(50% - 4px);top:10px}.deck.threads{gap:25px 10px;padding-top:35px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.deck.threads .thread-card{max-width:none;padding:22px 8px 25px;min-height:140px}.thread-card .patch-cord{top:-23px;height:39px}.thread-card .symbol{display:none!important}.thread-card .spool-dot{width:22px;height:29px}.thread-card .role{font-size:8px;min-height:9px}.braid{height:25px;width:65%}.deck.boxes .choice{padding:20px 10px 28px}.mbox .box{height:80px}.deck .reel{padding:17px 12px 30px!important}.toolbag{padding:15px}.fighter{padding:10px}.fighter h2{font-size:12px}.versus{align-items:center}.fighter .primary{font-size:12px}.result-card.loot{padding:18px 15px 36px}.atelier-doll{opacity:.65}.menu-scene .sample{width:123px;padding:15px 10px 27px}.hero-art.menu-scene{height:290px;min-height:290px}.intro-copy h1{font-size:32px}.menu-controls .start{min-width:230px;min-height:55px;font-size:17px}.menu-controls .sound-bars{display:none}.menu-controls .intro-meta{font-size:9px}.menu-hint{font-size:8px}.cut-zone{height:200px;width:90%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.deal{opacity:1;transform:none}.menu-scene .sample{transform:translateX(-50%) rotate(var(--tilt));opacity:1}.demo-fast img:first-child,.demo-smooth img:first-child,.demo-balanced img:first-child{opacity:1}}.sample .patch-cord,.sample .patch-pin{padding:0!important;font-size:0!important;line-height:0!important;letter-spacing:0!important}.atelier-doll{filter:drop-shadow(0 6px 8px #020c17)}
/* Authored details: quieter finishes, smaller side characters, intact hanging geometry. */
.menu-scene .sample{animation-name:sample-hang}
@keyframes sample-hang{0%,100%{transform:translateX(-50%) rotate(var(--tilt,-2deg))}50%{transform:translateX(-50%) translateY(-3px) rotate(calc(var(--tilt,-2deg) + 1.5deg))}}
.menu-controls .start,.actions .primary,.cut-button{background:repeating-linear-gradient(0deg,#102b3408 0 1px,transparent 1px 4px),#98bbb0;box-shadow:0 4px 0 #284b54,0 8px 17px #020b1640;color:#142f36}
.portal-disc{border-color:#4b6570;box-shadow:0 0 0 2px #283e4a,inset 0 0 0 1px #849b9e}
.portal-ring{opacity:.4}.portal-ring.ring-inner{opacity:.3}.portal-spark{opacity:.45}
.atelier-doll.left{width:clamp(100px,12vw,170px);height:170px;left:1%;bottom:16%}
.atelier-doll.right{width:clamp(95px,11vw,155px);height:170px;right:1%;bottom:12%}
.game.arena .game-top{border-bottom:none;padding-bottom:3px}.intro-copy>.eyebrow{letter-spacing:1.1px}
@media(max-width:760px){.menu-scene .sample{width:112px}.menu-scene .sample.sam1{left:19%;bottom:6px}.menu-scene .sample.sam2{left:50%;bottom:-8px}.menu-scene .sample.sam3{left:81%;bottom:6px}.hero-art.menu-scene{height:280px;min-height:280px}.atelier-doll.left{width:95px;height:135px;bottom:9%;left:-15px}.atelier-doll.right{width:90px;height:135px;bottom:6%;right:-12px}.portal-disc{width:165px;height:165px;border-width:6px}.portal-ring{width:190px;height:190px}.portal-ring.ring-inner{width:150px;height:150px}.portal-scissors{top:20px;height:135px;width:94px;left:calc(50% - 47px)}}
html[data-motion=off] .menu-scene .sample{transform:translateX(-50%) rotate(var(--tilt));opacity:1}
@media(prefers-reduced-motion:reduce){.menu-scene .sample{transform:translateX(-50%) rotate(var(--tilt));opacity:1}}
/* Gwen's actual palette: navy cloth, blue scissors, cyan thread, a hint of violet. */
:root{--m:#83ddf4;--m2:#9d8de1;--thread:#a7d7f4;--cloth:#172644}
body{background:#070f22;color:#edf5ff}
.atelier-room{background:#0a162a;isolation:isolate}
.cinematic-scenery{position:absolute;inset:-2%;background:url('/assets/gwen-world/atelier-cinematic-clean.webp') center/cover no-repeat;animation:cinematic-drift 28s ease-in-out infinite alternate;z-index:-1;will-change:transform}
.atelier-room:after{background:linear-gradient(0deg,#030a19a8,transparent 42%,#02091c55),radial-gradient(ellipse at 50% 44%,#06112633,transparent 65%)}
html:not([data-scene=welcome]) .atelier-room:after{background:linear-gradient(0deg,#02091b91,transparent 50%,#030c2166),radial-gradient(ellipse at 50% 40%,#081326aa,transparent 75%)}
.atelier-doll{display:none}
.atelier-light{background:radial-gradient(ellipse at 12% 70%,#72ddf71b,transparent 36%),radial-gradient(ellipse at 85% 25%,#717cce16,transparent 40%);animation:room-breathe 9s ease-in-out infinite alternate}
.atelier-sparks i{background:#b3e9ff;box-shadow:0 0 7px #6bd5f766}
@keyframes cinematic-drift{from{transform:translate3d(-.3%,0,0) scale(1.01)}to{transform:translate3d(.3%,-.6%,0) scale(1.025)}}
.intro-copy h1{color:#f0f5ff}.intro-copy h1 em{color:#9ce7fa}.intro-copy p{color:#bfd0e3;text-shadow:0 2px 8px #020714}.intro-copy>.eyebrow{color:#9dc8dc}
.menu-controls .start,.actions .primary,.cut-button{background:repeating-linear-gradient(0deg,#0a325708 0 1px,transparent 1px 4px),linear-gradient(110deg,#8cdcf2,#85b7eb 65%,#a29ada);color:#0c203b;box-shadow:0 4px 0 #2b3f67,0 9px 24px #02091d66}
.menu-controls .start:before,.actions .primary:before,.cut-button:before{border-color:#315c9266}
.topbar{background:linear-gradient(#040c1b85,transparent)}
.tools button,.tools a,.game-audio{background:#0b1933c4!important;border-color:#7595be55!important;color:#bdd2e9}
.brand{color:#e0e9f7}.brand small{color:#8bacca}.gwen-badge{background:#11264a;border-color:#7ca6cd}
#bubble{background:#0c1b35aa;color:#b8cee2;border-color:#80add077}
.arena .round-head h1{color:#eef5ff;text-shadow:0 2px 12px #000}.arena .round-head p{color:#adc2dc}.round-kicker{color:#93b7d8}
.game-top #counter{background:#152443;border-color:#709bc1;color:#b8d9f1}.arena .game-top{color:#94b1cb}
.arena .steps li{background:#182f51;border-color:#557aa2}.arena .steps li:before{background:#9bdbf0}.arena .steps li.current{border-color:#c3e8ff;background:#426991}
.hanging-line path{stroke:#98c3dc}.patch-cord{background:linear-gradient(#577ba7,#bdd9ed 40%,#6c92b6)}.patch-cord:before{background:#263c5c;border-color:#94b9d5}.patch-pin{border-color:#afc8dd;background:radial-gradient(circle at 35% 30%,#d6e4ed,#7996b3 55%,#30486b)}
.deck .choice h2{color:#edf5ff}.deck .choice p{color:#b4c9e1}.deck .choice.selected:after{background:#9bd8f0;color:#10243d;border-color:#6896c3}
.thread-card .spool-dot{border-color:#8298b7}.thread-card .role{color:#c7ddf5}
.portal-disc{background:radial-gradient(circle,#23436650,#10203b90);border-color:#4f6a8b;box-shadow:0 0 0 2px #1e3050,inset 0 0 0 1px #99b3cf}.portal-ring{border-color:#8ebcdd6e}.portal-ring.ring-inner{border-color:#aca1d975}.portal-spark{color:#bfefff}
.mbox .box{background:linear-gradient(#2b4068,#122643);border-color:#7899bd;box-shadow:inset 0 0 0 5px #10203b}.mbox .lid{background:#8bbcd9}.mbox .pick-beat,.chip,.secondary{background:#12243edc;border-color:#7a9bc2;color:#bfd4eb}
.flip-back{background:repeating-linear-gradient(45deg,#20375b 0 2px,#192d4c 2px 7px);border-color:#99bedc;box-shadow:inset 0 0 0 8px #10223d,inset 0 0 0 9px #7797bb66}.flip-back:after{color:#a9d9ee}
.toolbag,.fighter{background-color:#142946;border-color:#7598bf}.tools-row legend{color:#b1c9e3}.live-count b{color:#b0e4f6}.fighter h2{color:#d5e3f6}.fighter .primary,.result-card .primary,.result-actions .primary{background:#9fcaec;color:#0d2544}.vs{color:#b8cce9}
.finale{background:#0d203cdd!important;border-color:#749bc0}.cut-zone{background:radial-gradient(circle,#244568,#10233c);border-color:#536d94;box-shadow:inset 0 0 0 2px #9cb7d5,0 0 0 2px #273e64}.cz-thread{border-color:#b4e5f8}
.rank{color:#c0dff5}.privacy-note,footer,.menu-hint{color:#91abc6}
@media(max-width:760px){.cinematic-scenery{background-position:45% center;inset:-2% -38%;animation-duration:32s}.atelier-room:after{background:linear-gradient(0deg,#020a1ed9,transparent 65%,#03102377)}html:not([data-scene=welcome]) .atelier-room:after{background:linear-gradient(0deg,#030b1da6,#06132985 50%,#030b1e70)}}
html[data-motion=off] .cinematic-scenery{animation:none!important;transform:none;will-change:auto}
@media(prefers-reduced-motion:reduce){.cinematic-scenery{animation:none!important;transform:none;will-change:auto}}
/* Motion belongs to the environment: moving mist, travelling magic and articulated source dolls. */
.cinema-fog,.cinema-energy{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.fog-band{position:absolute;left:-20%;width:140%;height:27%;background:radial-gradient(ellipse,#8aabc814 0,#8aa6bf08 37%,transparent 70%);opacity:.55;animation:mist-cross 24s ease-in-out infinite alternate;will-change:transform}
.fog-0{top:53%;transform:rotate(-6deg)}.fog-1{top:75%;height:21%;animation-duration:31s;animation-delay:-13s;opacity:.4}
@keyframes mist-cross{from{transform:translate3d(-6%,8%,0) rotate(-4deg);opacity:.25}to{transform:translate3d(8%,-9%,0) rotate(3deg);opacity:.75}}
.energy-thread{position:absolute;width:25%;height:32%;overflow:visible;opacity:.55;left:-2%;bottom:9%;transform:rotate(-6deg)}
.energy-right{left:auto;right:-2%;bottom:0;transform:scaleX(-1) rotate(8deg);opacity:.4}
.energy-thread path{fill:none;stroke:#91e4fa;stroke-width:.7}.energy-thread .trail{opacity:.2}.energy-thread .pulse{stroke-width:1.4;stroke-dasharray:26 330;animation:magic-travel 9s linear infinite}.energy-right .pulse{animation-delay:-4s;animation-duration:12s}
@keyframes magic-travel{from{stroke-dashoffset:356}to{stroke-dashoffset:0}}
.scissor-aura{position:absolute;left:8%;bottom:2%;width:28%;height:35%;background:radial-gradient(ellipse,#39cef727,transparent 65%);animation:scissor-breathe 5.5s ease-in-out infinite alternate;mix-blend-mode:screen}
.aura-right{left:auto;right:1%;bottom:0;width:25%;height:27%;animation-duration:7s;animation-delay:-2s}
@keyframes scissor-breathe{from{opacity:.25;transform:scale(.94)}to{opacity:.9;transform:scale(1.04)}}
.atelier-sparks{animation:room-dust 19s ease-in-out infinite alternate}.atelier-sparks i:nth-child(3n){animation:particle-wink 5s ease-in-out infinite alternate}.atelier-sparks i:nth-child(3n+1){animation:particle-wink 7s -3s ease-in-out infinite alternate}
@keyframes particle-wink{from{opacity:.1;transform:translateY(3px)}to{opacity:.7;transform:translateY(-7px)}}
.atelier-puppet{position:absolute;width:clamp(100px,12vw,170px);height:180px;pointer-events:none;z-index:1;animation:puppet-breathe 7s ease-in-out infinite alternate;transform-origin:50% 100%}
.atelier-puppet svg{width:100%;height:100%;overflow:visible}.puppet-left{left:2.5%;bottom:26%}.puppet-right{right:2.5%;bottom:10%;width:clamp(100px,11vw,160px);animation-duration:8s;animation-delay:-3s}
.puppet-part{transform-box:view-box}.head-a{transform-origin:82px 194px;animation:head-watch-a 9s ease-in-out infinite}.head-b{transform-origin:161px 144px;animation:head-watch-b 11s -3s ease-in-out infinite}.head-c{transform-origin:126px 145px;animation:head-watch-a 10s -4s ease-in-out infinite}
@keyframes puppet-breathe{from{transform:translateY(0) rotate(-.4deg)}to{transform:translateY(-3px) rotate(.6deg)}}
@keyframes head-watch-a{0%,30%,100%{transform:rotate(-1deg)}55%,70%{transform:rotate(3deg)}}
@keyframes head-watch-b{0%,35%,100%{transform:rotate(1deg)}60%,75%{transform:rotate(-3deg)}}
@media(max-width:760px){.energy-thread{width:44%;height:26%;opacity:.4}.fog-band{height:21%;opacity:.4}.puppet-left{left:-12px;bottom:18%;width:105px;height:130px}.puppet-right{right:-10px;bottom:8%;width:100px;height:125px}.cinema-fog{opacity:.7}.scissor-aura{width:50%;height:23%;left:-12%}.aura-right{left:auto;right:-10%}}
@media(prefers-reduced-motion:reduce){.cinema-fog *,.cinema-energy *,.atelier-puppet,.puppet-part{animation:none!important;will-change:auto}}
