@font-face{font-family:Rubik;src:url('../Rubik-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Rubik;src:url('../Rubik-Medium.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Rubik;src:url('../Rubik-Bold.ttf') format('truetype');font-weight:700;font-display:swap}
:root{--paper:#faf9fc;--ink:#302d40;--muted:#797384;--purple:#7958cf;--purple-deep:#6646b1;--lilac:#eee8f8;--gold:#f2d381;--line:#e8e3ee;--radius:22px;--gold-light:#f4e2ad;--sage:#e4eee8;--sage-ink:#50745f;--rose:#f2e5eb;--rose-ink:#a1677f;--peach:#f3e9db;--peach-ink:#9a754a;--blue:#e3ebf4;--blue-ink:#5c7896}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Rubik,sans-serif;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button{border:0}button:disabled{cursor:default}img{display:block;max-width:100%}button,a{-webkit-touch-callout:none}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--purple);outline-offset:5px}button:disabled{opacity:.55}::selection{background:#d7c7f4}h1,h2,h3,p{margin:0}p{line-height:1.7}.shell{max-width:1240px;margin:0 auto;padding-inline:40px}.icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.svg-library{position:absolute;width:0;height:0;overflow:hidden}.skip-link{position:fixed;top:12px;left:12px;z-index:100;transform:translateY(-150%);background:var(--ink);color:white;padding:15px;border-radius:8px}.skip-link:focus{transform:none}.button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:54px;padding:14px 23px;border-radius:13px;font-size:14px;font-weight:500;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button-small{min-height:44px;padding:10px 19px;font-size:13px;border-radius:11px}.button-ink{background:var(--ink);color:white}.button-ink:hover{background:#423954}.button-purple{background:var(--purple);color:white;box-shadow:0 4px 0 #583a9e}.button-purple:hover{background:var(--purple-deep)}.button-light{background:#efebf7}.site-header{height:106px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:9px;font-size:25px;font-weight:500;letter-spacing:-.8px}.brand b{color:var(--purple);font-weight:inherit}.site-header nav{display:flex;gap:35px;font-size:13px;color:#5f596f}.site-header nav a{padding:12px 0;transition:color .2s}.site-header nav a:hover{color:var(--purple)}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:695px;align-items:center;gap:14px;padding-top:20px;padding-bottom:75px}.hero-copy{padding-top:0;position:relative;z-index:2}.intro-note{display:flex;align-items:center;gap:10px;color:#665280;font-size:13px;margin-bottom:27px}.mini-board{width:20px;height:20px;border-radius:3px;background:conic-gradient(#b9a1e5 25%,transparent 0 50%,#b9a1e5 0 75%,transparent 0);background-size:13px 13px;transform:rotate(-8deg)}h1{font-size:clamp(58px,6.45vw,83px);line-height:1.075;letter-spacing:-4.7px;font-weight:700;margin-bottom:23px}.hero-copy>p{font-size:17px;color:#686173;line-height:1.7}.hero-copy>p.hero-secondary{margin-top:12px;color:var(--ink);font-size:16px}.store-buttons{display:flex;gap:10px;flex-wrap:wrap}.hero .store-buttons{margin-top:29px}.store-button{display:flex;align-items:center;justify-content:flex-start;gap:11px;padding:11px 17px;background:var(--ink);color:white;border-radius:11px;min-width:172px;min-height:60px;text-align:left;transition:background .2s}.store-button .icon{width:27px;height:29px}.store-button small{display:block;font-size:9px;letter-spacing:.2px;line-height:1.4;margin-bottom:1px;color:#e0dbe9}.store-button strong{font-weight:500;font-size:18px;line-height:1.3;white-space:nowrap}.store-button[aria-disabled=true]{cursor:default}.store-button:not([aria-disabled=true]):hover{background:var(--purple-deep)}.try-link{display:flex;align-items:center;gap:8px;background:none;padding:0;font-size:12px;font-weight:500;margin-top:19px;min-height:34px}.play-circle{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:#eee8f8;color:var(--purple)}.play-circle .icon{width:15px;height:15px;fill:currentColor;stroke:none}.try-note{font-size:10px;color:#847c8e;font-weight:400;margin-left:4px}.maker-line{font-size:10px;color:#898191;margin-top:43px;display:flex;align-items:center;gap:5px}.maker-line a{font-weight:700;color:#595165;letter-spacing:-.3px;font-size:12px}.maker-line a span{font-size:8px;vertical-align:super;margin-left:1px}.game-stage{position:relative;min-height:596px;display:flex;align-items:center;justify-content:center;isolation:isolate}.game-stage:before{content:"";position:absolute;inset:26px -9px 26px 8px;border-radius:47% 46% 40% 42%;background:linear-gradient(150deg,#e8e1f7 0%,#dbccf2 70%,#e7dff8 100%);transform:rotate(-8deg);z-index:-3}.stage-orbit{position:absolute;border:1px solid #c8b6e6;border-radius:50%;z-index:-2;pointer-events:none}.orbit-one{width:97%;height:69%;transform:rotate(-38deg)}.orbit-two{width:88%;height:94%;transform:rotate(35deg)}.stage-checkers{position:absolute;width:185px;height:150px;right:-5px;bottom:52px;background:conic-gradient(#baa2dc55 25%,transparent 0 50%,#baa2dc55 0 75%,transparent 0);background-size:48px 48px;transform:rotate(-8deg);z-index:-1;mask-image:linear-gradient(120deg,transparent,#000)}.stage-spark{position:absolute;color:#9065ce;font-size:40px;font-weight:400}.spark-one{left:36px;top:146px;transform:rotate(10deg)}.spark-two{right:12px;top:330px;font-size:27px}.goal-note{position:absolute;right:-10px;top:57px;display:flex;align-items:center;gap:9px;z-index:3;transform:rotate(6deg);background:#fffdf8;border:1px solid #ede3d2;box-shadow:0 7px 18px #5f477714;padding:13px 15px;border-radius:10px;color:#736040;font-size:11px}.goal-note .icon{width:20px;height:20px;color:#bd9040}.phone{position:relative;width:302px;flex-shrink:0;height:555px;background:#fcfbfe;border:7px solid #f4f0f9;border-radius:44px;box-shadow:inset 0 0 0 1px #ffffff,0 0 0 1px #cec1df,7px 12px 0 #bfaad7,18px 32px 50px #5840732e;transform:rotate(-7deg);padding:0 19px;transition:transform .5s}.game-stage.is-playing .phone{transform:rotate(0)}.phone-status{height:44px;display:flex;align-items:center;justify-content:space-between;font-size:9px;padding:0 6px;position:relative}.camera{position:absolute;width:72px;height:19px;background:#292438;left:50%;top:10px;transform:translateX(-50%);border-radius:20px}.phone-signals{display:flex;align-items:center;gap:4px;font-size:6px;letter-spacing:-1px}.battery{height:7px;width:15px;border:1px solid #393146;border-radius:2px;position:relative}.battery:before{content:"";position:absolute;inset:1px;background:#393146}.battery:after{content:"";height:3px;width:1px;background:#393146;position:absolute;right:-3px;top:1px}.home-bar{position:absolute;bottom:8px;width:81px;height:3px;background:#312a42;left:50%;transform:translateX(-50%);border-radius:4px}.your-turn-note{position:absolute;bottom:-15px;right:34px;display:flex;align-items:center;gap:2px;font-size:11px;color:#8d779f;transform:rotate(-5deg)}.your-turn-note svg{width:60px;height:40px;fill:none;stroke:#9d88b2;stroke-width:1.7;transform:rotate(125deg);margin-top:-18px}.game-ribbon{background:#eee8f7;border-block:1px solid #e6def0;overflow:hidden}.game-ribbon>div{min-height:66px;display:flex;align-items:center;justify-content:space-around;gap:28px;margin:auto;max-width:1330px;padding:0 30px;white-space:nowrap}.game-ribbon span{color:#76628d;font-size:14px;letter-spacing:-.2px}.game-ribbon span:nth-child(even){font-size:25px;color:#a28abf}.how-section{padding-top:97px;padding-bottom:97px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:30px}.section-heading h2,h2{font-size:45px;line-height:1.15;letter-spacing:-2px}.section-heading p{font-size:14px;color:var(--muted);max-width:310px}.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:65px;margin-top:43px}.rule-visual{height:88px;display:flex;align-items:center;gap:16px;margin-bottom:22px}.rule-cell{display:flex;align-items:center;justify-content:center;width:63px;height:63px;border-radius:13px;background:#ece6f6;box-shadow:0 4px 0 #d9cde9}.rule-cell img{width:29px;height:36px}.rule-visual>.icon{color:#a797ba;width:24px;height:24px}.empty-rule{background:#f0edf6;border:1px dashed #c0afd4;box-shadow:none}.empty-rule i{width:12px;height:12px;background:#c5b4da;border-radius:50%}.gold-rule{background:#f3db9c;box-shadow:0 4px 0 #d9bd77}.gold-rule .icon{color:#a98634;width:26px;height:26px}.rule-progress{gap:8px}.step-dot{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#e7ecdf;color:#8a9c6e}.step-dot .icon{width:19px;height:19px}.step-dot.current{background:var(--purple);color:#fff;width:55px;height:55px;box-shadow:0 0 0 6px #efe7fa}.rule-progress i{height:2px;width:22px;background:#d3c5e2}.how-grid h3{font-size:18px;font-weight:500;letter-spacing:-.5px;margin-bottom:12px}.how-grid p{font-size:13px;color:var(--muted);line-height:1.8;max-width:310px}.league-section{background:#f0ecf6;padding:79px 0 84px}.league-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:100px;align-items:center}.section-marker{font-size:11px;display:flex;align-items:center;gap:8px;color:#817093;margin-bottom:22px}.section-marker .icon{width:17px;height:17px}.league-copy>p{margin-top:22px;color:var(--muted);font-size:14px;max-width:330px}.league-copy>p.league-note{margin-top:11px;font-size:12px}.text-link{display:inline-flex;align-items:center;gap:12px;font-size:13px;font-weight:500;color:var(--purple-deep);margin-top:24px;min-height:36px}.text-link .icon{width:18px;height:18px}.league-players{list-style:none;margin:10px 0 0;padding:0}.league-players li{display:flex;align-items:center;gap:12px;min-height:81px;border-bottom:1px solid #f0ecf5}.share-section{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center;padding-top:98px;padding-bottom:98px}.share-art{min-height:445px;position:relative;display:flex;align-items:center;justify-content:center;isolation:isolate}.share-art:before{content:"";position:absolute;width:360px;height:360px;border-radius:50%;background:#eee8f8;z-index:-2}.share-orbit{position:absolute;width:395px;height:255px;border:1px solid #dfd1f1;border-radius:50%;transform:rotate(-30deg);z-index:-1}.share-art-note{position:absolute;bottom:0;font-size:11px;color:#8c769f;transform:rotate(-5deg)}.share-copy>p{font-size:14px;color:var(--muted);max-width:350px;margin-top:23px}.share-actions{display:flex;align-items:flex-start;flex-direction:column;gap:17px;margin-top:26px}.share-actions .button{font-size:12px;min-height:48px;padding:12px 20px}.share-actions .icon{width:17px;height:17px}.save-link{display:flex;align-items:center;gap:10px;background:none;padding:5px 0;font-size:11px;color:#8c76a4;min-height:30px}.share-copy>p.share-help{font-size:10px;line-height:1.6;margin-top:11px;color:#9b8ea7}.social-note{display:flex;align-items:center;gap:23px;margin-top:27px;padding-top:23px;border-top:1px solid var(--line);max-width:354px;color:#a192ac;font-size:10px;line-height:1.65}.social-icons{display:flex;gap:13px}.social-icons svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.download-section{padding-bottom:60px}.download-panel{background:#7654bb;border-radius:28px;position:relative;overflow:hidden;display:flex;align-items:center;flex-direction:column;padding:56px 25px 45px;color:white;isolation:isolate}.download-mark{box-shadow:0 5px 0 #52338f;transform:rotate(-8deg);border-radius:21px;margin-bottom:22px}.download-panel h2{font-size:54px;letter-spacing:-2.7px;line-height:1.07;text-align:center}.download-panel>p{font-size:13px;color:#e2d7f2;margin-top:17px}.download-panel .store-buttons{margin-top:25px;justify-content:center}.download-panel .store-button{background:#fff;color:#473655;min-width:166px}.download-panel .store-button small{color:#9c8aa8}.download-panel .store-button strong{font-size:17px}.download-panel .store-button:not([aria-disabled=true]):hover{background:#e9e1f3}.download-status{font-size:9px;color:#dbccec;margin-top:18px}.download-play{background:none;display:flex;align-items:center;gap:8px;color:#f4eefa;font-size:10px;margin-top:15px;padding:5px;min-height:32px}.download-play .icon{width:15px;height:15px}.download-checker{position:absolute;width:130%;height:600px;background:conic-gradient(#ffffff08 25%,transparent 0 50%,#ffffff08 0 75%,transparent 0);background-size:115px 115px;transform:rotate(-12deg);inset:-50px auto auto -100px;z-index:-1;mask-image:linear-gradient(90deg,#000,transparent 40%,transparent 60%,#000)}.site-footer{display:flex;align-items:center;justify-content:space-between;padding-bottom:43px}.site-footer .brand{font-size:21px}.site-footer p{font-size:10px;color:#a090ac;margin-top:9px}.parent-brand{display:flex;flex-direction:column;gap:5px;text-align:center}.parent-brand>span{font-size:9px;color:#9c8daa}.parent-brand strong{font-size:24px;font-weight:700;letter-spacing:-1.3px}.parent-brand strong>span{font-size:10px;vertical-align:super;margin-left:2px}.copyright{font-size:9px;color:#a092aa}.footer-meta{display:flex;flex-direction:column;align-items:flex-end;gap:9px}.legal-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 16px}.legal-links a{font-size:11px;font-weight:500;color:var(--muted);text-decoration:none}.legal-links a:hover{color:var(--purple);text-decoration:underline;text-underline-offset:3px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,15px);opacity:0;background:var(--ink);color:white;padding:14px 20px;border-radius:13px;z-index:100;box-shadow:0 5px 25px #27223825;max-width:calc(100vw - 32px);font-size:12px;line-height:1.5;pointer-events:none;transition:opacity .2s,transform .2s;text-align:center}.toast.visible{transform:translate(-50%,0);opacity:1}.noscript{padding:20px;background:#eee8f8;text-align:center}
@media(min-width:1400px){.hero{min-height:736px}.hero-copy{padding-bottom:8px}.game-stage{min-height:615px}.phone{transform:rotate(-7deg) scale(1.04)}}
@media(max-width:1100px){.shell{padding-inline:32px}.hero{gap:5px}h1{font-size:68px;letter-spacing:-4px}.hero-copy>p{font-size:15px}.phone{transform:rotate(-7deg) scale(.93)}.game-stage{min-height:560px}.goal-note{right:-5px;font-size:10px;padding:11px;top:40px}.your-turn-note{right:0;bottom:-5px}.try-note{display:none}.league-layout,.share-section{gap:50px}.how-grid{gap:35px}.share-orbit{width:330px}.share-art:before{width:310px;height:310px}.section-heading h2,h2{font-size:40px}.how-grid h3{font-size:16px}.spark-one{left:10px}.game-ribbon>div{gap:23px}}
@media(max-width:800px){.shell{padding-inline:25px}.site-header{height:89px}.brand{font-size:22px}.site-header nav{gap:20px;font-size:11px}.hero{padding-top:10px;padding-bottom:48px;min-height:590px}.intro-note{font-size:10px;gap:7px;margin-bottom:22px}.mini-board{width:17px;height:17px}h1{font-size:53px;letter-spacing:-2.9px}.hero-copy>p{font-size:13px}.hero-copy>p.hero-secondary{font-size:13px}.desktop-break{display:none}.hero .store-buttons{gap:8px}.store-button{min-width:139px;padding:10px 11px;gap:8px;min-height:53px}.store-button strong{font-size:15px}.store-button .icon{width:22px;height:25px}.store-button small{font-size:8px}.hero-copy .store-buttons{max-width:300px}.maker-line{margin-top:25px;font-size:9px;max-width:240px;flex-wrap:wrap}.maker-line a{font-size:11px}.game-stage{min-height:514px}.phone{transform:rotate(-7deg) scale(.8);margin-inline:-35px}.game-stage.is-playing .phone{transform:rotate(0) scale(.8)}.game-stage:before{inset:33px -7px 32px -5px}.goal-note{top:9px;font-size:9px;padding:9px;right:-5px;gap:5px}.goal-note .icon{width:17px;height:17px}.your-turn-note{font-size:9px;right:-1px;bottom:-5px}.stage-spark{display:none}.game-ribbon>div{min-height:56px;justify-content:flex-start;gap:24px;width:max-content}.game-ribbon span{font-size:12px}.how-section{padding-block:65px}.section-heading h2,h2{font-size:35px;letter-spacing:-1.7px}.section-heading p{font-size:12px}.how-grid{gap:25px;margin-top:24px}.rule-visual{gap:10px}.rule-cell{width:51px;height:51px;border-radius:11px}.rule-cell img{width:24px;height:29px}.how-grid h3{font-size:14px;line-height:1.4}.how-grid p{font-size:11px}.rule-progress{gap:5px}.step-dot{width:33px;height:33px}.step-dot.current{width:43px;height:43px}.rule-progress i{width:10px}.league-layout{gap:30px;grid-template-columns:.9fr 1.1fr}.league-section{padding-block:60px}.section-marker{font-size:9px;gap:6px}.league-copy>p{font-size:12px}.league-players li{gap:8px;min-height:73px}.share-section{gap:35px;padding-block:65px}.share-art{min-height:405px}.share-art:before{width:265px;height:265px}.share-orbit{width:290px;height:220px}.share-art-note{font-size:9px}.share-copy>p{font-size:12px}.share-actions .button{font-size:11px;padding:10px 14px;gap:10px}.social-note{gap:10px;font-size:8px}.social-icons{gap:9px}.social-icons svg{width:14px;height:14px}.download-panel h2{font-size:46px}.download-section{padding-bottom:40px}}
@media(max-width:600px){.shell{padding-inline:23px}.site-header{height:82px}.site-header .brand{font-size:23px}.site-header .brand img{width:34px;height:34px}.site-header nav{display:none}.site-header>.button{min-height:40px;padding:10px 14px;font-size:11px;gap:9px}.site-header>.button .icon{width:17px;height:17px}.hero{grid-template-columns:1fr;gap:0;padding-top:35px;padding-bottom:47px}.hero-copy{padding:0 3px;text-align:center}.intro-note{font-size:11px;justify-content:center;margin-bottom:23px}h1{font-size:65px;letter-spacing:-3.9px;line-height:1.055;margin-bottom:21px}.hero-copy>p{font-size:14px;max-width:310px;margin-inline:auto;line-height:1.7}.hero-copy>p.hero-secondary{margin-top:8px;font-size:13px}.hero .store-buttons{justify-content:center;max-width:none;margin-top:24px;gap:9px}.store-button{min-width:149px;min-height:54px;padding:10px 13px}.store-button strong{font-size:16px}.try-link{margin:17px auto 0;font-size:11px}.try-note{display:none}.maker-line{margin:18px auto 0;max-width:none;justify-content:center;font-size:9px}.game-stage{margin-top:32px;min-height:540px;max-width:400px;width:100%;margin-inline:auto}.phone{transform:rotate(-6deg) scale(.91);margin:0}.game-stage.is-playing .phone{transform:rotate(0) scale(.91)}.game-stage:before{inset:35px -4px 35px 0;transform:rotate(-9deg)}.orbit-one{width:105%;height:65%}.orbit-two{width:98%;height:81%}.goal-note{right:-2px;top:8px;font-size:9px;padding:11px 12px}.goal-note .icon{width:18px;height:18px}.your-turn-note{bottom:-17px;right:8px;font-size:10px}.stage-checkers{right:-4px;bottom:49px;width:110px;height:140px;background-size:38px 38px}.game-ribbon>div{gap:24px;padding-inline:24px;min-height:55px}.how-section{padding-top:58px;padding-bottom:55px}.section-heading{display:block}.section-heading h2,h2{font-size:37px;letter-spacing:-1.8px}.section-heading p{margin-top:18px;font-size:13px}.how-grid{grid-template-columns:1fr;gap:29px;margin-top:25px}.how-grid article{position:relative;padding-left:95px;min-height:110px;padding-top:7px}.rule-visual{position:absolute;left:0;top:0;width:71px;height:104px;gap:5px;justify-content:center;flex-wrap:wrap;margin:0}.rule-cell{width:36px;height:36px;border-radius:8px;box-shadow:0 3px 0 #d9cde9}.rule-cell img{width:18px;height:23px}.rule-visual>.icon{width:16px;height:16px}.empty-rule{box-shadow:none}.rule-goal .rule-cell:last-child{box-shadow:0 3px 0 #d9bd77}.rule-visual .rule-cell:last-child{margin-left:23px}.rule-progress{height:105px;flex-direction:column;gap:4px;flex-wrap:nowrap}.rule-progress i{height:7px;width:2px}.step-dot{height:24px;width:24px;flex-shrink:0}.step-dot .icon{width:12px;height:12px}.step-dot.current{height:31px;width:31px;box-shadow:0 0 0 3px #eee5fa}.how-grid h3{font-size:16px;margin-bottom:9px}.how-grid p{font-size:12px;max-width:330px;line-height:1.75}.league-section{padding-block:51px}.league-layout{grid-template-columns:1fr;gap:33px}.section-marker{font-size:10px;margin-bottom:18px}.league-copy>p{font-size:13px;max-width:310px;margin-top:18px}.league-copy>p.league-note{font-size:11px;margin-top:8px}.text-link{margin-top:13px;font-size:12px}.league-players li{min-height:79px;gap:12px}.share-section{grid-template-columns:1fr;gap:18px;padding-top:52px;padding-bottom:52px}.share-art{grid-row:2;margin-top:18px;min-height:405px}.share-copy{grid-row:1}.share-copy>p{font-size:13px;max-width:350px;margin-top:18px}.share-actions{gap:15px;margin-top:23px;flex-direction:row;align-items:center;flex-wrap:wrap}.share-actions .button{font-size:11px;padding:12px 15px;min-height:47px}.save-link{font-size:10px}.share-copy>p.share-help{font-size:9px}.social-note{font-size:9px;gap:23px;margin-top:21px;padding-top:18px;max-width:none}.social-icons{margin-left:auto;gap:14px}.social-icons svg{width:17px;height:17px}.share-art:before{width:320px;height:320px}.share-orbit{width:340px;height:240px}.share-art-note{font-size:10px;bottom:-5px}.download-section{padding-inline:14px;padding-bottom:35px}.download-panel{padding:40px 16px 28px;border-radius:23px}.download-panel h2{font-size:43px;letter-spacing:-2.2px}.download-panel>p{font-size:11px;margin-top:16px}.download-mark{width:62px;height:62px;border-radius:17px}.download-panel .store-buttons{gap:8px;margin-top:24px}.download-panel .store-button{min-width:145px;padding:11px 12px}.download-panel .store-button strong{font-size:15px}.download-panel .store-button .icon{width:22px;height:25px}.download-status{font-size:8px}.download-play{font-size:9px;gap:6px}.site-footer{flex-wrap:wrap;gap:28px;padding-bottom:30px}.site-footer .brand{font-size:21px}.site-footer .brand img{height:30px;width:30px}.site-footer p{font-size:9px;margin-top:6px}.parent-brand{text-align:right}.parent-brand strong{font-size:22px}.parent-brand>span{font-size:8px}.copyright{font-size:8px}.footer-meta{flex-basis:100%;align-items:flex-start;gap:14px;border-top:1px solid var(--line);padding-top:20px}.legal-links{justify-content:flex-start;gap:10px 18px}.toast{font-size:11px;width:max-content}}
@media(max-width:360px){.shell{padding-inline:18px}h1{font-size:56px;letter-spacing:-3.1px}.hero-copy>p{font-size:12px}.store-button{min-width:134px;padding:9px 11px;gap:8px}.store-button strong{font-size:14px}.store-button small{font-size:7px}.store-button .icon{width:21px}.game-stage{min-height:495px;margin-top:18px}.phone{transform:rotate(-5deg) scale(.82);margin-inline:-25px}.game-stage.is-playing .phone{transform:rotate(0) scale(.82)}.goal-note{font-size:8px;top:10px;right:0;padding:9px}.your-turn-note{bottom:-7px}.section-heading h2,h2{font-size:34px}.share-art:before{width:275px;height:275px}.share-orbit{width:280px}.share-art{min-height:390px}.share-actions{gap:7px}.share-actions .button{font-size:10px;gap:8px;padding:12px}.save-link{font-size:9px;gap:4px}.download-panel .store-button{min-width:127px;padding:9px}.download-panel .store-button strong{font-size:13px}.download-panel h2{font-size:38px}.download-panel>p{font-size:10px}.how-grid article{padding-left:83px}.site-footer{gap:20px}.parent-brand strong{font-size:20px}}
/* The decorative orbital lines may extend past their stage, never the page. */
main{overflow-x:clip}
.share-help,.share-copy>p.share-help{color:#786883}
@media(max-width:600px){h1{font-size:clamp(48px,14vw,59px);letter-spacing:-3.2px}.hero{padding-top:29px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.button:hover{transform:none}}

/* A single circular backdrop keeps the playable phone in focus. */
.game-stage::before{inset:auto;width:100%;height:auto;aspect-ratio:1;border-radius:50%;transform:none;background:var(--lilac)}

.hero h1{text-wrap:balance}


/* App screens: the game, High scores and the share card and sheet, as the
   app draws them (design/mockup, apps/mobile). */
.piece{fill:currentColor}
.phone{padding:0 14px}
.app-game{height:calc(100% - 62px);display:flex;flex-direction:column}
.app-game-top{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 2px}
.app-bare{width:34px;height:34px;display:grid;place-items:center;background:transparent;color:var(--ink);border-radius:10px}
.app-bare .icon{width:19px;height:19px}
.app-game-title{display:grid;gap:3px;text-align:center}
.app-game-title h2{margin:0;font-size:16px;font-weight:500;letter-spacing:-.4px;line-height:1.2}
.mode-badge{display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:8.5px;color:#7a6892}
.mode-badge .icon{width:11px;height:11px;stroke-width:1.8}
.app-pause{width:34px;height:34px;border-radius:50%;background:#eee8f4;color:#51465e;display:grid;place-items:center}
.app-pause .icon{width:14px;height:14px}
.app-hud{display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:6px 8px 4px}
.app-counter{display:flex;flex-direction:column;gap:4px}
.app-counter strong{font-size:27px;font-weight:500;line-height:1.05;letter-spacing:-.8px;font-variant-numeric:tabular-nums}
.app-counter span{font-size:9px;color:var(--muted)}
.app-score{text-align:right}
.app-score strong{font-size:18px;letter-spacing:-.4px}
.board-stage{flex:1;display:grid;place-items:center;min-height:0}
.board{display:grid;grid-template-columns:repeat(4,52px);grid-auto-rows:52px;position:relative;isolation:isolate}
.board-void{pointer-events:none}
.tile{position:relative;display:grid;place-items:center;padding:0;line-height:0;box-shadow:0 0 0 1px #817588,inset 0 0 0 1px #817588;transition:background .15s;touch-action:manipulation}
.tile.light{background:#faf9fb}
.tile.dark{background:#d1cbd5}
.tile .piece{width:48%;height:56%;color:#675e70;position:relative;z-index:1;pointer-events:none}
.tile[data-piece=P] .piece{color:#7953b7}
.tile:hover:not(:disabled){background:#e6dfed}
.tile:focus-visible{outline:3px solid var(--purple);outline-offset:-4px;z-index:2}
.tile.selected{box-shadow:0 0 0 1px #817588,inset 0 0 0 3px var(--purple);background:#e5dbee;z-index:1}
.tile.goal,.tile.goal:hover{background:var(--gold-light)}
.hint-source:after{content:"";position:absolute;inset:5px;border-radius:50%;background:#cbb6e9;filter:blur(6px);opacity:.55}
.hint-source .piece{filter:drop-shadow(0 0 4px #ac88d9)}
.flying-piece{position:absolute;pointer-events:none;z-index:10;display:grid;place-items:center;color:#675e70}
.flying-piece .piece{width:48%;height:56%}
.flying-piece.player{color:#7953b7}
.app-game-footer{padding:0 4px}
.game-feedback{min-height:32px;display:flex;align-items:center;justify-content:center;font-size:9px;line-height:1.45;text-align:center;color:var(--muted);padding:3px 0}
.app-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px 9px}
.app-primary,.app-secondary{display:flex;align-items:center;justify-content:center;gap:9px;min-height:50px;border-radius:13px;font-size:14px;font-weight:500;padding:12px 18px}
.app-primary{background:var(--purple);color:#fff;box-shadow:0 3px 0 var(--purple-deep)}
.app-primary:hover{background:#7250c6}
.app-secondary{background:#fff;border:1px solid #e0d7ee;color:var(--purple)}
.app-secondary:hover:not(:disabled){background:#f3eff9}
.app-secondary:disabled{opacity:.45;cursor:default}
.app-primary .icon,.app-secondary .icon{width:18px;height:18px}
.app-actions .app-secondary{min-height:37px;border-radius:10px;font-size:10px;gap:6px;padding:7px 9px}
.app-actions .icon{width:15px;height:15px}
.counter-badge{font-size:8.5px;line-height:16px;min-width:15px;background:var(--lilac);border-radius:4px;text-align:center;color:#8a71ad}
.help-link{grid-column:1/-1;background:transparent;color:#82738f;font-size:8.5px;min-height:26px}
.help-link:hover{color:var(--purple)}
.app-win{position:absolute;inset:44px 14px 20px;background:#fcfbfe;display:flex;flex-direction:column;align-items:center;text-align:center;padding:6px 6px 0;z-index:20}
.app-win[hidden]{display:none}
.app-win-level{align-self:flex-start;font-size:9px;color:var(--muted)}
.result-stars{display:flex;align-items:center;gap:8px;margin:42px 0 16px;min-height:30px}
.result-stars .icon{width:24px;height:24px;fill:none;stroke:#d9cfe3;stroke-width:1.3}
.result-stars .icon.earned{fill:#ead494;stroke:#ba9848}
.result-stars .icon:nth-child(1){transform:rotate(-12deg)}
.result-stars .icon:nth-child(2){width:30px;height:30px}
.result-stars .icon:nth-child(3){transform:rotate(12deg)}
.app-win-title{font-size:20px;font-weight:500;letter-spacing:-.7px}
.win-score{display:flex;flex-direction:column;gap:4px;margin:17px 0}
.win-score strong{font-size:33px;font-weight:500;letter-spacing:-1.5px;line-height:1.1;font-variant-numeric:tabular-nums}
.win-score span{font-size:8.5px;color:var(--muted)}
.result-stats{display:grid;grid-template-columns:1fr 1fr;width:100%;padding:12px 0;border-block:1px solid var(--line)}
.result-stats>div{display:grid;gap:5px}
.result-stats>div:first-child{border-right:1px solid var(--line)}
.result-stats strong{font-size:14px;font-weight:500}
.result-stats span{font-size:8px;color:var(--muted)}
.app-win-actions{margin-top:auto;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:7px;padding-bottom:8px}
.app-win-actions>button{min-height:40px;border-radius:11px;font-size:11px;gap:6px;padding:8px}
.app-win-actions .icon{width:15px;height:15px}

.league-stage{display:flex;justify-content:center}
.app-card{width:100%;max-width:370px;background:var(--paper);border:1px solid #e6dfed;border-radius:28px;overflow:hidden;box-shadow:0 18px 50px #3324431c,0 3px 0 #e6dfed}
.app-scores{padding:22px 22px 6px}
.app-page-title{margin:0;font-size:21px;font-weight:500;letter-spacing:-.6px}
.league-overview{text-align:center;padding:4px 0 14px}
.league-ladder{display:flex;align-items:center;justify-content:center;gap:15px;margin:2px 0 14px}
.league-ladder>button{width:38px;height:38px;display:grid;place-items:center;border-radius:14px;background:transparent;color:var(--muted);opacity:.5;transition:background .2s,opacity .2s}
.league-ladder>button.past{opacity:.8}
.league-ladder>button:hover{opacity:1}
.league-ladder>button.chosen{opacity:1;color:var(--purple);background:var(--lilac);width:58px;height:58px;border-radius:18px;box-shadow:0 3px 0 var(--line)}
.league-ladder>button:focus-visible{outline:2px solid var(--purple);outline-offset:2px}
.league-ladder .piece{width:21px;height:25px}
.league-ladder .chosen .piece{width:31px;height:36px}
.league-overview h4{margin:0;font-size:20px;font-weight:500;letter-spacing:-.5px}
.league-overview p{margin:7px 0 0;display:flex;align-items:center;justify-content:center;gap:5px;color:var(--muted);font-size:10.5px;margin-top:7px}
.league-overview p .icon{width:13px;height:13px}
#league-panel:focus-visible{outline:2px solid var(--purple);outline-offset:4px;border-radius:6px}
.promotion-note{display:flex;align-items:center;justify-content:center;gap:7px;color:var(--sage-ink);background:var(--sage);padding:9px;border-radius:10px;font-size:10.5px;margin-bottom:6px}
.promotion-note .icon{width:15px;height:15px}
.ranking-list{list-style:none;margin:0;padding:0}
.ranking-row{display:flex;align-items:center;gap:11px;min-height:58px;padding:6px 0;border-bottom:1px solid var(--line)}
.ranking-empty{padding:26px 0;text-align:center;font-size:11px;color:var(--muted)}
.player-rank{width:22px;flex-shrink:0;text-align:center;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.player-rank.medal{height:25px;border-radius:8px;display:grid;place-items:center;font-weight:500}
.medal-1{background:var(--peach);color:var(--peach-ink)}
.medal-2{background:var(--blue);color:var(--blue-ink)}
.medal-3{background:var(--rose);color:var(--rose-ink)}
.player-avatar{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;flex-shrink:0}
.player-avatar .piece{width:23px;height:27px}
.avatar-lilac{background:var(--lilac);color:var(--purple)}
.avatar-sage{background:var(--sage);color:var(--sage-ink)}
.avatar-peach{background:var(--peach);color:var(--peach-ink)}
.avatar-rose{background:var(--rose);color:var(--rose-ink)}
.avatar-blue{background:var(--blue);color:var(--blue-ink)}
.player-name{flex:1;min-width:0;font-size:12.5px;overflow-wrap:anywhere}
.player-xp{display:flex;align-items:baseline;gap:4px;font-size:12.5px;font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums}
.player-xp small{font-size:8.5px;font-weight:400;color:var(--muted)}
.promotion-cutoff{display:flex;align-items:center;gap:10px;color:var(--sage-ink);font-size:9px;padding:12px 0 4px}
.promotion-cutoff:before,.promotion-cutoff:after{content:"";flex:1;border-top:1px dashed var(--sage-ink);opacity:.45}
.rank-dock{display:flex;align-items:center;gap:11px;padding:12px 22px;border-top:1px solid var(--line)}
.rank-dock-avatar{width:40px;height:40px;border-radius:14px;background:var(--lilac);display:grid;place-items:center;flex-shrink:0}
.rank-dock>div{flex:1;display:grid;gap:4px}
.rank-dock strong{font-size:11.5px;font-weight:500}
.rank-dock div>span{font-size:9.5px;color:var(--muted)}
.rank-dock button{width:42px;height:42px;border-radius:12px;background:var(--lilac);color:var(--purple);display:grid;place-items:center}
.rank-dock button:hover{background:#e6dcf5}
.rank-dock .icon{width:16px;height:16px}
.data-disclosure{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:26px;font-size:11px;line-height:1.5;color:#776782}
.data-status{font-size:9px;background:var(--lilac);color:#715287;padding:5px 8px;border-radius:6px;white-space:nowrap}

.score-card{width:270px;aspect-ratio:1080/1350;border-radius:18px;overflow:hidden;transform:rotate(-6deg);box-shadow:0 8px 30px #3324431f,0 0 0 1px var(--line),10px 16px 0 #eee8f8}
.score-card svg{display:block;width:100%;height:100%}
.share-orbit{position:absolute;width:395px;height:255px;border:1px solid #dfd1f1;border-radius:50%;transform:rotate(-30deg);z-index:-1}

.app-sheet{margin:auto;width:326px;max-width:calc(100vw - 32px);max-height:calc(100svh - 48px);overflow-y:auto;border:1px solid #e6dfed;padding:30px 24px 23px;border-radius:23px;background:var(--paper);color:var(--ink);text-align:center;box-shadow:0 16px 65px #33244320}
.app-sheet::backdrop{background:#30263c59}
.app-sheet h2{font-size:23px;font-weight:500;letter-spacing:-.7px;margin:6px 0 13px}
.sheet-close{position:absolute;right:7px;top:7px;width:38px;height:38px;display:grid;place-items:center;background:transparent;color:#9c91a8;border-radius:10px}
.sheet-close .icon{width:18px;height:18px}
.sheet-note{font-size:11px;line-height:1.6;color:var(--muted);margin:-4px 0 12px}
.sheet-note[hidden]{display:none}
#share-preview{display:block;width:100%;max-width:230px;height:auto;aspect-ratio:1080/1350;margin:4px auto 0;border-radius:16px;box-shadow:0 8px 30px #3324431f,0 0 0 1px var(--line)}
.sheet-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:24px}
.sheet-actions>button{min-height:48px;font-size:13px;gap:7px;padding:10px}
.sheet-actions .icon{width:17px;height:17px}

@media(max-width:900px){.league-layout{grid-template-columns:1fr;gap:36px}.app-card{max-width:380px;margin-inline:auto}}
@media(max-width:600px){.league-stage{justify-content:stretch}.app-scores{padding:20px 17px 4px}.rank-dock{padding:11px 17px}.score-card{width:240px}.share-orbit{width:300px;height:220px}}
@media(max-width:360px){.ranking-row{gap:8px}.player-avatar{width:36px;height:36px}.league-ladder{gap:10px}}

/* Japanese: Rubik has no Japanese glyphs, so name the system Japanese fonts,
   and give the headlines Japanese spacing and sizes. */
html:lang(ja) body{font-family:Rubik,"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",Meiryo,sans-serif}
html:lang(ja) :is(#hero-title,#league-title,#share-title,#download-title){letter-spacing:0;line-height:1.28;word-break:keep-all;overflow-wrap:anywhere}
html:lang(ja) #hero-title{font-size:clamp(34px,9.5vw,64px)}
html:lang(ja) :is(#league-title,#share-title){font-size:clamp(28px,7vw,42px)}
html:lang(ja) #download-title{font-size:clamp(28px,7.5vw,48px)}
html:lang(ja) :is(p,li,.game-feedback){line-break:strict}
