:root{--yellow:#ffea2c;--pink:#ff84c5;--purple:#55209a;--ink:#341451;--paper:#fffdf8;--line:2px solid var(--ink);font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--yellow);font-synthesis:none;scroll-behavior:smooth}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:5px}a:focus-visible,summary:focus-visible{outline:3px solid currentColor;outline-offset:6px}button,a,summary{-webkit-tap-highlight-color:transparent}img{display:block;max-width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:900}section{scroll-margin-top:24px}.wrap{width:min(1280px,calc(100% - 48px));margin-inline:auto}.skip{position:absolute;left:24px;top:-100px;z-index:10;padding:14px 20px;background:var(--ink);color:white}.skip:focus{top:14px}.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:105px;border-bottom:var(--line)}.wordmark{text-decoration:none;font-size:2.4rem;font-weight:900;letter-spacing:-.09em;line-height:1}.wordmark span{color:var(--purple);font-size:1.7rem;margin-left:10px;display:inline-block;vertical-align:top;letter-spacing:0}nav{display:flex;gap:32px}nav a{font-size:.95rem;font-weight:700;text-decoration:none}nav a:hover{text-decoration:underline}.edition{font-size:.75rem;letter-spacing:.08em;border:1px solid var(--ink);padding:8px 10px}.hero{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;padding-top:65px;padding-bottom:78px;gap:20px}.eyebrow{font-size:.78rem;font-weight:800;letter-spacing:.1em;line-height:1.4}.hero h1{font-size:clamp(3rem,5.9vw,5.5rem);letter-spacing:-.065em;line-height:.99;margin:28px 0}.hero h1 span{display:inline-block;position:relative;z-index:0}.hero h1 span:after{content:"";position:absolute;height:13%;background:var(--pink);left:0;right:0;bottom:0;z-index:-1;transform:rotate(-2deg)}.intro{max-width:480px;font-size:1.15rem;line-height:1.5;margin-bottom:28px}.button{display:inline-block;background:var(--ink);color:var(--yellow);text-decoration:none;padding:17px 24px;border:2px solid var(--ink);font-weight:700;font-size:1rem;box-shadow:5px 5px 0 var(--pink)}.button:hover{background:var(--purple)}.mascot{align-self:center}.mascot img{width:100%}.mascot figcaption{text-align:center;font-size:.78rem;letter-spacing:.075em;font-weight:800;transform:rotate(-4deg);margin-top:-4%}.ticker{background:var(--purple);color:var(--yellow);overflow:hidden;padding:18px 0;border-top:var(--line);border-bottom:var(--line)}.ticker div{width:max-content;font-size:1.25rem;font-weight:800;letter-spacing:.04em;word-spacing:24px}.ticker span{color:var(--pink)}.section-space{padding-block:90px}.about{background:var(--paper)}.about-top{display:grid;grid-template-columns:1fr 1.6fr;column-gap:64px}.about-top .eyebrow{grid-column:1/-1;margin-bottom:35px}.about h2{font-size:clamp(2.8rem,4.8vw,4.5rem);line-height:1;letter-spacing:-.055em}.about-intro{font-size:1.35rem;line-height:1.5;align-self:end;max-width:640px}.editorial-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:65px}.editorial-columns article{border-top:var(--line);padding-top:20px}.index{font-size:.8rem;font-weight:700;display:block;margin-bottom:24px}.editorial-columns h3{font-size:1.35rem;letter-spacing:-.035em;margin-bottom:12px}.editorial-columns p{font-size:1rem;line-height:1.65;max-width:360px}.game{background:var(--pink);border-block:var(--line)}.game-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:9%;align-items:start}.game h2{font-size:clamp(3.8rem,7vw,6.8rem);letter-spacing:-.065em;line-height:1;margin:28px 0 20px}.game h2>span:first-child{color:var(--purple)}.period{color:var(--paper)}.game-intro{font-size:1.4rem;line-height:1.4;font-weight:700;margin-bottom:20px}.game-copy>p:not(.eyebrow):not(.game-intro){font-size:1.05rem;line-height:1.5;max-width:400px}.integration-note{border-left:3px solid var(--ink);padding-left:18px;margin-block:34px 26px;font-size:1rem;line-height:1.5}.integration-note strong{display:block;margin-bottom:8px}.integration-note p{max-width:470px}details{border-top:var(--line);border-bottom:var(--line);padding:19px 0;font-size:1rem;line-height:1.55}summary{font-weight:700;cursor:pointer;padding-right:8px}.rules{padding-top:18px}.rules p+ul{padding-left:22px}.rules li{margin-block:8px}.game-preview{background:var(--paper);border:var(--line);padding:26px;box-shadow:10px 10px 0 var(--ink);max-width:470px;width:100%;justify-self:end;transform:rotate(2deg)}.preview-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:.8rem;letter-spacing:.06em;font-weight:800;border-bottom:var(--line);padding-bottom:18px;margin-bottom:22px}.preview-heading span:last-child{font-size:1.7rem;color:var(--purple)}.board{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.tile{display:grid;place-items:center;aspect-ratio:1;background:#fff;border:2px solid #dfd6e2;font-size:clamp(1.2rem,2.2vw,2.1rem);font-weight:800}.tile.green{background:#33835d;border-color:#33835d;color:#fff}.tile.amber{background:#f3ce44;border-color:#f3ce44}.tile.gray{background:#6a6271;border-color:#6a6271;color:#fff}.game-preview figcaption{font-size:.8rem;line-height:1.5;margin-top:20px;text-align:center}.closing{background:var(--purple);padding:35px 24px}.closing img{width:min(1180px,100%);margin:auto}footer{display:flex;align-items:center;justify-content:space-between;gap:28px;padding-block:30px;font-size:.9rem;line-height:1.5}footer a{font-weight:700;white-space:nowrap}@media(min-width:1500px){.hero h1{font-size:5.6rem}}@media(max-width:850px){.edition{display:none}.hero{grid-template-columns:1.3fr 1fr;gap:0;padding-block:50px}.hero h1{font-size:clamp(3rem,7.5vw,4.5rem)}.hero .eyebrow{font-size:.75rem}.mascot figcaption{font-size:.75rem}.about-top{gap:32px}.about-intro{font-size:1.1rem}.editorial-columns{gap:24px}.game-layout{gap:6%}.game-preview{padding:18px}.board{gap:5px}.game-intro{font-size:1.2rem}.section-space{padding-block:65px}.preview-heading{font-size:.75rem}}@media(max-width:600px){.wrap{width:calc(100% - 36px)}.site-header{min-height:84px;gap:12px}.wordmark{font-size:2rem}.wordmark span{font-size:1.25rem;margin-left:7px}nav{gap:18px}nav a{font-size:.875rem}.hero{display:flex;flex-direction:column;align-items:stretch;padding-top:40px;padding-bottom:37px;gap:12px}.hero h1{font-size:clamp(2.6rem,11.8vw,4.25rem);line-height:1.04;margin-block:24px}.hero .eyebrow{font-size:.75rem}.intro{font-size:1.1rem;max-width:440px}.button{padding:15px 19px}.mascot{width:76%;max-width:350px;align-self:center;margin-top:12px}.mascot figcaption{font-size:.75rem}.ticker{padding-block:16px}.ticker div{font-size:1rem;word-spacing:17px}.section-space{padding-block:52px}.about-top{display:block}.about-top .eyebrow{margin-bottom:25px}.about h2{font-size:3.1rem}.about-intro{font-size:1.1rem;margin-top:24px}.editorial-columns{display:block;margin-top:38px}.editorial-columns article{margin-top:30px;padding-top:17px}.index{float:left;margin-right:16px;margin-bottom:0;padding-top:4px}.editorial-columns h3{font-size:1.3rem}.editorial-columns p{max-width:none}.game-layout{display:flex;flex-direction:column;gap:42px}.game h2{font-size:4.3rem}.game-intro{font-size:1.3rem}.game-preview{width:calc(100% - 14px);align-self:center;max-width:390px;transform:rotate(1deg);padding:20px}.board{gap:7px}.tile{font-size:1.6rem}.preview-heading{font-size:.75rem}.closing{padding:20px 0}.closing img{width:100%}footer{flex-direction:column;align-items:flex-start;gap:14px;padding-block:25px}}@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}}@media(forced-colors:active){.tile{border:2px solid CanvasText}.hero h1 span:after{display:none}}

@media(max-width:360px){.site-header{flex-wrap:wrap;padding-block:18px;gap:18px}.wordmark{white-space:nowrap}.site-header nav{width:100%;justify-content:space-between}.hero{padding-top:32px}}

/* Playable original Novelou, isolated from the landing's editorial styles. */
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:22px}.hero-actions>a:last-child{font-weight:700;font-size:1rem}
.game-layout{grid-template-columns:1fr 1.2fr;gap:6%}.game-player{width:100%;min-width:0;border:2px solid var(--ink);box-shadow:8px 8px 0 var(--ink);background:#F4EDF6;border-radius:14px;overflow:hidden}
.game-player iframe{display:block;width:100%;border:0;min-height:680px}.game-description{margin-top:24px}.game-open{margin-top:28px;background:var(--ink);color:#fff}.device-note{margin-top:24px;font-size:.875rem!important;color:var(--ink)}
@media(max-width:850px){.game-layout{grid-template-columns:1fr;gap:38px}.game-player{max-width:570px;justify-self:center}.game-copy{max-width:600px}}
@media(max-width:600px){.game-player{align-self:center;box-shadow:5px 5px 0 var(--ink)}.game-player iframe{min-height:650px}.game-open{font-size:.875rem;padding-inline:16px}}

/* Account and catalog access on the existing application routes. */
.site-header nav{flex-wrap:wrap;column-gap:24px;row-gap:10px}footer nav{flex-wrap:wrap;gap:12px 24px}
@media(max-width:600px){.site-header{flex-wrap:wrap;padding-block:20px}.site-header nav{width:100%;justify-content:space-between;gap:12px}footer nav{gap:12px 20px}}

/* Keep the hero together without changing its headline typography. */
.hero{width:min(1120px,calc(100% - 48px));grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr);gap:28px}
.hero-copy,.mascot{min-width:0}

/* Both rows share the same column starts; the intro begins at card two. */
.about{--community-gap:40px}
.about-top,.editorial-columns{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--community-gap)}
.about-top h2{grid-column:1;width:max-content;max-width:calc(100% + var(--community-gap))}
.about-intro{grid-column:2/-1}

/* Two identical viewport-wide groups make a continuous, gap-free loop. */
.ticker-track{display:flex;animation:ticker-scroll 38s linear infinite}
.ticker-group{display:flex;align-items:center;justify-content:space-around;gap:28px;min-width:100vw;padding-right:28px;white-space:nowrap;word-spacing:normal}
.ticker-group>span{flex:none}
.ticker-group .ticker-word{color:inherit}
@keyframes ticker-scroll{to{transform:translate3d(-50%,0,0)}}

@media(max-width:850px){
  .hero{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px}
  .about{--community-gap:24px}
  .about-top{display:block}
  .about-top h2{width:auto;max-width:100%}
  .about-intro{margin-top:24px}
}
@media(max-width:600px){.hero{width:calc(100% - 36px);gap:12px}}
@media(prefers-reduced-motion:reduce){.ticker-track{animation:none;transform:none}}
