:root{color:#17201b;background:#eef4ec;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 18% 12%,rgba(244,208,93,.24),transparent 30%),linear-gradient(135deg,#f4f7ef,#e8f0e5 44%,#d9e7d4)}button{min-height:42px;border:1px solid #d6d6d2;border-radius:6px;background:#ffffffeb;color:#171717;cursor:pointer;font:inherit;font-weight:700;padding:10px 14px}button:disabled{cursor:not-allowed;opacity:.45}.page,.level-screen{min-height:100vh;padding:24px}.page{background:linear-gradient(180deg,#ffffff57,#eef4ecb8),radial-gradient(circle at 78% 18%,rgba(68,134,88,.18),transparent 28%)}.symmetric-city-page,.symmetric-city-run{background:linear-gradient(180deg,#f7faf48a,#dde8e0d1),linear-gradient(90deg,transparent 0 4%,rgba(42,57,50,.2) 4% 7%,transparent 7% 12%,rgba(42,57,50,.14) 12% 17%,transparent 17% 22%,rgba(42,57,50,.18) 22% 26%,transparent 26% 34%,rgba(42,57,50,.16) 34% 39%,transparent 39% 46%,rgba(42,57,50,.2) 46% 50%,transparent 50% 58%,rgba(42,57,50,.15) 58% 63%,transparent 63% 72%,rgba(42,57,50,.18) 72% 76%,transparent 76% 84%,rgba(42,57,50,.16) 84% 89%,transparent 89% 100%),linear-gradient(180deg,#edf3ea,#dce8de);background-position:center,bottom,center;background-repeat:no-repeat;background-size:auto,100% 42%,auto}.symmetric-city-page:before,.symmetric-city-run:before{background:linear-gradient(90deg,transparent 0 8%,rgba(255,255,255,.34) 8% 9%,transparent 9% 16%,rgba(255,255,255,.32) 16% 17%,transparent 17% 25%,rgba(255,255,255,.3) 25% 26%,transparent 26% 100%),linear-gradient(0deg,#25352b2e,#25352b0a);border-top:1px solid rgba(37,53,43,.14);bottom:0;content:"";height:24vh;left:0;pointer-events:none;position:fixed;right:0}.topbar,.runbar{align-items:center;gap:14px;margin:0 auto 32px;max-width:980px}.topbar{display:flex;position:relative;z-index:2}.topbar>div{flex:1}.runbar{display:grid;grid-template-columns:auto 1fr auto auto}.eyebrow{color:#6d6d67;display:block;font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}h1{font-size:clamp(30px,5vw,56px);line-height:1;margin:4px 0 0;max-width:760px}p{color:#4e4e49;font-size:17px;line-height:1.45;margin:0}.primary{background:#236f3e;border-color:#236f3e;color:#fff}.ghost{background:#ffffffa8}.currency,.reward,.energy{color:#128238;font-weight:900}.hero{display:grid;gap:28px;grid-template-columns:minmax(260px,.8fr) minmax(320px,1.2fr);margin:12vh auto 0;max-width:980px}.hero-copy{display:grid;gap:16px;align-content:start}.island-list,.trail,.cards,.shop-tracks{display:grid;gap:10px}.island-list{grid-template-columns:repeat(3,minmax(0,1fr))}.island,.trail-node,.move-card,.shop-track,.track-step,.mode-panel,.summary-panel{background:#ffffffdb;border:1px solid rgba(134,158,130,.36);border-radius:6px;color:#171717;box-shadow:0 14px 36px #2d45301f;text-align:left}.island{min-height:132px}.island b,.trail-node b,.move-card b,.shop-track b,.track-step b{display:block;font-size:21px}.island span,.trail-node small,.trail-node span,.move-card span{color:#666661;display:block;margin-top:7px}.trail{grid-template-columns:repeat(5,minmax(145px,1fr));margin:8vh auto 0;max-width:980px}.map-page{overflow:hidden}.cyclic-map-page{background:radial-gradient(circle at 18% 24%,rgba(247,210,88,.26),transparent 20%),radial-gradient(circle at 76% 62%,rgba(42,126,76,.2),transparent 26%),linear-gradient(180deg,#ffffff57,#eef4ecad),linear-gradient(135deg,#f4f7ef,#dcead7)}.dihedral-depths-page,.dihedral-depths-run{background:radial-gradient(circle at 72% 28%,rgba(207,174,95,.24),transparent 22%),radial-gradient(circle at 24% 68%,rgba(72,114,118,.18),transparent 24%),linear-gradient(180deg,#ffffff5c,#ecf1e7b8),linear-gradient(135deg,#edf4ec,#d9e4d4)}.world-page{overflow:hidden}.world-map{background:radial-gradient(ellipse at 30% 58%,rgba(73,143,82,.76) 0 15%,rgba(170,198,103,.72) 16% 25%,transparent 26%),radial-gradient(ellipse at 68% 46%,rgba(83,126,107,.72) 0 12%,rgba(158,181,134,.7) 13% 22%,transparent 23%),radial-gradient(ellipse at 75% 23%,rgba(112,132,104,.42) 0 8%,transparent 9%),linear-gradient(160deg,#b6d7d9,#d8eee8 48%,#b5d0d0);border:1px solid rgba(68,118,112,.3);border-radius:8px;box-shadow:inset 0 0 120px #18525529,0 24px 70px #2d453029;height:min(74vh,720px);margin:0 auto;max-width:1120px;min-height:520px;overflow:hidden;position:relative}.world-map:before{background:linear-gradient(24deg,transparent 0 30%,rgba(255,255,255,.42) 30% 31%,transparent 31% 100%),linear-gradient(154deg,transparent 0 52%,rgba(255,255,255,.34) 52% 53%,transparent 53% 100%);content:"";top:0;right:0;bottom:0;left:0;pointer-events:none;position:absolute}.world-water{background:radial-gradient(circle at 18% 18%,rgba(255,255,255,.38),transparent 9%),radial-gradient(circle at 90% 74%,rgba(255,255,255,.28),transparent 10%);top:0;right:0;bottom:0;left:0;pointer-events:none;position:absolute}.world-location{background:#ffffffe0;border:1px solid rgba(82,118,78,.38);border-radius:6px;box-shadow:0 14px 36px #2d453024;color:#171717;min-height:138px;padding:15px;position:absolute;text-align:left;transform:translate(-50%,-50%);width:clamp(158px,20vw,230px);z-index:1}.world-location b{display:block;font-size:21px}.world-location span:not(.node-index){color:#666661;display:block;margin-top:7px}.world-location:after{background:#25352b2e;border-radius:50%;bottom:-22px;content:"";height:18px;left:18%;position:absolute;width:64%;z-index:-1}.cyclic-land{left:29%;top:58%}.symmetric-land{left:68%;top:46%}.dihedral-land{left:46%;top:31%}.locked-land{left:76%;top:23%}.level-map{height:min(68vh,640px);margin:4vh auto 0;max-width:1040px;position:relative;z-index:1}.level-map:before{background:linear-gradient(90deg,#52764e40,#236f3e80,#52764e40);border-radius:999px;content:"";height:8px;left:12%;position:absolute;top:58%;transform:rotate(-7deg);width:76%}.symmetric-map:before{background:linear-gradient(90deg,#313d3a42,#313d3a85,#313d3a42);top:55%;transform:rotate(-1deg)}.dihedral-map:before{background:linear-gradient(90deg,#6e593033,#6e59307a,#6e593033);top:52%;transform:rotate(-10deg)}.trail-node{min-height:190px;padding:15px;position:relative}.map-node{min-height:128px;padding:13px;position:absolute;transform:translate(-50%,-50%);width:clamp(136px,16vw,176px);z-index:2}.map-node:after{background:#25352b29;border-radius:50%;bottom:-22px;content:"";height:18px;left:18%;position:absolute;width:64%;z-index:-1}.map-node.locked{background:#eeeee9e0}.place-node{background:linear-gradient(160deg,#fff5caf2,#e8c769e0);border-color:#8f68266b;box-shadow:inset 0 0 0 1px #ffffff8f,0 18px 42px #4b3a1d29;min-height:118px;width:clamp(132px,15vw,164px)}.place-node .node-index{background:#8b5f1e;color:#fff8df}.zoom-page{animation:map-camera-zoom .52s cubic-bezier(.2,.8,.2,1) forwards;transform-origin:var(--zoom-x, 50%) var(--zoom-y, 50%)}.zoom-map{pointer-events:none}.zoom-target{border-color:#236f3e;box-shadow:inset 0 0 0 2px #236f3e,0 22px 54px #236f3e38}.zoom-topbar{animation:zoom-topbar-fade .52s ease forwards}@keyframes map-camera-zoom{0%{filter:saturate(1);transform:scale(1)}to{filter:saturate(1.08);transform:scale(1.42)}}@keyframes zoom-topbar-fade{to{opacity:0}}.shop-tracks{margin:8vh auto 0;max-width:980px}.shop-track{align-items:center;display:grid;gap:16px;grid-template-columns:minmax(150px,.4fr) 1fr;padding:15px}.shop-moves{background:#ffffffdb;border:1px solid rgba(134,158,130,.36);border-radius:6px;box-shadow:0 14px 36px #2d45301f;display:grid;gap:14px;padding:15px}.shop-section-title{align-items:center;display:flex;gap:12px;justify-content:space-between}.shop-section-title b{display:block;font-size:21px}.help-button{border-radius:999px;font-size:19px;height:42px;min-height:42px;padding:0;text-align:center;width:42px}.move-upgrade-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.forge-action{display:grid;gap:6px}.forge-action .move-upgrade-tile{width:100%}.delete-forged{background:#ffffffd1;border-color:#d94b2b75;color:#8d2f1c;min-height:34px;padding:6px 10px;text-align:center}.move-upgrade-tile{background:linear-gradient(135deg,hsl(var(--move-hue) var(--move-saturation) var(--move-lightness)),#ffffffeb);border-color:hsl(var(--move-hue) var(--move-saturation) 40%);box-shadow:inset 0 0 0 1px #ffffff8a,0 0 24px hsla(var(--move-hue),var(--move-saturation),52%,var(--move-glow-alpha)),0 14px 36px #2d45301f;display:grid;gap:6px;min-height:132px;padding:14px;text-align:left}.move-upgrade-tile:disabled{cursor:not-allowed}.move-upgrade-tile span,.move-upgrade-tile small{color:#171717b8;font-size:12px;font-style:normal;font-weight:900;text-transform:uppercase}.move-upgrade-tile b{display:block;font-size:28px}.move-upgrade-tile em{color:#17201b;font-style:normal;font-weight:900}.upgrade-chart{border:1px solid rgba(134,158,130,.32);border-radius:6px;overflow:hidden}.chart-row{align-items:center;background:#ffffffb8;display:grid;gap:8px;grid-template-columns:1.2fr .7fr .7fr .8fr;padding:9px 11px}.chart-row+.chart-row{border-top:1px solid rgba(134,158,130,.22)}.chart-head{background:#25352beb;color:#fff;font-size:12px;font-weight:900;text-transform:uppercase}.track-steps{display:flex;flex-wrap:wrap;gap:8px}.track-step{min-height:76px;min-width:112px;padding:12px;text-align:center}.track-step span{color:#666661;display:block;font-size:12px;font-weight:800;margin-bottom:5px;text-transform:uppercase}.track-step.owned{border-color:#12823861;box-shadow:inset 0 0 0 1px #12823842,0 14px 36px #2d45301a}.node-index{align-items:center;background:#25352b;border:1px solid #25352b;border-radius:999px;color:#fff;display:grid;height:32px;justify-items:center;margin-bottom:18px;width:32px}.loadout-layout{display:grid;gap:16px;grid-template-columns:280px 1fr;margin:8vh auto 0;max-width:900px}.mode-panel{align-self:start;padding:16px}.segmented{background:#e6eee2e6;border:1px solid rgba(134,158,130,.36);border-radius:6px;display:grid;gap:4px;grid-template-columns:1fr 1fr;margin:12px 0;padding:4px}.segmented button{border:0}.segmented button.active{background:#25352b;color:#fff}.math-line{font-weight:700}.cards{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}.move-card{min-height:112px;padding:15px;position:relative}.move-card.selected{border-color:#236f3e;box-shadow:inset 0 0 0 2px #236f3e,0 16px 34px #236f3e29}.move-card.compact{min-height:64px;min-width:108px;text-align:center}.move-card.compact small{color:#6b786d;display:block;font-size:12px;font-weight:900;margin-bottom:4px}.recipe-line{color:#6b4a36;display:block;font-size:12px;font-style:normal;font-weight:900;margin:3px 0}.key-badge{align-items:center;background:#25352b;border-radius:999px;color:#fff;display:grid;font-size:12px;font-weight:900;height:28px;justify-items:center;margin:0;position:absolute;right:10px;top:10px;width:28px}.start-run{grid-column:1 / -1;justify-self:start}.level-screen{background:radial-gradient(circle at 50% 45%,rgba(68,134,88,.18),transparent 34%),linear-gradient(135deg,#f4f7ef,#e7f0e4);overflow:hidden}.cycle{aspect-ratio:1;background:radial-gradient(circle at 50% 50%,rgba(247,210,88,.08),transparent 42%),#fff;border:1px solid rgba(134,158,130,.4);border-radius:6px;box-shadow:0 24px 70px #2d453029;margin:0 auto;max-height:min(66vh,640px);max-width:min(92vw,640px);position:relative}.cycle:before{border:2px solid rgba(110,135,105,.38);border-radius:50%;content:"";top:12%;right:12%;bottom:12%;left:12%;position:absolute}.cycle-node{align-items:center;background:#fff;border:1px solid rgba(134,158,130,.5);border-radius:999px;display:grid;height:58px;justify-items:center;padding:4px;position:absolute;transform:translate(-50%,-50%);width:58px}.cycle-node.current{background:#25352b;border-color:#25352b;color:#fff;box-shadow:0 0 0 6px #236f3e26}.motion-cycle .cycle-node.current{animation:cycle-action .34s cubic-bezier(.2,.8,.2,1)}.permutation-board{background:#ffffff80;border:1px solid rgba(134,158,130,.32);border-radius:6px;box-shadow:0 24px 70px #2d45301f;display:grid;gap:22px;justify-items:center;margin:8vh auto 0;max-width:720px;padding:24px;position:relative}.dihedral-board{background:#ffffff94;border:1px solid rgba(123,108,75,.34);border-radius:6px;box-shadow:0 24px 70px #2d453024;display:grid;gap:20px;justify-items:center;margin:5vh auto 0;max-width:680px;padding:24px}.polygon-face{aspect-ratio:1;background:#ffffffc2;border:1px solid rgba(123,108,75,.32);border-radius:6px;box-shadow:inset 0 0 0 10px #8f68260f;max-width:min(86vw,480px);position:relative;width:100%}.polygon-rotor{top:0;right:0;bottom:0;left:0;position:absolute;transform:rotate(var(--rotation, 0deg)) scaleX(var(--face-scale, 1));transition:transform .36s cubic-bezier(.2,.8,.2,1)}.target-rotor{top:0;right:0;bottom:0;left:0;position:absolute;transform:rotate(var(--target-rotation, 0deg)) scaleX(var(--target-face-scale, 1))}.dihedral-board.flipped{--face-scale: -1}.motion-rotate .polygon-rotor{animation:dihedral-rotate .42s cubic-bezier(.2,.8,.2,1)}.motion-flip .polygon-rotor{animation:dihedral-flip .5s cubic-bezier(.2,.8,.2,1)}.polygon-fill{background:linear-gradient(135deg,#3a83bedb,#89cfdeb3 48%,#204e84e0),radial-gradient(circle at 34% 24%,rgba(255,255,255,.52),transparent 22%);clip-path:polygon(var(--polygon-points));top:13%;right:13%;bottom:13%;left:13%;position:absolute}.dihedral-board.flipped .polygon-fill{background:linear-gradient(135deg,#d2772ee6,#f5b557bd 48%,#92451fdb),radial-gradient(circle at 34% 24%,rgba(255,255,255,.46),transparent 22%)}.polygon-vertex{align-items:center;background:#fff;border:1px solid rgba(123,108,75,.46);border-radius:999px;box-shadow:0 14px 36px #2d45301f;display:grid;font-weight:900;height:46px;justify-items:center;position:absolute;transform:translate(-50%,-50%) scaleX(var(--face-scale, 1)) rotate(calc(-1 * var(--rotation, 0deg)));width:46px;z-index:1}.polygon-vertex.target{background:#ffffff9e;height:34px;opacity:.95;transform:translate(-50%,-50%) scaleX(var(--target-face-scale, 1)) rotate(calc(-1 * var(--target-rotation, 0deg)));width:34px;z-index:0}.polygon-vertex.target-up{border-color:#2a73b09e;color:#1d5e99}.polygon-vertex.target-down{border-color:#d3742dad;color:#a44f1f}.polygon-vertex.marked{background:#25352b;border-color:#25352b;color:#fff}.face-label{color:#17171780;font-size:clamp(36px,8vw,72px);font-weight:900;left:50%;position:absolute;text-transform:uppercase;top:50%;transform:translate(-50%,-50%) scaleX(var(--face-scale, 1)) rotate(calc(-1 * var(--rotation, 0deg)))}@keyframes dihedral-rotate{0%{filter:saturate(.92)}55%{filter:saturate(1.35)}to{filter:saturate(1)}}@keyframes dihedral-flip{0%{transform:rotate(var(--rotation, 0deg)) scaleX(calc(var(--face-scale, 1) * -1))}50%{transform:rotate(var(--rotation, 0deg)) scaleX(.08)}to{transform:rotate(var(--rotation, 0deg)) scaleX(var(--face-scale, 1))}}@keyframes cycle-action{0%{transform:translate(-50%,-50%) scale(.78)}55%{box-shadow:0 0 0 12px #236f3e2e;transform:translate(-50%,-50%) scale(1.14)}to{transform:translate(-50%,-50%) scale(1)}}.tile-row{display:flex;gap:12px;justify-content:center}.tile-row span{align-items:center;background:#fff;border:1px solid rgba(134,158,130,.5);border-radius:6px;box-shadow:0 14px 36px #2d45301f;display:grid;font-size:clamp(30px,5vw,54px);font-weight:900;height:92px;justify-items:center;width:92px}.tile-row.current span{background:#25352b;border-color:#25352b;color:#fff}.motion-permute .tile-row.current span.moving{animation:symmetric-action .39s cubic-bezier(.2,.8,.2,1);position:relative;z-index:1}@keyframes symmetric-action{0%{transform:translate(var(--from-x, 0))}55%{box-shadow:0 18px 42px #25352b33;transform:translate(calc(var(--from-x, 0) * .16))}to{transform:translate(0)}}.target-row{display:grid;gap:8px;justify-items:center}.target .coin-stack{position:static}.coin-stack{align-items:center;background:#e8c64d;border:1px solid #c8a933;border-radius:999px;color:#171717;display:grid;font-size:12px;height:22px;justify-items:center;position:absolute;right:-6px;top:-7px;width:22px}.energy-stack{align-items:center;background:#72d6ff;border:1px solid #3aa8d0;border-radius:999px;color:#103342;display:grid;font-size:12px;height:22px;justify-items:center;left:-6px;opacity:max(.28,var(--charge));position:absolute;transform:scale(max(.42,var(--charge)));transform-origin:center;top:-7px;transition:opacity .28s linear,transform .28s linear;width:28px}.loading-screen{display:grid;place-items:center}.loading-panel{align-items:center;display:grid;gap:14px;justify-items:center}.loading-orbit{height:78px;position:relative;width:78px}.loading-orbit span{animation:loading-pulse 1.35s ease-in-out infinite;background:#25352b;border-radius:999px;height:18px;left:30px;position:absolute;top:30px;transform-origin:9px 9px;width:18px}.loading-orbit span:nth-child(1){transform:rotate(0) translate(28px)}.loading-orbit span:nth-child(2){animation-delay:.16s;transform:rotate(120deg) translate(28px)}.loading-orbit span:nth-child(3){animation-delay:.32s;transform:rotate(240deg) translate(28px)}@keyframes loading-pulse{0%,to{opacity:.35}50%{opacity:1}}.move-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:18px auto 0;max-width:680px}.summary{display:grid;place-items:center}.summary-panel{max-width:480px;padding:26px}.tutorial-panel{background:#ffffffe6;border:1px solid rgba(134,158,130,.36);border-radius:6px;box-shadow:0 24px 70px #2d453029;display:grid;gap:16px;max-width:560px;padding:28px}.tutorial-panel h1{font-size:clamp(34px,5vw,54px)}.tutorial-panel strong{color:#25352b}.summary-panel p{font-size:23px;margin:16px 0}.menu-actions{display:flex;flex-wrap:wrap;gap:10px}@media(max-width:840px){.topbar,.runbar,.hero,.loadout-layout,.island-list,.trail{grid-template-columns:1fr}.hero,.trail{margin-top:32px}.level-map{height:620px;margin-top:18px}.map-node{width:min(72vw,220px)}.cycle-node{height:48px;width:48px}}
