:root{--paper:#faf6ed;--white:#fffdf7;--ink:#2f271f;--muted:#695c50;--accent:#a7442a;--rust:#873821;--line:#e6dccb;--green:#45634f;--serif:Georgia,"Times New Roman",serif;--sans:system-ui,-apple-system,BlinkMacSystemFont,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.55}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.08}h1{font-size:clamp(2.6rem,7vw,5.1rem);letter-spacing:-.06em}h2{font-size:clamp(2rem,4vw,3.05rem);letter-spacing:-.045em}h3{font-size:1.45rem;letter-spacing:-.025em}p{color:var(--muted)}.shell{width:min(1180px,calc(100% - 88px));margin-inline:auto}.site-header{border-bottom:1px solid var(--line);background:#fffaf0}.header-inner{min-height:79px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:flex;align-items:center;gap:11px;flex:none}.brand img{width:42px;height:42px}.brand strong{display:block;font-family:var(--serif);font-size:1.13rem;line-height:1.18}.brand small{font-size:.59rem;letter-spacing:.2em;color:var(--accent);font-weight:800}.header-inner nav{display:flex;align-items:center;gap:25px}.nav-link{font-size:.86rem;color:var(--muted);font-weight:620;white-space:nowrap}.nav-link[aria-current],.nav-link:hover{color:var(--accent)}.header-account{padding:8px 14px!important;white-space:nowrap}.site-footer{padding:24px 0 32px;border-top:1px solid var(--line);margin-top:56px;display:flex;justify-content:space-between;gap:16px;color:var(--muted);font-size:.76rem}.loading{padding:56px 0}.eyebrow{font-size:.71rem;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:var(--accent)}.button{display:inline-flex;justify-content:center;align-items:center;gap:9px;border:1px solid transparent;border-radius:9px;padding:11px 17px;min-height:42px;font-weight:680;font-size:.87rem;line-height:1.25;text-align:center}.button.primary{background:var(--accent);color:#fff9ef}.button.primary:hover{background:var(--rust)}.button.secondary{background:transparent;border-color:#d9c9b5;color:var(--ink)}.button.secondary:hover{background:#f3eadb}.button:disabled{opacity:.6;cursor:wait}.buttons{display:flex;flex-wrap:wrap;gap:9px}.hero{margin-top:32px;border-radius:22px;overflow:hidden;background:#f0e5d2;display:grid;grid-template-columns:1.04fr 1fr;min-height:385px}.hero-copy{padding:clamp(28px,5vw,62px);align-self:center}.hero h1{font-size:clamp(3rem,6.35vw,5.25rem);margin:12px 0 17px}.hero h1 em{font-weight:400;color:var(--accent)}.hero p:not(.eyebrow){max-width:33ch;margin-bottom:24px}.hero-art{position:relative;min-height:100%;background:#bc8a59}.hero-art img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:54% center}.hero .button{padding:12px 19px}.section{margin-top:42px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:16px}.section-head p{margin-top:6px;font-size:.9rem}.text-link{font-weight:730;font-size:.86rem;color:var(--accent)}.text-link:hover{text-decoration:underline}.filter-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.filter{border:1px solid var(--line);border-radius:99px;background:var(--white);padding:7px 13px;font-size:.79rem;color:var(--muted);font-weight:650}.filter[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff9ef}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.card{display:block;background:var(--white);border:1px solid var(--line);border-radius:15px;padding:18px;min-width:0;transition:transform .15s,border-color .15s}.card:hover{border-color:#bd9b82;transform:translateY(-2px)}.card-top,.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px}.card h3{margin:12px 0 5px;overflow-wrap:anywhere}.card p{font-size:.83rem;min-height:2.6em}.card-bottom{margin-top:14px;border-top:1px solid var(--line);padding-top:11px;font-size:.77rem;color:var(--muted)}.card-bottom .arrow{font-size:1.1rem;color:var(--accent)}.type-mark{width:43px;height:43px;display:grid;place-items:center;border-radius:10px;font-family:var(--serif);font-weight:bold;font-size:1.32rem}.type-mark.wordsearch{background:#efdecb;color:#94462e}.type-mark.crossword{background:#e5e9d9;color:#4c6043}.type-mark.cryptogram{background:#eee0d5;color:#815440}.pill{border-radius:99px;padding:3px 9px;font-size:.68rem;font-weight:750;background:#e8ebdf;color:#43563e;white-space:nowrap}.pill.paid{background:#f5e4d7;color:#853b25}.pill.draft{background:#ede8df;color:#5c5348}.collection-card p{min-height:0}.page{padding-top:36px}.page-heading{margin-bottom:25px}.page-heading h1{font-size:clamp(2.6rem,6vw,4.55rem);margin:6px 0 9px}.page-heading p{max-width:58ch}.panel{padding:clamp(16px,3vw,28px);border:1px solid var(--line);border-radius:16px;background:var(--white)}.panel h2{font-size:2rem;margin-bottom:9px}.narrow{max-width:570px}.centered{margin-inline:auto}.notice{border:1px solid var(--line);border-radius:10px;padding:11px 13px;background:#f7efe1;font-size:.86rem}.notice.good{background:#e9efdf;color:#3d563b}.error{color:#91361e;font-size:.86rem;font-weight:620}.error:empty{display:none}.back{display:inline-block;margin-bottom:15px}.play-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(225px,.8fr);gap:16px;align-items:start}.play-layout .panel{min-width:0}.grid{display:grid;grid-template-columns:repeat(var(--columns),minmax(0,1fr));max-width:520px;margin-inline:auto;gap:2px}.grid.word-grid{touch-action:none;user-select:none;-webkit-touch-callout:none}.grid button,.cross-cell{aspect-ratio:1;border:1px solid #e7dccc;background:#f8f1e4;border-radius:4px;display:grid;place-items:center;min-width:0;padding:0;color:var(--ink);font-weight:750;font-size:clamp(.63rem,2.2vw,1.15rem)}.grid .marked{background:#dbe6ce;color:#365333}.grid .selected{background:#efd5b5;color:#76361f}.grid .block{aspect-ratio:1;background:#55483b;border-radius:4px}.cross-grid{max-width:min(100%,calc(var(--columns) * 48px))}.cross-cell{position:relative}.cross-cell small{position:absolute;top:1px;left:2px;font-size:clamp(.39rem,1.3vw,.65rem);pointer-events:none}.cross-cell input{width:100%;height:100%;background:transparent;text-align:center;border:0;border-radius:4px;padding:0;color:var(--ink);text-transform:uppercase;font-weight:800;font-size:clamp(.72rem,3vw,1.28rem);min-width:0}.cross-cell.active{background:#efd5b5}.cross-cell input:focus{outline:2px solid var(--accent);outline-offset:-2px}.clues{display:grid;gap:14px}.clues h3{margin-bottom:7px}.clue{display:block;width:100%;background:transparent;border:0;border-radius:6px;color:var(--ink);padding:5px 6px;text-align:left;font-size:.86rem}.clue.active{background:#f2e3ce}.clue strong{color:var(--accent);margin-right:5px}.word-list{display:flex;flex-wrap:wrap;gap:7px;padding:0;list-style:none}.word-list li{background:#f5ecdf;border-radius:99px;padding:5px 9px;font-weight:700;font-size:.73rem}.word-list .found{text-decoration:line-through;background:#e4ecdc;color:var(--green)}.cipher{display:flex;flex-wrap:wrap;align-items:end;gap:10px 13px}.cipher-word{display:inline-flex;align-items:end;flex-wrap:wrap;max-width:100%;gap:2px}.cipher label{display:grid;gap:2px;justify-items:center;font:700 .77rem var(--sans);color:var(--muted)}.cipher input{width:clamp(19px,5vw,34px);height:40px;text-transform:uppercase;padding:0;border:1px solid var(--line);border-radius:4px;background:#f8f1e4;text-align:center;font-weight:800;color:var(--ink)}.cipher input.active{background:#efd5b5}.punct{margin-bottom:14px}.game-controls{margin-top:18px}.game-message{margin-top:12px;min-height:1.55em;font-size:.86rem;font-weight:650;color:var(--green)}.form{display:grid;gap:13px}.form label{display:grid;gap:4px;font-size:.82rem;font-weight:720;min-width:0}.form input:not([type=file]),.form textarea,.form select,.toolbar select{border:1px solid #d9cbb9;border-radius:8px;background:#fffdf8;padding:9px 10px;width:100%;color:var(--ink)}.form textarea{min-height:70px;resize:vertical}.form textarea.json{min-height:185px;font-family:ui-monospace,monospace;font-size:.82rem}.form-columns{display:grid;grid-template-columns:1fr 1fr;gap:10px}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:15px}.toolbar select{width:auto}.studio-layout,.plans{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.studio-list{display:grid;gap:8px;margin-top:12px}.studio-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 0;border-bottom:1px solid var(--line)}.studio-row strong{overflow-wrap:anywhere}.studio-row small{display:block;color:var(--muted)}.studio-row .button{padding:6px 10px;min-height:32px}.stack{display:grid;gap:12px}.muted{font-size:.84rem;color:var(--muted)}.plan-list{margin:0;padding-left:20px;color:var(--muted);font-size:.9rem}#toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;border-radius:9px;padding:9px 14px;font-size:.86rem;max-width:calc(100% - 32px);z-index:5}#toast:empty{display:none}
@media(max-width:820px){.shell{width:calc(100% - 44px)}.header-inner nav{gap:14px}.hero{min-height:330px}.play-layout{grid-template-columns:minmax(0,1fr) minmax(190px,.65fr)}}
@media(max-width:640px){.shell{width:calc(100% - 30px)}.header-inner{display:grid;grid-template-columns:1fr auto;gap:7px 10px;padding-block:10px 0}.header-inner nav{grid-row:2;grid-column:1/-1;overflow-x:auto;gap:20px}.nav-link{padding:7px 0 10px}.nav-link[aria-current]{box-shadow:inset 0 -2px var(--accent)}.hero{margin-top:16px;grid-template-columns:1fr;min-height:0;border-radius:16px}.hero-copy{padding:25px 22px 23px}.hero h1{margin:7px 0 11px;font-size:clamp(2.65rem,12vw,3.75rem)}.hero p:not(.eyebrow){font-size:.91rem;margin-bottom:16px}.hero-art{min-height:145px;aspect-ratio:2.35}.hero-art img{object-position:50% 56%}.section{margin-top:29px}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.card{padding:12px}.card h3{font-size:1.23rem}.card p{font-size:.76rem}.card-bottom{font-size:.68rem}.type-mark{width:34px;height:34px;font-size:1.05rem}.pill{font-size:.61rem;padding:3px 7px}.play-layout,.studio-layout,.plans{grid-template-columns:1fr}.page{padding-top:22px}.site-footer{margin-top:36px}.header-account{min-height:36px;font-size:.76rem}}
@media(max-width:350px){.cards{grid-template-columns:1fr}.form-columns{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

:root {
  --paper:#f8f5ff;
  --white:#fff;
  --ink:#221744;
  --muted:#51466b;
  --accent:#5531a5;
  --rust:#432382;
  --line:#e6dcf4;
  --green:#286349;
  --lime:#e5fc91;
  --display:"Avenir Next",system-ui,-apple-system,sans-serif;
}
h1,h2,h3 {font-family:var(--display);font-weight:780}
h1,h2 {letter-spacing:-.065em}
h3 {letter-spacing:-.045em}
.site-header {background:var(--white)}
.brand strong {font-family:var(--display);font-weight:800;letter-spacing:-.055em;font-size:1.34rem}
.brand small {letter-spacing:.12em}
.nav-link svg,.mobile-label {display:none}
.nav-link[aria-current] {font-weight:800}
.button {border-radius:12px;min-height:46px}
.button.primary {color:#fff}
.button.secondary {background:var(--white);border-color:#d9caee;color:var(--ink)}
.button.secondary:hover {background:#f1e9ff}
.hero {grid-template-columns:1.3fr 1fr;background:#43218d;min-height:344px;position:relative;color:#fff;isolation:isolate;border-radius:25px}
.hero-copy {padding:clamp(27px,5vw,63px);z-index:1}
.hero .eyebrow {color:#e2d3fc}
.hero h1 {margin:8px 0 15px;font-size:clamp(3rem,6.1vw,5.45rem);line-height:.98;letter-spacing:-.08em}
.hero h1 em {font-style:normal;font-weight:inherit;color:var(--lime)}
.hero p:not(.eyebrow) {color:#f3ebff;margin-bottom:21px}
.hero .button.primary {background:var(--lime);color:#29203a}
.hero .button.primary:hover {background:#f0ffb9}
.hero .button.secondary {background:#ffffff12;border-color:#d3b8fa8f;color:#fff}
.hero .button.secondary:hover {background:#ffffff25}
.hero-art {min-width:0;background:radial-gradient(ellipse at 50% 58%,#9c60e6 0%,#6a36b8 39%,transparent 74%);display:grid;place-items:center;position:relative}
.hero-tiles {display:grid;grid-template-columns:repeat(5,1fr);gap:7px;width:min(72%,300px);transform:rotate(-9deg);position:relative}
.hero-tiles span {display:grid;place-items:center;aspect-ratio:1;border-radius:11px;font-family:var(--display);font-weight:820;font-size:clamp(1rem,2.35vw,1.8rem);background:#f5e8ff;color:#4b288c;box-shadow:0 4px 0 #32106c99}
.hero-tiles span.lit {background:var(--lime);color:#2e1c59}
.hero-spark,.hero-check {position:absolute;z-index:1;line-height:1}
.hero-spark {top:12%;right:14%;color:#ffc5a7;font-size:clamp(2rem,4vw,3.1rem)}
.hero-check {right:9%;bottom:16%;padding:10px 13px;background:#ffc5a7;color:#482583;border-radius:13px;font-size:1.65rem;transform:rotate(11deg);font-weight:850;box-shadow:0 3px 0 #32106c99}
.section-head {align-items:center}
.text-link {font-weight:750}
.puzzle-card {--card-accent:#5931a8;--card-wash:#eee2ff;border-top:4px solid var(--card-accent)}
.puzzle-card.crossword {--card-accent:#27735d;--card-wash:#d5f5e7}
.puzzle-card.cryptogram {--card-accent:#a33c61;--card-wash:#ffdeeb}
.puzzle-card .type-mark {background:var(--card-wash);color:var(--card-accent);font-family:var(--display)}
.puzzle-card .card-meta {font-weight:700;min-height:0}
.puzzle-card .card-description {margin-top:3px;min-height:2.5em}
.card-bottom .arrow {color:var(--card-accent)}
.pill {background:#dff5e6;color:#275842}
.pill.paid {background:#f4e4ff;color:#633488}
.collection-card {background:#f0e6fe}
.collection-card:nth-child(even) {background:#e0f6ea}
.filter {min-height:42px}
.notice {background:#f1e9ff}
.notice.good,.word-list .found {background:#ddf4e6;color:#286349}
.grid button,.cross-cell,.cipher input {border-color:#ded2ed;background:#f6f0ff}
.grid .marked {background:#d9f0c7;color:#2b5c3f}
.grid .selected,.cross-cell.active,.clue.active,.cipher input.active {background:#e4d2ff;color:#3f237c}
.grid .block {background:#423264}
.word-list li {background:#efe5ff}
#play-context:empty {display:none}
#play-context:not(:empty) {margin-bottom:13px}
#word-list .word-list {margin:5px 0 0}
.active-clue {background:#efe5ff;border-radius:9px;color:var(--ink);font-weight:700;font-size:.89rem;padding:9px 11px}
.form input:not([type=file]),.form textarea,.form select,.toolbar select {background:#fff;border-color:#d9caee}
@media(max-width:640px){
  body {padding-bottom:calc(64px + env(safe-area-inset-bottom))}
  .shell {width:calc(100% - 28px)}
  .header-inner {display:flex;min-height:64px;padding:8px 0;gap:8px}
  .brand img {width:38px;height:38px}
  .brand strong {font-size:1.16rem}
  .header-account {min-height:44px;font-size:.8rem}
  .header-inner nav {position:fixed;z-index:4;bottom:0;inset-inline:0;display:flex;align-items:stretch;gap:0;justify-content:space-evenly;background:#fff;border-top:1px solid var(--line);padding:3px 5px calc(3px + env(safe-area-inset-bottom));box-shadow:0 -4px 20px #3620690c}
  .nav-link {flex:1;min-width:0;min-height:53px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px 2px;gap:1px;font-size:.69rem}
  .nav-link[aria-current] {box-shadow:none;background:#efe6ff;border-radius:10px}
  .nav-link svg {display:block;width:21px;height:21px}
  .desktop-label {display:none}
  .mobile-label {display:inline}
  .hero {display:block;margin-top:13px;border-radius:19px;min-height:0}
  .hero-copy {padding:25px 17px 20px;position:relative}
  .hero h1 {font-size:clamp(2.4rem,10.3vw,3.9rem);margin:7px 0 12px}
  .hero p:not(.eyebrow) {margin-bottom:15px;max-width:none}
  .hero .buttons {gap:7px}
  .hero .button {min-height:46px;padding:9px 10px;font-size:.79rem}
  .hero-art {position:absolute;right:-18px;top:-10px;width:36%;min-height:0;aspect-ratio:1;opacity:.31;pointer-events:none}
  .hero-tiles {width:88%;gap:4px;transform:rotate(16deg)}
  .hero-tiles span {border-radius:5px;font-size:.85rem}
  .hero-check,.hero-spark {display:none}
  .section {margin-top:23px}
  .section-head {margin-bottom:11px}
  .section-head h2 {font-size:clamp(1.6rem,7vw,2rem)}
  .cards {grid-template-columns:1fr;gap:8px}
  .puzzle-card {display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;column-gap:9px;row-gap:2px;padding:10px;border-top-width:1px;border-left:4px solid var(--card-accent);min-height:78px}
  .puzzle-card .card-top {display:contents}
  .puzzle-card .type-mark {grid-column:1;grid-row:1/3;width:36px;height:36px}
  .puzzle-card .pill {grid-column:3;grid-row:1;justify-self:end;align-self:center}
  .puzzle-card h3 {grid-column:2;grid-row:1;margin:0;line-height:1.15;font-size:1.09rem}
  .puzzle-card .card-meta {grid-column:2;grid-row:2;font-size:.72rem}
  .puzzle-card .card-description {display:none}
  .puzzle-card .card-bottom {grid-column:3;grid-row:2;display:block;text-align:right;margin:0;padding:0;border:0}
  .puzzle-card .card-bottom > span:first-child {display:none}
  .puzzle-card .card-bottom .arrow {font-size:.9rem}
  .page-heading {margin-bottom:16px}
  .play-panel {padding:9px}
  .grid {gap:2px}
  .grid button {font-size:clamp(.63rem,3.1vw,1.1rem)}
  .cross-cell input,.cipher input,.form input:not([type=file]),.form textarea,.form select,.toolbar select {font-size:16px}
  .clue {min-height:42px}
  .filter {min-height:44px;padding-inline:10px}
  #toast {bottom:calc(68px + env(safe-area-inset-bottom))}
}

#account {display:flex;align-items:center;gap:6px;flex:none}
.print-promo {
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(160px,.75fr);
  align-items:center;
  gap:18px;
  padding:clamp(22px,4vw,44px);
  overflow:hidden;
  background:#eee4ff;
  border:1px solid #ddcaef;
  border-radius:20px;
}
.print-promo-copy h2 {margin:5px 0 8px}
.print-promo-copy > p:not(.eyebrow) {max-width:45ch;margin-bottom:15px}
.print-promo-domain {display:inline-block;margin:7px 0 0 10px;font-size:.8rem;color:var(--muted)}
.print-promo-covers {display:flex;align-items:center;justify-content:center;padding:12px 8px}
.print-promo-covers img {width:42%;max-width:142px;height:auto;border-radius:3px;box-shadow:0 8px 18px #321a563d;transform:rotate(-8deg)}
.print-promo-covers img + img {margin-left:-8px;transform:rotate(8deg)}
@media(max-width:640px) {
  .header-account {padding:8px 9px!important}
  .print-promo {grid-template-columns:1fr minmax(78px,.39fr);gap:7px;padding:17px}
  .print-promo-copy h2 {font-size:clamp(1.55rem,6.1vw,2rem)}
  .print-promo-copy > p:not(.eyebrow) {font-size:.87rem}
  .print-promo-domain {display:block;margin:5px 0 0}
  .print-promo-covers {padding:8px 0}
  .print-promo-covers img {width:55%}
}
@media(max-width:360px) {
  .header-inner .brand {gap:6px}
  .header-inner .brand img {width:30px;height:30px}
  .header-inner .brand small {letter-spacing:.065em}
  #account {gap:4px}
  .header-account {padding-inline:7px!important}
}

.weekly-card {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;padding:clamp(16px,3vw,28px);background:#e7f5cd;border:1px solid #c6dda8;border-radius:16px}
.weekly-card h2 {font-size:clamp(1.6rem,4vw,2.45rem);margin:3px 0 6px}
.weekly-card p:not(.eyebrow) {color:#333d2c}
.achievement-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,218px),1fr));gap:10px;padding:0;list-style:none}
.badge-card {display:flex;align-items:flex-start;gap:10px;padding:13px;background:var(--white);border:1px solid var(--line);border-radius:14px}
.badge-card.earned {background:#eee4ff;border-color:#d5beff}
.badge-mark {display:grid;place-items:center;width:36px;height:36px;flex:none;border-radius:10px;background:#eee7f6;color:var(--ink);font-size:1.25rem;font-weight:800}
.earned .badge-mark {background:var(--lime)}
.badge-card h3 {font-size:1rem;margin-bottom:4px}
.badge-card p,.badge-card small {font-size:.8rem}
.badge-card small {color:var(--accent);font-weight:750}
.studio-activity,.weekly-settings {margin-bottom:15px}
.weekly-settings summary {cursor:pointer;font-weight:750}
.weekly-settings .form {margin-top:14px}
.studio-stats {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}
.studio-stats div {display:flex;flex-direction:column-reverse;justify-content:flex-end;background:var(--paper);border-radius:10px;padding:11px}
.studio-stats dt {font-size:.8rem;color:var(--muted)}
.studio-stats dd {font-weight:800;font-size:1.75rem;margin:0}
@media(max-width:640px) {.studio-stats {grid-template-columns:repeat(2,minmax(0,1fr))}}
