:root{--world-width:1120px;--world-ink:#17494e;--world-teal:#176c72;--world-paper:#fff9eb;--world-sage:#edf1e1;--world-line:#ddd8c6;--world-radius:24px;--world-shadow:0 12px 35px #143e4812}
.world-notice{position:fixed;z-index:1000;left:50%;bottom:26px;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);background:var(--world-paper);color:var(--world-ink);border:1px solid #c7cda8;border-radius:18px;box-shadow:0 5px 0 #bed1b3,0 12px 35px #143e4825;padding:17px 23px;font:600 15px/1.5 system-ui,sans-serif;text-align:center;pointer-events:none}.world-notice[data-error=true]{border-color:#b98e69}.world-notice[hidden]{display:none}
.family-site{--ink:var(--world-ink);--teal:var(--world-teal);--paper:var(--world-paper);--line:var(--world-line)}
.family-site header.site,.family-site main,.family-site footer{max-width:var(--world-width)}
.family-site button,.family-site .button{border-radius:16px;font:600 15px/1.5 system-ui,sans-serif;padding:11px 18px;min-height:46px;background:#fffdf6;border:1px solid #c7cda8;box-shadow:0 2px 0 #d7deca;transition:background .15s,box-shadow .15s}.family-site button:hover,.family-site .button:hover{background:#edf1e1}.family-site .primary,.family-site button.primary,.family-site .button.primary{border-radius:16px;background:var(--world-teal);border-color:#0e555a;box-shadow:0 3px 0 #0b484d;color:white;font:700 16px/1.5 system-ui,sans-serif;padding:12px 22px}.family-site .primary:hover{background:#125e63}
.family-site header.site nav{gap:22px;flex-wrap:wrap}.family-site header.site nav>a{font-weight:600}.family-site .reading-profile{display:flex;align-items:center;gap:7px;padding:4px 10px 4px 5px;border-radius:24px;background:#fff9eb;border:1px solid #ddbb72;max-width:170px;min-height:44px;box-shadow:none}.reading-profile img{width:34px;height:34px;object-fit:contain}.reading-profile span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.family-site .card,.family-site .panel{border-radius:var(--world-radius);box-shadow:var(--world-shadow)}.family-site .first-story{border-radius:24px}.family-site .first-story>h2{font-size:11px;letter-spacing:1.7px}.family-site .chapter-preview h2{font-size:33px}.family-site .recent-stories{margin:38px 0}.family-site .recent-stories>h2{font-size:30px;margin-bottom:24px}.family-site .recent-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.family-site .recent-grid .card{display:flex;flex-direction:column;padding:12px 12px 24px;background:#fffdf6;min-width:0}.family-site .recent-grid .card img{aspect-ratio:16/10;object-fit:cover;border-radius:14px;margin-bottom:14px}.family-site .recent-grid .card h2{font-size:27px;margin:10px 10px 6px}.family-site .recent-grid .card small,.family-site .recent-grid .card p{margin:8px 10px}.family-site .recent-grid .card p{font-size:17px;flex:1}.family-site .recent-grid .card .button{align-self:flex-start;margin:14px 10px 0}.family-site .start-at-beginning{display:inline-flex;font:600 15px/1.5 system-ui,sans-serif;margin:0 0 30px;min-height:44px;align-items:center;text-underline-offset:5px}
.family-site main.reading-page{padding-top:18px}.family-site .utilities{display:flex;align-items:center;gap:12px;padding:12px 0;top:0;z-index:3}.family-site .utilities>.actions{gap:12px}.family-site .utilities a{font:500 14px/1.5 system-ui,sans-serif;text-decoration:none}.family-site .utilities button{font-size:14px;padding:8px 13px;min-height:42px;box-shadow:none}.family-site .reader{width:100%;max-width:740px;min-width:0;margin:38px auto 0;font:var(--reader-size,22px)/1.75 Georgia,serif;overflow-wrap:anywhere;word-break:normal;white-space:normal}.family-site .reader h1{font-size:clamp(32px,4vw,46px);max-width:100%;margin:16px 0 32px}.family-site .reader p,.family-site .reader li,.family-site .story-text{max-width:100%;min-width:0;overflow-wrap:anywhere;white-space:normal}.family-site .reader p{font:inherit;color:var(--ink);margin:0 0 1.15em}.family-site .reader img{height:auto;max-width:100%}.family-site .reader small{font:11px/1.5 system-ui,sans-serif;letter-spacing:2px}.family-site .reader .status{font:14px/1.5 system-ui,sans-serif;letter-spacing:0;margin:18px 0}.family-site .resume-reading{display:flex;margin:0 0 28px}
.family-site .chapter-end{font:16px/1.6 system-ui,sans-serif;display:flex;flex-direction:column;align-items:flex-start;gap:20px;padding-top:28px;margin-top:35px}.family-site .chapter-end>.primary{width:auto;max-width:100%}.family-site .chapter-end>p{font:15px/1.5 system-ui,sans-serif;margin:-12px 0 0;color:#617775}.family-site .chapter-end details{width:100%;margin:0;padding:20px;border-radius:20px;border:1px solid #d3dac4}.family-site .chapter-end details p{font:17px/1.6 Georgia,serif;margin-top:15px}.chapter-links{display:flex;flex-wrap:wrap;gap:24px;border-top:1px solid var(--line);padding-top:20px;width:100%}.chapter-links a{min-height:44px;display:flex;align-items:center;text-underline-offset:4px}
.family-site dialog,.workshop-site dialog{border:1px solid #d6b46b;border-radius:28px;padding:28px;background:var(--world-paper);box-shadow:0 12px 40px #143e4866;max-height:90dvh;overflow:auto;color:var(--world-ink)}.family-site dialog::backdrop,.workshop-site dialog::backdrop{background:#143e48a6}.world-profile-dialog h2{font:700 30px Georgia,serif}.world-profile-dialog>small{font:11px system-ui,sans-serif;letter-spacing:2px}.world-profile-dialog>p{font:16px/1.6 system-ui,sans-serif}.reading-profile-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:24px 0}.reading-profile-choices button{display:flex;flex-direction:column;gap:10px;padding:18px 12px}.reading-profile-choices img{width:80px;height:80px;object-fit:contain}.reading-profile-choices span{overflow-wrap:anywhere}
/* Home screens share the same canvas; individual games retain their board sizing. */
body.at-home .app{max-width:var(--world-width);padding:24px 48px 32px}body.at-home .game-header{margin-bottom:22px}
@media(max-width:800px){.family-site header.site{flex-wrap:wrap;gap:16px;padding:20px 24px 0}.family-site header.site nav{width:100%;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:5px 0}.family-site header.site nav>a{font-size:13px;padding:12px 0}.family-site .story-bottle{font:600 13px/1.5 system-ui,sans-serif;border:0;box-shadow:none;background:transparent;padding:6px 0;gap:5px}.family-site .story-bottle img{width:22px;height:26px}.family-site main{padding-left:24px;padding-right:24px}.family-site .reading-profile{font-size:12px;max-width:120px}.reading-profile img{width:28px;height:28px}.family-site .utilities{align-items:flex-start}.family-site .utilities>.actions{gap:7px}.family-site .reader{margin-top:28px}.family-site .recent-grid{grid-template-columns:1fr}.family-site .recent-stories>h2{font-size:26px}body.at-home .app{padding:20px 24px 28px}}
@media(max-width:500px){.family-site .reading-profile{flex-basis:100%;max-width:none;justify-content:center;margin:3px 0 7px}.family-site .reading-profile img{width:30px;height:30px}.family-site .reader h1{font-size:34px}.family-site .utilities{flex-direction:column}.family-site .utilities>.actions:last-child{width:100%;justify-content:space-between}.family-site .utilities button{padding:8px 12px}.reading-profile-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.family-site .hero-copy .button.primary{font-size:15px}.family-site .hero-copy .actions{gap:20px}.family-site .recent-grid .card .button{font-size:15px}}
@media(prefers-reduced-motion:reduce){.family-site button,.family-site .button{transition:none}}

.family-site .story-text p{scroll-margin-top:150px}@media(max-width:800px){.family-site .story-text p{scroll-margin-top:190px}}

.workshop-remember{display:flex;align-items:center;gap:10px;margin:20px 0;font-size:14px}.workshop-remember input[type=checkbox]{width:19px;height:19px;flex:none;accent-color:#294e43}

/* Shared game controls: same rounded type, cream surface and raised rim. */
:root{--world-control-font:ui-rounded,'Trebuchet MS',system-ui,sans-serif}
.family-site button,.family-site .button,.family-site .primary,.family-site button.primary,.family-site .button.primary{font-family:var(--world-control-font);font-weight:800}
.family-site header.site{display:flex;flex-wrap:wrap;gap:20px;padding:24px 48px;align-items:center}
.family-site header.site .brand{font-size:32px;flex-shrink:0}
.family-site header.site nav{display:flex;flex:1 1 660px;justify-content:flex-end;gap:10px;flex-wrap:wrap;border:0;padding:0}
.family-site header.site nav>a,.family-site header.site nav>button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:56px;padding:8px 14px;border:1px solid #c7cda8;border-radius:17px;background:#fff8e7;box-shadow:0 3px 0 #bed1b3;color:#17494e;font:800 16px/1.3 var(--world-control-font);text-decoration:none;max-width:100%;margin:0;flex-basis:auto}
.family-site header.site nav>a:hover,.family-site header.site nav>button:hover{background:#edf1e1;border-color:#98af8c}
.family-site header.site nav>a[aria-current=page]{background:#e6efdf;border-color:#176c72;box-shadow:0 3px 0 #9cbda0}
.family-site header.site .story-bottle img,.family-site header.site .reading-profile img{width:42px;height:42px;object-fit:contain;flex:none}
.family-site header.site .reading-profile{font-weight:900;padding:5px 12px;max-width:180px}
.family-site header.site .nav-favorites svg{width:23px;height:23px;flex:none}
@media(max-width:800px){.family-site header.site{padding:20px 24px 24px;gap:18px}.family-site header.site nav{flex-basis:100%;justify-content:flex-start}.family-site header.site nav>a,.family-site header.site nav>button{font-size:16px;min-height:56px;padding:8px 12px}}
@media(max-width:500px){.family-site header.site{padding:18px 20px 22px}.family-site header.site .brand{font-size:29px}.family-site header.site nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%}.family-site header.site nav>a,.family-site header.site nav>button{font-size:15px;min-width:0;padding:8px;min-height:56px}.family-site header.site .reading-profile{max-width:none}.family-site header.site .story-bottle img,.family-site header.site .reading-profile img{width:36px;height:36px}}

@media(min-width:501px) and (max-width:800px){.family-site header.site nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:10px}.family-site header.site .reading-profile{max-width:none}}

.family-site header.site nav>.nav-stories:not([aria-current=page]){border-bottom-color:#c7cda8}
