:root{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#eee9d4;background:#102b2c;font-synthesis:none;--gold: #efcc8b;--muted: #a5bbb0;--line: #3b5650;--panel: #1a3434;--green: #b8deac}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input{font:inherit}button{cursor:pointer;color:inherit;background:#2c4943;border:1px solid #557066;border-radius:7px;padding:10px 13px;transition:background .15s,transform .15s}button:hover:not(:disabled){background:#3c6051;border-color:#b9ce9d;transform:translateY(-1px)}button:focus-visible,input:focus-visible{outline:3px solid #f3ce8d;outline-offset:3px}button:disabled{cursor:default;opacity:.45}.primary{background:#e8c487;color:#24372e;border-color:#ffe5ad;font-weight:800;box-shadow:0 3px #9d824e}.primary:hover:not(:disabled){background:#ffdb9c;color:#182e2b}.ghost{background:transparent}.small{font-size:11px;padding:6px 9px}.danger{color:#ffb2a5}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Georgia,Times New Roman,serif}h2{font-size:30px}h3{font-size:22px}p{line-height:1.6}.eyebrow{text-transform:uppercase;letter-spacing:3px;font-size:10px;color:var(--gold);font-weight:800}.muted{color:var(--muted)}.tiny{font-size:11px;line-height:1.5}.row{display:flex;gap:8px;align-items:center}.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:12px}.tag{font-size:9px;letter-spacing:1px;text-transform:uppercase;background:#132b2c;border:1px solid var(--line);padding:4px 6px;border-radius:4px;white-space:nowrap}kbd{font:10px monospace;padding:3px 5px;border:1px solid #6c7e6c;border-bottom-width:3px;border-radius:4px;color:#e3dfc7;background:#263c37}#game{position:fixed;top:0;right:0;bottom:0;left:0}canvas{display:block;image-rendering:pixelated}#ui{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}#ui button,#ui input,#ui .panel,#ui .title-screen,#ui .setup{pointer-events:auto}.title-screen{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 73% 45%,#446b4e55,transparent 55%),linear-gradient(100deg,#102b2cf5,#102b2cf5 32%,#102b2c99 60%,#102b2c00);display:flex;align-items:center;padding:6vw;overflow:hidden}.title-copy{position:relative;z-index:3;width:490px;max-width:46vw}.title-copy h1{font-size:clamp(48px,6vw,86px);font-weight:500;line-height:.98;letter-spacing:-3px;margin:22px 0;color:#f1e5c4}.title-copy h1 span{color:#ecc58b}.title-copy>p{max-width:360px;font-size:14px;color:#bcb;margin:0 0 28px}.birthday-badge{display:inline-flex;gap:9px;color:#f0d69d;border:1px solid #6e7451;background:#b9954c13;padding:9px 13px;border-radius:30px;font-size:11px}.title-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:25px}.title-actions button{padding:14px 22px}.title-footer{position:absolute;left:6vw;right:6vw;bottom:28px;display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px;color:#829e90}.title-art{position:absolute;left:47%;right:0;top:9%;bottom:8%;display:grid;place-items:center}.sun{position:absolute;width:240px;height:240px;border-radius:50%;background:#d9b98212;border:1px solid #aeb17b22;box-shadow:0 0 0 35px #d9b98208,0 0 0 70px #d9b98205;top:16%;left:26%}.island{width:390px;height:245px;background:repeating-linear-gradient(0deg,transparent 0px,transparent 31px,#7c936d22 32px),repeating-linear-gradient(90deg,#4c7255,#4c7255 31px,#7c936d44 32px);transform:rotate(-8deg) skewY(-4deg);position:relative;box-shadow:0 14px #304c3b,0 27px #223c35,0 40px 50px #081d23;border:4px solid #6d8c61;clip-path:polygon(8% 0,89% 0,89% 9%,100% 9%,100% 90%,91% 90%,91% 100%,0 100%,0 12%,8% 12%)}.trail{position:absolute;left:175px;top:0;width:55px;height:100%;background:repeating-linear-gradient(0deg,#bdac85,#bdac85 14px,#a99875 16px)}.trail:after{content:"";position:absolute;left:-175px;top:120px;width:390px;height:38px;background:#448698}.title-monster{width:192px;height:192px;background-image:url(../art/monster.png);background-size:1536px 192px;image-rendering:pixelated;position:absolute;top:32%;left:32%;filter:drop-shadow(0 10px 0 #142d3266);animation:monsterwalk .9s steps(8) infinite}.title-companion{width:96px;height:96px;background-image:url(../art/golem.png);background-size:768px 96px;image-rendering:pixelated;position:absolute;top:48%;left:65%;animation:companion 1.2s steps(8) infinite}.float-note{position:absolute;bottom:15%;left:25%;font:italic 14px Georgia;color:#c4d0af;transform:rotate(-5deg)}.star{position:absolute;color:#dfc68b;font-size:20px;animation:twinkle 3s infinite}.star.one{top:20%;right:18%}.star.two{top:38%;left:15%;animation-delay:1s}.star.three{bottom:18%;right:15%;animation-delay:2s}@keyframes monsterwalk{to{background-position:-1536px 0}}@keyframes companion{to{background-position:-768px 0}}@keyframes twinkle{50%{opacity:.25;transform:scale(.6)}}.setup{position:absolute;top:0;right:0;bottom:0;left:0;background:#102b2cf5;display:flex;align-items:center;justify-content:center;padding:35px;overflow:auto}.setup-card{width:980px;max-width:100%;text-align:center}.name-card{width:450px}.name-card input{display:block;width:100%;padding:15px;background:#213f3a;color:#fff0cd;border:1px solid #7d8f6b;border-radius:7px;text-align:center;font-size:23px;margin:28px 0 18px}.hero-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:32px 0 24px}.hero-card{text-align:left;min-height:285px;position:relative;padding:16px 13px;background:#1d3936}.hero-card.selected{border:2px solid #edcc8e;background:#344c3c}.hero-card h3{font-size:24px;margin:4px 0}.hero-portrait{height:93px;background-repeat:no-repeat;background-size:768px 96px;background-position:center left;image-rendering:pixelated;width:96px;margin:auto;filter:drop-shadow(0 4px #102d2e)}.hero-portrait[style*="horror.png"]{background-size:576px 96px}.hero-card[data-action="hero:volkar"] .hero-portrait{filter:hue-rotate(105deg) drop-shadow(0 4px #102d2e)}.hero-card[data-action="hero:kragmaw"] .hero-portrait{filter:saturate(.45) drop-shadow(0 4px #102d2e)}.hero-card[data-action="hero:zyphra"] .hero-portrait{filter:hue-rotate(145deg) drop-shadow(0 4px #102d2e)}.hero-card[data-action="hero:gloom"] .hero-portrait{filter:hue-rotate(45deg) drop-shadow(0 4px #102d2e)}.hero-card .tiny{font-size:11px}.hero-card .tag{display:inline-block;margin:10px 0}.topbar{position:absolute;top:0;left:0;right:0;height:80px;background:#172f30;border-bottom:1px solid #46614f;display:flex;align-items:center;justify-content:space-between;padding:0 22px;gap:15px}.wordmark{display:flex;align-items:center;gap:12px}.crest{width:39px;height:39px;border:1px solid #8e956a;display:grid;place-items:center;color:var(--gold);font-size:23px;background:#30473a;transform:rotate(-5deg);border-radius:8px}.wordmark h2{font-size:20px;font-weight:500;line-height:1.1}.wordmark .eyebrow{font-size:8px;letter-spacing:2px;margin-top:5px}.meters{display:flex;gap:24px;align-items:center}.metric .label{font-size:9px;text-transform:uppercase;color:#adc0ab;letter-spacing:1px;margin-bottom:4px}.metric strong{font-size:17px;font-weight:600}.metric .unit{font-size:10px;color:#a8b8a4}.meter{width:125px;height:4px;background:#354c43;margin-top:5px;border-radius:3px;overflow:hidden}.meter i{display:block;background:#c1d9a6;height:100%;transition:width .2s}.meter.hero i{background:#e6bb83}.sidebar{position:absolute;right:0;top:80px;bottom:0;width:336px;background:#193333;border-left:1px solid #3b5650;display:flex;flex-direction:column}.sidebar-head{padding:19px 20px 16px;border-bottom:1px solid var(--line)}.sidebar-head h3{font-size:25px;font-weight:500;margin:4px 0}.tabs{display:flex;padding:10px 12px 0;gap:5px}.tabs button{flex:1;font-size:11px;padding:9px 4px;background:transparent;border-color:transparent}.tabs button.active{background:#304b41;border-color:#6f8260;color:#f3d49d}.sidebar-content{overflow:auto;padding:16px 18px 100px;scrollbar-width:thin;scrollbar-color:#718361 #193333}.section-title{display:flex;justify-content:space-between;align-items:center;text-transform:uppercase;letter-spacing:1.5px;font-size:9px;color:#b6c6ad;margin:18px 0 10px}.section-title:first-child{margin-top:0}.inventory{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.inventory button{text-align:left;position:relative;padding:10px;background:#243f39;min-height:71px;font-size:11px}.inventory button.selected{border-color:#f1cf8e;background:#3c5040}.inventory .symbol{font-size:21px;display:block;color:#dac494;margin-bottom:4px}.inventory .sub{font-size:9px;color:#a5baa8}.tile-shapes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:10px 0}.tile-shapes button{font-size:10px;padding:7px 6px;display:grid;grid-template-columns:32px 1fr 10px;gap:5px;align-items:center;text-align:left;min-height:58px}.tile-shapes svg{width:32px;height:32px;image-rendering:pixelated;border:1px solid #8ba37e}.tile-shapes button b{color:var(--gold)}.tile-choice-panel{padding:12px;margin:14px 0;border:1px solid var(--gold);border-radius:8px;background:#334c3a;scroll-margin-top:12px}.tile-choice-panel h4{font-size:13px;color:var(--gold);margin:0 0 8px}.tile-choice-panel p{font-size:11px;color:#d1dcc4}.tile-choice-panel .shape-selection{font-size:10px;padding-top:10px;border-top:1px solid #6b805b}.inventory button.wild-tile{border:2px dashed var(--gold);background:#3a4c37;font-weight:700}.inventory button.wild-tile .sub{color:#f1d7a6;font-weight:400}.modal p.gift-signature{margin-top:18px;color:var(--gold);font-family:Georgia,serif;font-style:italic;font-size:17px}.tile-shapes button.active{border-color:#f2d599;color:#ffe6a8}.hint-card{border:1px solid #6c7854;border-radius:7px;background:#66713d20;padding:13px;margin-bottom:15px}.hint-card h4{font-size:12px;margin:0 0 6px;color:#efd6a6}.hint-card p{font-size:11px;color:#c0cdb3;line-height:1.6}.info-card{padding:13px;border:1px solid var(--line);border-radius:7px;background:#203d37;margin-bottom:12px}.info-card h4{margin:0 0 6px;font-size:14px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:12px 0}.stats div{font-size:10px;color:#adc1ac}.stats strong{display:block;font-size:15px;color:#ece3c5;margin-bottom:3px}.upgrade{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #3d5749;padding:13px 0;gap:8px}.upgrade strong{font-size:12px}.upgrade p{font-size:10px;color:#a9bba7;line-height:1.5;margin-top:4px}.upgrade button{font-size:11px;white-space:nowrap;padding:8px}.bottom-bar{position:absolute;bottom:0;left:0;right:336px;height:84px;border-top:1px solid #3d574e;background:#172f30;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px}.bottom-copy{max-width:60%}.bottom-copy p{font-size:11px;line-height:1.5;color:#b9c9b3}.bottom-copy .eyebrow{margin-bottom:5px;font-size:8px;letter-spacing:1px}.bottom-actions{display:flex;gap:8px;align-items:center}.start-button{min-width:145px;font-size:12px}.map-tools{position:absolute;left:18px;top:98px;display:flex;gap:5px;pointer-events:auto}.map-tools button{background:#1b3433ed;font-size:10px;padding:8px}.phase-pill{position:absolute;left:18px;bottom:101px;background:#142e2fdd;border:1px solid #4a6652;padding:10px 13px;border-radius:7px;pointer-events:none}.phase-pill span{font-size:10px;color:#c6d2b9}.toast{position:absolute;left:50%;top:98px;transform:translate(-65%);padding:10px 18px;border:1px solid #bc9b6d;background:#2b3e35f5;font-size:12px;border-radius:7px;z-index:50;max-width:420px;text-align:center;pointer-events:none}.ability{background:#e5bf81;color:#20392f;font-weight:700;font-size:12px;min-width:160px}.combat-card{padding:15px;background:#2a4138;border:1px solid #6a7855;border-radius:8px}.combat-card h3{font-size:24px;margin:8px 0}.cooldown{height:7px;margin:14px 0;background:#142e2d;border-radius:8px;overflow:hidden}.cooldown i{display:block;height:100%;background:#e5bf81}.roster-item{display:block;width:100%;text-align:left;padding:10px;margin-bottom:5px;background:#233e38;font-size:11px}.roster-item span{float:right;font-size:9px;color:#aec4b2}.guide-search{width:100%;background:#102d2c;color:#f7e6c4;border:1px solid #56745c;padding:10px;border-radius:5px;margin-bottom:10px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#071a22ce;display:flex;align-items:center;justify-content:center;z-index:100;padding:22px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal{background:#1d3935;border:1px solid #839168;border-radius:13px;padding:30px;max-width:750px;max-height:90vh;overflow:auto;box-shadow:0 20px 100px #0008;width:100%}.modal>h2{color:#f0d29b;margin-bottom:12px;font-weight:500}.modal p{font-size:13px;color:#c7d3bd}.modal .close{float:right}.modal .row{margin-top:20px}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}.help-grid h4{margin:0 0 8px;font-size:12px;color:#e9d1a0}.help-grid p{font-size:12px}.volume{display:grid;grid-template-columns:80px 1fr;align-items:center;gap:12px;margin:20px 0;font-size:12px}.volume input{accent-color:#e3c58c;width:100%}.reward-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px}.reward-card{padding:18px 12px;text-align:left}.reward-card .symbol{font-size:32px;display:block;margin-bottom:14px}.reward-card h3{font-family:inherit;font-size:14px;line-height:1.4;margin:10px 0}.reward-card p{font-size:11px}.confetti{position:fixed;pointer-events:none;top:-20px;width:8px;height:12px;z-index:120;animation:fall 4s linear forwards}@keyframes fall{to{transform:translateY(110vh) rotate(720deg)}}.empty{font-size:11px;color:#a1b7a3;padding:12px 0}.naval-banner{background:#31617344;border:1px solid #67939b;padding:10px;border-radius:6px;font-size:11px;color:#b9e1e3;margin:15px 0}.selection-title{font-family:Georgia,serif;font-size:24px;margin:10px 0}.back{font-size:11px;color:#dbcdab}.build-resources{padding:10px 0 0;display:flex;gap:16px;font-size:12px;color:#e9d6ab}.combat-tips{font-size:12px;line-height:1.7;padding-left:17px;color:#b6c8ae}.settings-footer{margin-top:auto;padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:7px}.settings-footer button{font-size:10px;flex:1}.chip{display:inline-flex;gap:5px;align-items:center;border:1px solid #62735a;border-radius:4px;font-size:10px;padding:4px 7px;color:#d6d9b9}.keyline{display:flex;gap:8px;align-items:center;margin:11px 0;font-size:12px}.loading{position:fixed;left:20px;top:20px;font-size:12px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}.title-monster,.title-companion,.star{animation:none}.confetti{display:none}}.mobile-warning{display:none}@media(max-width:1100px){.meters{gap:13px}.metric .meter{width:90px}.wordmark h2{font-size:17px}.topbar{padding:0 14px}.title-art{left:45%;transform:scale(.85)}.title-copy{max-width:47vw}.hero-grid{gap:7px}.hero-card{padding:12px 9px}.hero-card h3{font-size:21px}}@media(max-width:949px){.sidebar{width:280px}.bottom-bar{right:280px;padding:10px 12px}.meters{gap:10px}.metric strong{font-size:13px}.metric .meter{width:70px}.wordmark .eyebrow{display:none}.wordmark h2{font-size:15px}.crest{display:none}.metric .label{font-size:8px}.hero-grid{grid-template-columns:repeat(5,1fr)}.hero-card{min-height:270px}.hero-card .tiny{font-size:10px}.start-button{min-width:110px;padding:10px}.bottom-copy{max-width:55%}.bottom-copy p{font-size:10px}}@media(max-width:700px){.mobile-warning{display:block;background:#705439;padding:9px;font-size:11px;margin-top:20px}.title-copy{max-width:none;width:90%}.title-art{opacity:.25;left:15%;z-index:0}.title-copy h1{font-size:58px}.title-screen{padding:7vw}.hero-grid{grid-template-columns:repeat(2,1fr)}.setup{align-items:flex-start;padding:24px}.setup-card{margin:auto}.hero-card{min-height:230px}.hero-card:last-child{grid-column:span 2}.hero-portrait{height:76px}.topbar .metric:nth-child(3){display:none}.wordmark{display:none}.help-grid,.reward-grid{grid-template-columns:1fr}.modal{padding:20px}}
