@charset "UTF-8";
.shapes-page { overflow-x: clip; }
.shapes-hero { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; padding-block: 30px 60px; align-items: center; }
.shapes-hero-copy { padding-block: 0 16px; min-width: 0; }
.back-link { display: inline-block; color: var(--muted); font-size: .75rem; padding-block: 5px; margin-bottom: 34px; transition: color .2s; }
.back-link:hover { color: var(--blue-bright); }
.game-identity { display: flex; align-items: center; gap: 15px; }
.game-identity img { border-radius: 13px; width: 56px; height: 56px; }
.game-identity .eyebrow { font-size: .625rem; }
.platform-note { font-size: .75rem; color: var(--muted); margin-top: 3px; }
.platform-note span { color: var(--blue); padding-left: 9px; }
.shapes-hero h1 { font-size: clamp(4rem, 7.45vw, 6.75rem); letter-spacing: -.075em; font-weight: 700; line-height: 1; margin-block: 25px 26px; }
.title-dot { color: var(--blue); }
.game-subtitle { display: block; font-size: .355em; letter-spacing: -.035em; font-weight: 500; color: var(--blue-bright); margin-top: 12px; }
.game-tagline { font-size: clamp(1.85rem, 3.1vw, 2.65rem); letter-spacing: -.045em; line-height: 1.16; }
.game-tagline span { color: var(--muted); }
.game-intro { max-width: 390px; font-size: .9375rem; color: #aeb2bb; line-height: 1.8; margin-top: 22px; }
.game-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; margin-top: 28px; }
.play-store-link { gap: 13px; padding-inline: 19px; }
.play-store-link > span:first-of-type { font-size: .8125rem; }
.play-store-link > span:last-child { margin-left: 5px; }
.game-fineprint { color: #9398a2; font-size: .6875rem; margin-top: 15px; }
.game-fineprint span { margin-inline: 9px; color: var(--blue); }
.hero-stage { position: relative; min-width: 0; height: 610px; isolation: isolate; display: grid; place-items: center; }
.hero-stage::before { content: ""; position: absolute; inset: 10% -10%; z-index: -2; background: radial-gradient(ellipse at center, #102e562e, transparent 67%); }
.stage-orbit { position: absolute; width: 103%; aspect-ratio: 1; border: 1px solid #162030; border-radius: 50%; z-index: -1; }
.orbit-two { width: 125%; border-style: dashed; border-color: #141a23; animation: orbit-drift 95s linear infinite; }
.phone { display: block; border: 5px solid #22252b; border-radius: 30px; overflow: hidden; position: absolute; width: 246px; background: #090c10; box-shadow: 0 20px 60px #0008; }
.phone img { aspect-ratio: 9/16; width: 100%; object-fit: contain; }
.phone-front { transform: translate(36px, 10px) rotate(8deg); transition: transform .45s cubic-bezier(.2,.7,.25,1), border-color .3s; }
.phone-front:hover { transform: translate(36px, 0) rotate(5deg); border-color: #395b85; }
.phone-back { width: 222px; transform: translate(-113px, 6px) rotate(-12deg); border-color: #343038; filter: brightness(.78); }
.phone-caption { display: flex; justify-content: space-between; align-items: center; position: absolute; bottom: 0; inset-inline: 0; padding: 14px 15px 12px; background: #101722ed; color: #d4e5ff; font-size: .5rem; letter-spacing: .14em; border-top: 1px solid #ffffff12; }
.phone-caption span { font-size: .95rem; }
.floating-shape { position: absolute; animation: shape-bob 5s ease-in-out infinite; }
.float-circle { width: 28px; height: 28px; border: 2px solid #287cff; border-radius: 50%; top: 10%; right: 17%; box-shadow: 0 0 20px #287cff24; }
.float-square { width: 21px; height: 21px; border: 2px solid #bc5acb; bottom: 16%; left: 3%; rotate: 18deg; animation-delay: -2s; }
.float-star { color: var(--blue-bright); font-size: 3.5rem; right: 0; bottom: 20%; animation-delay: -3s; }
.stage-coordinate { position: absolute; bottom: 12px; right: 20px; color: #7d8796; letter-spacing: .16em; font-size: .5625rem; }
.shape-divider { border-block: 1px solid var(--line); padding-block: 24px; display: flex; align-items: center; justify-content: space-between; color: #a4a9b2; font-size: .6875rem; letter-spacing: .2em; gap: 14px; }
.shape-divider span:nth-child(odd) { color: var(--blue-bright); font-size: 1.75rem; font-weight: 400; line-height: 1; }
.how-section { padding-block: 85px 80px; }
.game-section-heading { display: flex; justify-content: space-between; gap: 40px; align-items: flex-end; margin-bottom: 50px; }
.game-section-heading .eyebrow span, .looks-copy .eyebrow span { color: var(--blue-bright); margin-right: 12px; }
.game-section-heading h2, .looks-copy h2 { font-size: clamp(2rem, 3.6vw, 3.125rem); letter-spacing: -.05em; line-height: 1.16; margin-top: 22px; }
.game-section-heading > p { color: var(--muted); font-size: .875rem; max-width: 310px; line-height: 1.8; }
.play-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; }
.play-steps article { border-top: 1px solid #373b43; padding-top: 26px; }
.step-top { display: flex; align-items: center; justify-content: space-between; height: 30px; margin-bottom: 26px; }
.step-number { font-size: .6875rem; letter-spacing: .08em; color: #838995; }
.step-symbol { color: var(--blue-bright); }
.symbol-circle { width: 25px; height: 25px; border: 2px solid currentColor; border-radius: 50%; }
.symbol-square { width: 22px; height: 22px; border: 2px solid currentColor; rotate: -13deg; }
.symbol-star { font-size: 2.5rem; line-height: 1; }
.play-steps h3 { font-size: 1.3rem; letter-spacing: -.03em; margin-bottom: 15px; }
.play-steps p { font-size: .875rem; color: var(--muted); line-height: 1.85; max-width: 310px; }
.looks-section { border-block: 1px solid var(--line); padding-block: 78px; display: grid; grid-template-columns: 1fr 1fr; column-gap: 9%; align-items: center; }
.looks-copy > p:not(.eyebrow) { color: var(--muted); font-size: .9375rem; max-width: 345px; margin-top: 24px; }
.looks-copy .gallery-invitation { font-size: .75rem !important; color: #c1c7d1 !important; margin-top: 34px !important; }
.gallery-invitation span { color: var(--blue-bright); margin-right: 8px; }
.theme-list { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 18px; }
.theme-button { display: flex; align-items: center; min-height: 49px; text-align: left; gap: 10px; padding: 11px 12px; background: transparent; border: 1px solid var(--line); border-radius: 5px; color: #aeb4c0; font-size: .75rem; transition: border-color .2s, background .2s, color .2s; }
.theme-button i { width: 8px; height: 8px; border-radius: 50%; background: var(--swatch); flex: 0 0 auto; }
.theme-button > span { margin-left: auto; opacity: 0; color: var(--blue-bright); }
.theme-button:hover { color: #fff; border-color: #555e6c; }
.theme-button[aria-pressed="true"] { background: #111c2d; border-color: #3967a5; color: #f5f7fb; }
.theme-button[aria-pressed="true"] > span { opacity: 1; }
.looks-copy .theme-note { font-size: .625rem !important; line-height: 1.75; color: #878e9a !important; max-width: 375px !important; margin-top: 18px !important; }
.theme-viewer { margin: 0; position: relative; min-width: 0; width: min(100%, 423px); justify-self: end; padding: 22px 25px 14px; border: 1px solid #2c3440; background: #0c1017; border-radius: 8px; transition: border-color .35s; }
.theme-viewer::before { content: ""; position: absolute; z-index: -1; top: 10%; left: -10%; width: 120%; height: 80%; border-radius: 50%; background: radial-gradient(ellipse, color-mix(in srgb, var(--theme-color) 8%, transparent), transparent 67%); }
.viewer-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; }
.viewer-heading .eyebrow, .viewer-counter { font-size: .5625rem; letter-spacing: .12em; }
.viewer-counter { color: #a9b2c0; font-variant-numeric: tabular-nums; }
.screenshot-button { border: 0; padding: 0; background: #070c10; width: min(100%, 275px); display: block; margin-inline: auto; position: relative; border-radius: 15px; overflow: hidden; cursor: zoom-in; touch-action: pan-y; }
.screenshot-button img { width: 100%; aspect-ratio: 9/16; object-fit: contain; }
.enlarge-hint { position: absolute; right: 9px; bottom: 9px; background: #101b29e6; border: 1px solid #ffffff40; color: #fff; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; transition: background .2s; }
.screenshot-button:hover .enlarge-hint { background: #2366cc; }
.theme-viewer figcaption { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 15px; min-height: 42px; font-size: .75rem; }
.theme-viewer figcaption > span:first-child { display: flex; align-items: center; gap: 8px; }
.theme-viewer figcaption i { width: 6px; height: 6px; background: var(--theme-color); border-radius: 50%; }
.theme-viewer figcaption strong { font-weight: 400; }
.viewer-controls { display: flex; gap: 7px; }
.viewer-controls button { width: 36px; height: 36px; border: 1px solid #303c4b; background: transparent; color: #c9d7ec; border-radius: 50%; transition: background .2s; }
.viewer-controls button:hover { background: #1a2b43; }
.game-download { padding-block: 72px 65px; }
.feature-art { width: 100%; overflow: hidden; border: 1px solid #263342; border-radius: 8px; background: #080e1b; }
.feature-art img { width: 100%; height: auto; aspect-ratio: 1024/500; object-fit: contain; }
.download-content { display: flex; align-items: center; justify-content: space-between; padding-top: 38px; gap: 30px; }
.download-content h2 { font-size: clamp(3rem, 5.6vw, 5rem); letter-spacing: -.065em; margin-block: 18px 12px; }
.download-content > div > p:last-child { color: var(--muted); font-size: .875rem; }
.download-action { text-align: right; }
.download-action p { font-size: .625rem !important; margin-top: 12px; }
.game-support { padding-block: 48px 58px; display: flex; justify-content: space-between; align-items: center; gap: 30px; border-top: 1px solid var(--line); }
.game-support .eyebrow { font-size: .625rem; }
.game-support h2 { font-size: 1.9rem; letter-spacing: -.04em; margin-top: 14px; }
.game-support .contact-email { font-size: 1.0625rem; min-width: 290px; }
.shapes-page .site-footer { font-size: .75rem; }
.screenshot-dialog { color: var(--text); width: min(560px, calc(100% - 24px)); max-height: calc(100dvh - 24px); padding: 18px; background: #0b0f15; border: 1px solid #364356; border-radius: 12px; }
.screenshot-dialog::backdrop { background: #020509ed; }
body:has(.screenshot-dialog[open]) { overflow: hidden; }
.dialog-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-bottom: 14px; }
.dialog-toolbar h2 { font-size: .875rem; font-weight: 400; }
.dialog-toolbar button { display: flex; gap: 14px; align-items: center; background: transparent; border: 0; color: #c1c9d7; font-size: .75rem; padding: 6px; }
.dialog-toolbar button span { font-size: 1.4rem; }
.screenshot-dialog > img { height: auto; max-height: calc(100dvh - 166px); width: auto; max-width: 100%; margin-inline: auto; object-fit: contain; border-radius: 5px; }
.dialog-navigation { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 14px; }
.dialog-navigation button { background: transparent; border: 1px solid #344152; color: #dbe6f5; border-radius: 4px; padding: 9px 12px; font-size: .75rem; }
.dialog-navigation button:hover { background: #17283f; }
.dialog-navigation > span { color: #98a3b3; font-size: .625rem; }
.noscript-note { padding-block: 20px; color: var(--muted); font-size: .8125rem; }
.noscript-note a { color: var(--blue-bright); text-decoration: underline; }
@keyframes orbit-drift { to { rotate: 360deg; } }
@keyframes shape-bob { 50% { translate: 0 -9px; } }
@media (min-width: 1500px) { .shapes-hero { padding-block: 45px 75px; } .hero-stage { height: 670px; } .phone-front { width: 275px; } .phone-back { width: 242px; } }
@media (max-width: 1100px) { .shapes-hero { gap: 20px; } .hero-stage { height: 590px; } .phone-front { width: 215px; transform: translate(30px, 15px) rotate(8deg); } .phone-front:hover { transform: translate(30px, 5px) rotate(5deg); } .phone-back { width: 194px; transform: translate(-72px, 0) rotate(-12deg); } .float-star { right: -9px; } .game-actions { gap: 16px; } .game-actions .text-link { font-size: .75rem; } .looks-section { column-gap: 6%; } .theme-list { gap: 8px; } .theme-button { font-size: .6875rem; gap: 7px; padding-inline: 9px; } }
@media (max-width: 760px) {
  .shapes-page nav { font-size: .75rem; gap: 20px; }
  .shapes-page .site-header { flex-wrap: nowrap; }
  .shapes-page .site-header nav > a:not(.nav-contact) { display: none; }
  .shapes-page .nav-contact { white-space: nowrap; }
  .shapes-hero { grid-template-columns: 1fr; padding-block: 22px 35px; gap: 0; }
  .back-link { margin-bottom: 28px; }
  .shapes-hero h1 { font-size: clamp(4.4rem, 15vw, 7rem); margin-block: 22px; }
  .game-subtitle { margin-top: 9px; }
  .game-tagline { font-size: 2rem; }
  .game-tagline br { display: none; }
  .game-tagline span { display: block; margin-top: 4px; }
  .game-intro { margin-top: 18px; font-size: .875rem; max-width: 430px; }
  .game-actions { margin-top: 24px; gap: 22px; }
  .game-actions .button { min-height: 52px; }
  .hero-stage { height: 535px; width: min(100%, 440px); margin-inline: auto; margin-top: 10px; }
  .phone-front { width: 225px; transform: translate(37px, 0) rotate(8deg); }
  .phone-front:hover { transform: translate(37px, -7px) rotate(5deg); }
  .phone-back { width: 201px; transform: translate(-69px, 0) rotate(-12deg); }
  .stage-orbit { width: 96%; }
  .orbit-two { width: 114%; }
  .float-circle { top: 5%; right: 12%; }
  .float-square { bottom: 15%; left: 2%; }
  .float-star { right: -5px; bottom: 14%; font-size: 2.7rem; }
  .stage-coordinate { bottom: 5px; right: 4px; }
  .shape-divider { padding-block: 20px; gap: 8px; font-size: .5rem; letter-spacing: .12em; }
  .shape-divider span:nth-child(odd) { font-size: 1.35rem; }
  .how-section { padding-block: 55px 48px; }
  .game-section-heading { display: block; margin-bottom: 28px; }
  .game-section-heading h2, .looks-copy h2 { font-size: clamp(1.85rem, 7vw, 2.65rem); margin-top: 18px; }
  .game-section-heading > p { margin-top: 20px; font-size: .8125rem; }
  .play-steps { grid-template-columns: 1fr; gap: 26px; }
  .play-steps article { display: grid; grid-template-columns: 47px 1fr; gap: 8px 18px; padding-top: 22px; }
  .step-top { grid-row: 1/3; flex-direction: column; height: 75px; margin: 0; align-items: flex-start; }
  .step-symbol { scale: .85; transform-origin: left; }
  .play-steps h3 { font-size: 1.2rem; margin: 0; }
  .play-steps p { font-size: .8125rem; max-width: 400px; }
  .looks-section { grid-template-columns: 1fr; padding-block: 50px; gap: 32px; }
  .looks-copy > p:not(.eyebrow) { font-size: .875rem; }
  .looks-copy .gallery-invitation { margin-top: 25px !important; }
  .theme-list { gap: 9px; }
  .theme-button { font-size: .75rem; padding-inline: 12px; }
  .theme-viewer { width: min(100%, 400px); justify-self: center; padding: 18px 22px 12px; }
  .screenshot-button { width: min(100%, 260px); }
  .game-download { padding-block: 45px; }
  .feature-art { border-radius: 5px; }
  .download-content { align-items: flex-start; flex-direction: column; padding-top: 28px; gap: 23px; }
  .download-content .eyebrow { font-size: .5625rem; }
  .download-content h2 { font-size: 3.5rem; }
  .download-action { text-align: left; }
  .game-support { flex-direction: column; align-items: flex-start; padding-block: 36px 43px; gap: 26px; }
  .game-support .contact-email { min-width: 0; width: 100%; max-width: 350px; }
  .shapes-page .site-footer { padding-block: 30px; gap: 20px; align-items: flex-start; }
  .shapes-page .site-footer > div { gap: 20px; }
}
@media (max-width: 380px) { .shapes-page .brand { font-size: 1.1rem; } .shapes-page .brand img { width: 36px; height: 36px; } .shapes-page .nav-contact { font-size: .6875rem; } .shapes-page .nav-contact span { margin-left: 4px; } .game-tagline { font-size: 1.8rem; } .hero-stage { height: 470px; } .phone-front { width: 195px; transform: translate(26px, 0) rotate(7deg); } .phone-front:hover { transform: translate(26px, -7px) rotate(5deg); } .phone-back { width: 170px; transform: translate(-55px, 0) rotate(-11deg); } .theme-button { padding-inline: 9px; font-size: .6875rem; } .theme-viewer { padding-inline: 17px; } }
@media (prefers-reduced-motion: reduce) { .shapes-page *, .shapes-page *::before, .shapes-page *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } .phone-front:hover { transform: translate(36px, 10px) rotate(8deg); } }
@media (min-width: 1500px) and (prefers-reduced-motion: reduce) { .phone-front:hover { transform: translate(36px, 10px) rotate(8deg); } }
@media (min-width: 761px) and (max-width: 1100px) and (prefers-reduced-motion: reduce) { .phone-front:hover { transform: translate(30px, 15px) rotate(8deg); } }
@media (min-width: 381px) and (max-width: 760px) and (prefers-reduced-motion: reduce) { .phone-front:hover { transform: translate(37px, 0) rotate(8deg); } }
@media (max-width: 380px) and (prefers-reduced-motion: reduce) { .phone-front:hover { transform: translate(26px, 0) rotate(7deg); } }
