.townsfolk-launcher{position:fixed;right:16px;top:160px;z-index:44;display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid #658874;border-radius:10px;background:#142d25ed;color:#f7edce;box-shadow:0 4px 16px #0005;cursor:pointer;font:inherit}.townsfolk-launcher>span{color:#efadc1;font-size:23px}.townsfolk-launcher small{border:1px solid #607a66;padding:1px 5px;border-radius:4px;color:#c5d7c6}.townsfolk-overlay{position:fixed;inset:0;z-index:220;display:grid;place-items:center;background:#07150fd9;backdrop-filter:blur(6px);padding:24px}.townsfolk-window{width:min(1060px,100%);height:min(790px,94dvh);display:flex;flex-direction:column;overflow:hidden;border:1px solid #8c9a72;border-radius:18px;background:#14251e;color:#f4ead0;box-shadow:0 25px 100px #0008;font-family:inherit}.townsfolk-header{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;background:linear-gradient(100deg,#254538,#172c24);border-bottom:1px solid #51664d}.townsfolk-header small{font-size:10px;letter-spacing:2px;color:#c4b785}.townsfolk-header h2{font-size:24px;margin:3px 0 0}.townsfolk-header button{font-size:26px;line-height:1;width:36px;height:36px;border-radius:9px;border:1px solid #697e61;background:#12271f;color:#f4ead0;cursor:pointer}.townsfolk-layout{display:grid;grid-template-columns:250px minmax(0,1fr);flex:1;min-height:0}.townsfolk-layout nav{padding:14px;border-right:1px solid #405d49;overflow-y:auto;background:#102019}.townsfolk-layout nav>button{display:flex;align-items:center;width:100%;gap:9px;text-align:left;color:#e9e7cd;background:#20392c;border:1px solid #3c5840;border-radius:12px;padding:6px 8px;margin-bottom:9px;cursor:pointer;font-family:inherit}.townsfolk-layout nav>button.selected{background:#334b38;border-color:var(--resident-color);box-shadow:inset 3px 0 var(--resident-color)}.townsfolk-layout nav canvas{width:52px;height:68px;image-rendering:pixelated;flex-shrink:0}.townsfolk-layout nav span{display:grid;gap:3px;min-width:0}.townsfolk-layout nav b{font-size:16px;color:var(--resident-color)}.townsfolk-layout nav small{font-size:10px;color:#b6c1a8}.townsfolk-layout nav em{font-style:normal;font-size:11px;letter-spacing:1px;color:#e6a3b1}.townsfolk-layout main{overflow-y:auto;min-width:0;padding:22px;background:radial-gradient(ellipse at top right,#29433255,transparent 70%),#17291f}.townsfolk-profile{display:flex;gap:20px;align-items:center;padding:10px 18px 16px;border:1px solid #486047;border-radius:14px;background:linear-gradient(120deg,#2a4230,#1e3327)}.townsfolk-profile canvas{width:100px;height:125px;flex-shrink:0;image-rendering:pixelated;background:radial-gradient(ellipse at bottom,#b4d29525,transparent 70%);border-bottom:1px solid #8c9a7255}.townsfolk-profile>div{min-width:0;flex:1}.townsfolk-profile h3{font-size:29px;line-height:1.3;margin:2px 0;color:var(--resident-color)}.townsfolk-profile p{font-size:12px;color:#d3d6bf;margin:6px 0 10px}.townsfolk-profile small{color:#bfcbb0;font-size:11px}.townsfolk-hearts{display:flex;gap:4px;font-size:19px;line-height:1.2}.townsfolk-hearts span{color:#61705f}.townsfolk-hearts .filled{color:#f1a6b8;text-shadow:0 0 8px #e29bae44}.townsfolk-meter{height:5px;background:#112318;border-radius:8px;margin:8px 0 5px;overflow:hidden}.townsfolk-meter i{height:100%;display:block;background:linear-gradient(90deg,#e1ab9f,#edb9d4);border-radius:8px}.townsfolk-location{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:13px 2px;font-size:12px;color:#c7d49b}.townsfolk-location small{font-size:10px;color:#aabca2}.townsfolk-tabs{display:flex;gap:5px;border-bottom:1px solid #486047;padding-bottom:10px;margin-bottom:18px}.townsfolk-tabs button{border:1px solid #4d654e;background:#1c3327;color:#cbd6ba;border-radius:8px;padding:8px 13px;cursor:pointer;font:inherit;font-size:12px}.townsfolk-tabs button.selected{background:#dacb9d;color:#203425;border-color:#ebdda9;font-weight:700}.townsfolk-dialogue{border:1px solid #797e57;background:#2d3b28;border-radius:12px;padding:20px}.townsfolk-dialogue small{color:#dbc78c;font-size:11px}.townsfolk-dialogue p{font-size:16px;line-height:1.9;min-height:58px;margin:10px 0 18px}.townsfolk-tab-body button,.townsfolk-window footer button{font-family:inherit}.townsfolk-dialogue button,.townsfolk-quest-bottom button,.townsfolk-reward button{border:1px solid #bbce91;border-radius:7px;background:#c8d9a4;color:#1b3423;padding:8px 13px;font-size:12px;cursor:pointer;font-weight:bold}.townsfolk-note{margin:18px 0 12px;padding:14px 16px;background:#14251a;border:1px solid #3e5540;border-radius:10px}.townsfolk-note b{font-size:12px;color:#d5c48e}.townsfolk-note p{font-size:11px;line-height:1.9;color:#aebda2;margin:6px 0 0}.townsfolk-story-summary,.townsfolk-subtle{font-size:12px;color:#b9c7ae;line-height:1.7}.townsfolk-tastes{display:grid;grid-template-columns:1fr 1fr;gap:8px}.townsfolk-tastes p{display:flex;flex-direction:column;gap:6px;margin:0;padding:11px 13px;border-radius:9px;background:#21392b;border:1px solid #4c6045}.townsfolk-tastes b{font-size:12px;color:#dfbdab}.townsfolk-tastes span{font-size:11px;color:#d4d9bf;line-height:1.7}.townsfolk-gift-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.townsfolk-gift-grid button{display:flex;align-items:center;gap:11px;min-width:0;padding:11px;text-align:left;border:1px solid #627854;border-radius:10px;background:#2a432f;color:#f0e7ca;cursor:pointer}.townsfolk-gift-grid button>span{display:grid;gap:4px}.townsfolk-gift-grid img{width:38px;height:38px;object-fit:contain;image-rendering:pixelated}.townsfolk-gift-grid b{font-size:12px}.townsfolk-gift-grid small{font-size:10px;color:#becfaf}.townsfolk-gift-grid em{font-size:10px;font-style:normal;color:#f0c6b0}.townsfolk-quest{border:1px solid #526748;border-radius:11px;padding:16px;margin-bottom:12px;background:#203529}.townsfolk-quest.locked{opacity:.6}.townsfolk-quest.claimed{opacity:.65}.townsfolk-quest-heading{display:flex;justify-content:space-between;gap:8px;font-size:10px}.townsfolk-quest-heading small{color:#dbc98c}.townsfolk-quest-heading span{color:#b9d7aa}.townsfolk-quest h4{font-size:16px;margin:9px 0}.townsfolk-quest p{font-size:12px;line-height:1.8;color:#c5d0b7}.townsfolk-quest ul{padding:0;list-style:none}.townsfolk-quest li{display:flex;justify-content:space-between;gap:10px;font-size:12px;padding:7px 0;border-bottom:1px solid #44604466;color:#c3cfb9}.townsfolk-quest li.done{color:#b6e8b6}.townsfolk-quest-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}.townsfolk-quest-bottom small{font-size:10px;color:#d9c69d}.townsfolk-heirloom{text-align:center;border:1px solid #887a53;border-radius:12px;background:radial-gradient(ellipse at center,#5e69422c,transparent),#263a2a;padding:20px 15px;margin-bottom:15px}.townsfolk-heirloom>span{display:block;font-size:42px;color:#e1cc8f;text-shadow:0 0 18px #f4d28b88}.townsfolk-heirloom-icon img{width:88px;height:88px;object-fit:contain;image-rendering:pixelated;vertical-align:middle}.townsfolk-heirloom>small{font-size:10px;color:#d9c992;letter-spacing:1px}.townsfolk-heirloom h3{font-size:20px;color:#efe0b6;margin:8px 0}.townsfolk-heirloom p{font-size:12px;line-height:1.9;color:#c8d3b8;margin-bottom:0}.townsfolk-reward{display:flex;align-items:center;gap:13px;border:1px solid #516447;border-radius:9px;padding:12px;margin-top:8px;background:#243b2b}.townsfolk-reward>b{color:#f1b4c5;white-space:nowrap}.townsfolk-reward>span{flex:1;font-size:12px;color:#dddcc1}.townsfolk-reward small{display:block;color:#aebf9f;font-size:10px;margin-top:4px}.townsfolk-reward.claimed{opacity:.6}.townsfolk-empty{padding:25px 12px;font-size:13px;line-height:1.9;color:#bac7ac;grid-column:1/-1}.townsfolk-account-note{font-size:12px;color:#ffe0a6;background:#58472d;padding:12px;border-radius:8px}.townsfolk-window footer{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 20px;border-top:1px solid #486044;background:#13241b;min-height:48px}.townsfolk-window footer span{font-size:11px;line-height:1.7;color:#d2d6b5;white-space:pre-line}.townsfolk-window footer button{flex-shrink:0;padding:7px 10px;background:#28402d;color:#d9dbbf;border:1px solid #637756;border-radius:6px;cursor:pointer}.townsfolk-window button:disabled{opacity:.5;cursor:default}.townsfolk-nearby{position:fixed;bottom:225px;left:50%;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:12px;padding:12px 20px;border:1px solid #d3c392;border-radius:10px;background:#213d2bf2;color:#f3e6c1;box-shadow:0 7px 25px #0005;cursor:pointer;font:inherit}.townsfolk-nearby>span{color:#f0b3c6;font-size:24px}.townsfolk-nearby small{color:#c3d8b2;font-size:11px}.townsfolk-overlay.hidden,.townsfolk-launcher.hidden,.townsfolk-nearby.hidden{display:none!important}.townsfolk-loading{color:#ccd1b5;text-align:center;padding:40px}
@media(max-width:700px){.townsfolk-overlay{padding:6px}.townsfolk-window{height:96dvh;border-radius:12px}.townsfolk-header{padding:13px 15px}.townsfolk-header h2{font-size:20px}.townsfolk-layout{grid-template-columns:1fr;grid-template-rows:90px minmax(0,1fr)}.townsfolk-layout nav{display:flex;gap:6px;padding:7px;border-right:0;border-bottom:1px solid #405d49;overflow-x:auto;overflow-y:hidden}.townsfolk-layout nav>button{min-width:145px;margin:0;padding:3px}.townsfolk-layout nav canvas{width:38px;height:56px}.townsfolk-layout nav b{font-size:13px}.townsfolk-layout nav small{font-size:8px}.townsfolk-layout nav em{font-size:9px;letter-spacing:0}.townsfolk-layout main{padding:12px}.townsfolk-profile{gap:10px;padding:8px 10px}.townsfolk-profile canvas{width:76px;height:100px}.townsfolk-profile h3{font-size:23px}.townsfolk-profile p{font-size:10px}.townsfolk-hearts{font-size:16px;gap:3px}.townsfolk-location{display:block;padding:9px 0}.townsfolk-location small{display:block;margin-top:4px}.townsfolk-tabs{gap:4px}.townsfolk-tabs button{flex:1;padding:8px 4px;font-size:11px}.townsfolk-dialogue{padding:15px}.townsfolk-dialogue p{font-size:14px}.townsfolk-tastes{grid-template-columns:1fr}.townsfolk-gift-grid{grid-template-columns:1fr}.townsfolk-quest-bottom{align-items:flex-start;flex-direction:column}.townsfolk-window footer{padding:8px 12px}.townsfolk-window footer span{font-size:10px}.townsfolk-reward{gap:8px;padding:10px 8px}.townsfolk-reward button{padding:7px;font-size:10px}.townsfolk-launcher{right:10px;top:142px;font-size:11px;padding:6px 9px}.townsfolk-nearby{bottom:225px;max-width:90vw;white-space:nowrap;padding:9px 14px}}
.townsfolk-tool-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--heirloom-color,#bcefff);border-radius:6px;box-shadow:0 0 10px color-mix(in srgb,var(--heirloom-color,#bcefff) 40%,transparent);background:#18352a}.townsfolk-tool-icon i{position:absolute;right:-3px;bottom:-5px;font-size:13px;font-style:normal;color:var(--heirloom-color,#bcefff);text-shadow:0 1px 3px #000}.townsfolk-window footer #townsfolk-status{max-height:74px;overflow-y:auto}
.townsfolk-reward{flex-wrap:wrap}.town-pet-choices{display:flex;flex-wrap:wrap;gap:7px;flex:1 1 100%;padding:4px 0 4px 46px}.town-pet-choices button,.town-pet-collection button{border:1px solid #77936c;border-radius:9px;background:linear-gradient(145deg,#294a37,#1b3328);color:#f6ebce;padding:9px 12px;font:inherit;cursor:pointer}.town-pet-choices button:hover,.town-pet-collection button:hover,.town-pet-collection button.selected{border-color:#e8ce83;box-shadow:0 0 12px #d6c16d44}.town-pet-collection{margin:16px 0;padding:15px;border:1px solid #627b58;border-radius:13px;background:linear-gradient(145deg,#1c392b,#14271f)}.town-pet-collection h3{margin:0 0 6px;color:#f3dc9e}.town-pet-collection p{margin:4px 0 12px;color:#c3d3b8;line-height:1.55}.town-pet-collection>div{display:flex;flex-wrap:wrap;gap:8px}.town-pet-collection button:disabled,.town-pet-choices button:disabled{opacity:.55;cursor:default}
.townsfolk-reward-intro{margin:0 0 12px;padding:13px 15px;border:1px solid #7f7650;border-radius:12px;background:linear-gradient(120deg,#463d2855,#243528)}.townsfolk-reward-intro b{color:#f2d98f}.townsfolk-reward-intro p{margin:5px 0 0;color:#cbd3b8;font-size:12px}.townsfolk-reward strong{display:block}.townsfolk-reward>span small{display:block;margin-top:4px;color:#c2cdb4;line-height:1.45}
.townsfolk-personality{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;padding:12px 14px;margin:0 0 8px;border:1px solid #526748;border-radius:10px;background:#192e23;color:#cfdbbd;font-size:12px;line-height:1.6}.townsfolk-personality b{color:#e7d69d}.townsfolk-personality small{grid-column:2;color:#aeba9f;font-size:10px}.townsfolk-dialogue.story-dialogue{padding:0;overflow:hidden;border-color:#928358;background:linear-gradient(145deg,#35452d,#243628);box-shadow:0 8px 24px #0003}.townsfolk-speaker{display:flex;align-items:center;gap:10px;padding:8px 14px;background:linear-gradient(90deg,#d0bb80,#a99461);color:#283322}.townsfolk-speaker canvas{width:40px;height:48px;image-rendering:pixelated}.townsfolk-speaker span{display:grid;gap:2px;flex:1}.townsfolk-speaker span small{font-size:10px;color:#4a5037}.townsfolk-speaker span b{font-size:16px}.townsfolk-speaker>i{font-style:normal;font-size:23px;animation:townsfolk-mood 1.3s ease-in-out infinite}.story-dialogue>p{min-height:74px;padding:6px 18px 0;font-size:17px;line-height:1.9;animation:townsfolk-line-in .24s ease-out}.townsfolk-dialogue-actions{display:flex;justify-content:flex-end;gap:8px;padding:0 14px 14px}.townsfolk-dialogue-actions button{min-width:120px;box-shadow:0 2px 0 #78895d}.townsfolk-personality+.townsfolk-location{padding-top:9px}@keyframes townsfolk-mood{50%{transform:translateY(-3px) rotate(4deg)}}@keyframes townsfolk-line-in{from{opacity:.3;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.harvest-dialogue{position:fixed;inset:0;z-index:180;pointer-events:none}.harvest-dialogue.hidden{display:none!important}.harvest-dialogue-card{position:absolute;left:50%;bottom:clamp(18px,4vh,42px);transform:translateX(-50%);width:min(870px,calc(100vw - 34px));min-height:164px;padding:22px 24px 20px 166px;border:4px solid #80603d;border-radius:4px;background:linear-gradient(180deg,#fff1c5,#f2d08d);box-shadow:inset 0 0 0 3px #fff5d7,inset 0 0 0 6px #d7ad6b,0 8px 0 #3f3022,0 14px 30px #0007;color:#392b1d;pointer-events:auto;image-rendering:pixelated}.harvest-dialogue-card:before{content:"";position:absolute;inset:7px;border:1px solid #a77b4e;pointer-events:none}.harvest-dialogue-portrait{position:absolute;left:20px;bottom:58px;width:132px;height:164px;image-rendering:pixelated;filter:drop-shadow(2px 3px 0 #57442d88)}.harvest-dialogue-name{position:absolute;left:156px;top:-17px;max-width:260px;padding:5px 12px 6px;border:2px solid #775331;background:#f5dda0;box-shadow:2px 3px 0 #493722;color:#452d1e;font:bold 14px Georgia,serif}.harvest-dialogue-name span{margin-left:7px}.harvest-dialogue-line{position:relative;z-index:1;margin:2px 9px 24px 0;min-height:82px;white-space:pre-line;font:600 clamp(14px,1.9vw,20px)/1.7 Georgia,"Noto Serif Thai",serif;letter-spacing:.15px}.harvest-dialogue-next{position:absolute;z-index:2;right:17px;bottom:11px;border:0;background:transparent;color:#55402a;font:bold 13px Georgia,serif;cursor:pointer;animation:harvest-arrow 1s steps(2,end) infinite}.harvest-dialogue-next:disabled{animation:none;opacity:.55}.harvest-dialogue-next:hover{color:#9c5727}@keyframes harvest-arrow{50%{transform:translateY(3px)}}
@media(max-width:620px){.harvest-dialogue-card{bottom:14px;width:calc(100vw - 22px);min-height:146px;padding:22px 13px 17px 104px;border-width:3px}.harvest-dialogue-portrait{left:8px;bottom:53px;width:90px;height:112px}.harvest-dialogue-name{left:98px;top:-14px;padding:4px 8px;font-size:12px}.harvest-dialogue-line{min-height:76px;margin:0 2px 23px 0;font-size:14px;line-height:1.65}.harvest-dialogue-next{right:10px;bottom:7px;font-size:11px}}
.harvest-dialogue-card.has-choices{padding-bottom:82px}.harvest-dialogue-choices{position:absolute;z-index:3;left:164px;right:18px;bottom:11px;display:flex;flex-wrap:wrap;gap:7px}.harvest-dialogue-choices button{border:2px solid #8c6945;border-radius:5px;padding:6px 10px;background:#fff0c1;color:#463320;font:600 12px Georgia,"Noto Serif Thai",serif;cursor:pointer;box-shadow:2px 3px 0 #755634}.harvest-dialogue-choices button:hover{background:#ffe2a0;transform:translateY(-1px)}.harvest-dialogue-choices button:disabled{opacity:.55;cursor:default}.townsfolk-tastes{display:grid;grid-template-columns:1fr;gap:8px;padding:13px 15px;border:1px solid #657452;border-radius:10px;background:#1c3024}.townsfolk-tastes>b{font-size:13px;color:#e2cd91}.townsfolk-tastes>div{display:flex;flex-wrap:wrap;gap:7px}.townsfolk-tastes>div span{padding:6px 9px;border-radius:15px;background:#304632;color:#d8e4c5;font-size:11px}.townsfolk-tastes>p{margin:0;color:#b9c7ae;font-size:12px;line-height:1.7}
@media(max-width:620px){.harvest-dialogue-card.has-choices{padding-bottom:99px}.harvest-dialogue-choices{left:104px;right:8px;bottom:9px;gap:5px}.harvest-dialogue-choices button{padding:5px 7px;font-size:10px}}
.harvest-dialogue-choices{max-height:min(34vh,260px);overflow-y:auto;align-content:flex-end;overscroll-behavior:contain;padding:3px 5px 5px 2px}.harvest-dialogue-choices button{max-width:100%;line-height:1.45;white-space:normal;text-align:left}
body.npc-dialogue-mode> :not(#game-screen):not(#townsfolk-world-dialogue){visibility:hidden!important;pointer-events:none!important}
body.npc-dialogue-mode #game-screen> :not(#game-canvas){visibility:hidden!important;pointer-events:none!important}
body.npc-dialogue-mode #townsfolk-world-dialogue{visibility:visible!important;pointer-events:none!important;z-index:500!important}
body.npc-dialogue-mode .harvest-dialogue-card:not(.has-gift-choices){animation:dialogue-enter .22s ease-out both}
@keyframes dialogue-enter{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}
.harvest-dialogue-card{isolation:isolate;overflow:visible;border:7px solid transparent;border-radius:3px;background:linear-gradient(180deg,#fff3c9 0%,#f9dfa5 48%,#efcf88 100%) padding-box,linear-gradient(180deg,#ffe7a7 0%,#c28a4c 14%,#684027 25%,#e2b56c 34%,#80502c 62%,#492b1b 100%) border-box;box-shadow:inset 0 1px 0 #fffbe0,inset 0 -3px 0 #d5ad69,0 2px 0 #d49b54,0 6px 0 #49301e,0 10px 0 #281a13,0 18px 34px #0009}
.harvest-dialogue-card:before{inset:5px;border:2px solid #ad7943;box-shadow:inset 0 0 0 1px #fff4cd,inset 0 2px 7px #b37a3c33;opacity:.95}
.harvest-dialogue-card:after{content:"";position:absolute;z-index:0;inset:0;pointer-events:none;background:radial-gradient(circle,#fff0bd 0 1px,#93643a 1.5px 2px,transparent 2.5px) 7px 7px/12px 12px no-repeat,radial-gradient(circle,#fff0bd 0 1px,#93643a 1.5px 2px,transparent 2.5px) calc(100% - 7px) 7px/12px 12px no-repeat,radial-gradient(circle,#fff0bd 0 1px,#93643a 1.5px 2px,transparent 2.5px) 7px calc(100% - 7px)/12px 12px no-repeat,radial-gradient(circle,#fff0bd 0 1px,#93643a 1.5px 2px,transparent 2.5px) calc(100% - 7px) calc(100% - 7px)/12px 12px no-repeat}
.harvest-dialogue-name{z-index:2;top:-20px;padding:6px 15px 7px;border:3px solid #644025;background:linear-gradient(180deg,#fff2c8 0%,#f2d08d 55%,#d9ad68 100%);box-shadow:inset 0 1px 0 #fffbe6,inset 0 -2px 0 #c4904f,0 2px 0 #d19b58,0 5px 0 #4d321f,2px 7px 12px #0006;font-size:15px;letter-spacing:.2px}
.harvest-dialogue-name span{display:inline-grid;place-items:center;min-width:21px;height:21px;margin-left:7px;border-radius:50%;background:linear-gradient(#fff6d9,#d9ae6b);box-shadow:inset 0 1px #fff,0 1px 0 #9b6a3b;font-size:13px}
.harvest-dialogue-portrait{z-index:2;bottom:55px;filter:drop-shadow(0 3px 0 #5e3e2a) drop-shadow(0 8px 5px #37231577)}
.harvest-dialogue-line{z-index:1;text-shadow:0 1px 0 #fff7dc}
.harvest-dialogue-next{right:17px;bottom:10px;min-height:37px;padding:7px 13px;border:2px solid #644126;border-radius:4px;background:linear-gradient(180deg,#fff0bd,#eac77f);box-shadow:inset 0 1px 0 #fffbe4,inset 0 -2px 0 #c3924e,0 2px 0 #d1a059,0 5px 0 #51351f;color:#49311f;text-shadow:0 1px #fff2cf;font-size:12px}
.harvest-dialogue-next:active{transform:translateY(3px);box-shadow:inset 0 1px 0 #fffbe4,0 1px 0 #51351f}
.harvest-dialogue-choices button{border:2px solid #674329;border-radius:4px;background:linear-gradient(180deg,#fff1c2,#e8c47b);box-shadow:inset 0 1px #fffbe4,inset 0 -2px #c79754,0 2px #d3a15b,0 4px #533720,2px 6px 9px #0004;color:#49311f;text-shadow:0 1px #fff4d5}
.harvest-dialogue-choices button:hover{background:linear-gradient(180deg,#fff8d9,#f1d495);transform:translateY(-1px)}
@media(max-width:620px){.harvest-dialogue-card{border-width:5px;padding:22px 10px 17px 104px;box-shadow:inset 0 1px 0 #fffbe0,inset 0 -2px 0 #d5ad69,0 2px 0 #d49b54,0 5px 0 #49301e,0 8px 0 #281a13,0 13px 25px #0009}.harvest-dialogue-name{top:-16px;padding:4px 9px;font-size:12px}.harvest-dialogue-portrait{bottom:51px}.harvest-dialogue-next{right:9px;bottom:8px;min-height:30px;padding:5px 8px;font-size:10px}}
.onsen-water-shop{display:grid;grid-template-columns:minmax(150px,220px) minmax(0,1fr);gap:18px;align-items:center;padding:18px;border:1px solid #55a99a88;border-radius:14px;background:radial-gradient(ellipse at 15% 25%,#43cab344,transparent 65%),linear-gradient(135deg,#18382f,#17251f)}.onsen-water-shop>img{display:block;width:100%;max-height:205px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 8px 16px #27c2c155)}.onsen-water-shop>div{display:grid;gap:8px}.onsen-water-shop small{color:#94dccc;letter-spacing:1.5px}.onsen-water-shop h3{margin:0;color:#d7fff0}.onsen-water-shop p{font-size:13px;line-height:1.8;color:#d0dfd1;margin:2px 0}.onsen-water-shop strong{color:#ffe6a0}.onsen-water-shop label{display:flex;align-items:center;gap:8px;font-size:12px;color:#c5d4c0}.onsen-water-shop input{width:75px;padding:7px;border:1px solid #5c8873;border-radius:7px;background:#0d201a;color:#f4ead0;font:inherit}.onsen-water-shop button{justify-self:start;border:1px solid #97d9b2;border-radius:8px;padding:9px 15px;background:linear-gradient(#c2e8a8,#79bd8b);color:#163421;font:inherit;font-weight:700;cursor:pointer}.onsen-water-shop button:disabled{opacity:.55;cursor:not-allowed}@media(max-width:650px){.onsen-water-shop{grid-template-columns:1fr}.onsen-water-shop>img{height:145px}.townsfolk-tabs{flex-wrap:wrap}}
.townsfolk-quest-lock{margin:8px 0;padding:7px 10px;border-left:3px solid #d6b86f;border-radius:4px;background:#3b3524;color:#f0d895;font-size:11px;line-height:1.7}.townsfolk-quest-reward{margin:7px 0;color:#bdddb4;font-size:11px;line-height:1.7}
.harvest-dialogue-card.has-gift-choices{height:min(72vh,680px);min-height:360px;padding-bottom:14px}.harvest-dialogue-card.has-gift-choices .harvest-dialogue-line{min-height:58px;margin-bottom:8px;padding-right:8px}.harvest-dialogue-card.has-gift-choices .harvest-dialogue-choices{top:112px;bottom:12px;left:164px;right:18px;max-height:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;overflow-y:auto;overscroll-behavior:contain}.harvest-dialogue-card.has-gift-choices .harvest-dialogue-choices button{min-height:38px}
@media(max-width:620px){.harvest-dialogue-card.has-gift-choices{height:min(76vh,720px);min-height:390px;padding:20px 10px 12px 104px}.harvest-dialogue-card.has-gift-choices .harvest-dialogue-line{min-height:60px;font-size:12px;line-height:1.5}.harvest-dialogue-card.has-gift-choices .harvest-dialogue-choices{top:104px;bottom:8px;left:104px;right:8px;gap:5px;grid-template-columns:1fr}.harvest-dialogue-card.has-gift-choices .harvest-dialogue-choices button{padding:5px 7px;font-size:10px}}
.townsfolk-gift-entry{display:flex;align-items:center;gap:11px;min-width:0;padding:11px;border:1px solid #627854;border-radius:10px;background:#233a2b;color:#f0e7ca}.townsfolk-gift-entry>span{display:grid;gap:4px;min-width:0}.townsfolk-gift-entry img{width:38px;height:38px;object-fit:contain;image-rendering:pixelated}.townsfolk-gift-entry b{font-size:12px}.townsfolk-gift-entry small{font-size:10px;color:#becfaf}
.townsfolk-routine{margin-top:12px;padding:13px 15px;border:1px solid #526748;border-radius:11px;background:#192e23;color:#cfdbbd}.townsfolk-routine h4{margin:0 0 9px;color:#e7d69d;font-size:13px}.townsfolk-routine ol{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:0;padding:0;list-style:none}.townsfolk-routine li{display:flex;align-items:center;gap:10px;min-width:0;padding:8px;border:1px solid #3e5540;border-radius:8px;background:#203529}.townsfolk-routine time{flex:0 0 44px;color:#e7d69d;font-size:11px;font-variant-numeric:tabular-nums}.townsfolk-routine li span{display:grid;gap:3px;min-width:0}.townsfolk-routine li b{font-size:11px}.townsfolk-routine li small{overflow:hidden;color:#aeba9f;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.townsfolk-gift-history{display:grid;gap:9px}.townsfolk-gift-history .townsfolk-gift-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 12px}.townsfolk-gift-history .townsfolk-gift-entry>div{display:grid;gap:4px}.townsfolk-gift-history .townsfolk-gift-entry>div span{color:#b9d7aa;font-size:11px}.townsfolk-gift-history .townsfolk-gift-entry time{color:#aeba9f;font-size:10px}.townsfolk-gift-history .townsfolk-gift-entry p{grid-column:1/-1;margin:0;color:#e0d7bd;font-size:12px;line-height:1.7}.townsfolk-window>main{flex:1;min-height:0;padding:22px;overflow:auto;background:#17291f}.townsfolk-window>footer{min-height:40px}
@media(max-width:700px){.townsfolk-routine ol{grid-template-columns:1fr}.townsfolk-gift-history .townsfolk-gift-entry{grid-template-columns:1fr}.townsfolk-gift-history .townsfolk-gift-entry p{grid-column:1}}
.harvest-dialogue-card.has-gift-choices{width:min(940px,calc(100vw - 28px));height:min(78dvh,700px);min-height:430px;padding:52px 18px 18px 166px;overflow:visible}
.harvest-dialogue-card.has-gift-choices .harvest-dialogue-line{min-height:48px;height:48px;margin:0 8px 0 0;font-size:clamp(13px,1.35vw,16px);line-height:1.45;overflow:hidden}
.npc-gift-workspace{position:absolute;z-index:1;left:164px;right:18px;top:105px;bottom:16px;display:grid;grid-template-rows:78px minmax(0,1fr);gap:9px;min-height:0}
.npc-gift-offer{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:7px 9px;border:2px solid #9a7548;border-radius:6px;background:linear-gradient(100deg,#fff0c4,#f0d394);box-shadow:inset 0 0 0 2px #fff9dc,2px 3px 0 #745333}
.npc-gift-slot{display:flex;align-items:center;gap:10px;flex:1;min-width:0;height:100%;padding:5px 10px;border:2px dashed #9e8053;border-radius:5px;background:#fff9e2aa;color:#513a24;transition:background .15s,border-color .15s,transform .15s}
.npc-gift-slot.drag-over{border-color:#3f9b67;background:#e5ffd8;transform:scale(1.015)}
.npc-gift-slot.filled{border-style:solid;border-color:#659447;background:linear-gradient(110deg,#f8ffdf,#e3f2bf)}
.npc-gift-slot-icon,.npc-gift-item-icon{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:2px solid #795b37;background:#23372b;color:#f6e4ad;font-size:23px;image-rendering:pixelated;box-shadow:inset 0 0 0 2px #b6b67e}
.npc-gift-slot>span:nth-child(2){display:grid;gap:3px;min-width:0}.npc-gift-slot b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.npc-gift-slot small{font-size:10px;color:#806742}.npc-gift-slot-empty{display:grid;place-items:center;width:44px;height:44px;border:2px dashed #9e8053;border-radius:4px;color:#98794e;font-size:26px;line-height:1}
.npc-gift-offer-actions{display:flex;gap:6px;flex-shrink:0}.npc-gift-offer-actions button{min-height:40px;padding:7px 12px;border:2px solid #71502e;border-radius:5px;background:linear-gradient(#fff1c1,#eac77d);color:#4a311d;font:inherit;font-size:11px;font-weight:700;cursor:pointer;box-shadow:0 3px 0 #604227}.npc-gift-offer-actions button[data-gift-confirm]{background:linear-gradient(#d8f2ab,#9cc879)}.npc-gift-offer-actions button:disabled{filter:grayscale(.65);opacity:.5;cursor:not-allowed}
.npc-gift-bag{display:flex;flex-direction:column;min-height:0;border:2px solid #917044;border-radius:6px;background:linear-gradient(#fff0c5,#eed294);box-shadow:inset 0 0 0 2px #fff8dd,2px 3px 0 #745333;overflow:hidden}
.npc-gift-bag>header{display:flex;justify-content:space-between;align-items:center;gap:8px;flex:0 0 32px;padding:4px 9px;border-bottom:1px solid #ac8958;background:#f8e2ac;color:#51391f}.npc-gift-bag>header b{font-size:11px}.npc-gift-bag>header small{font-size:9px;color:#7e6846}
.npc-gift-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:6px;padding:7px;overflow:auto;overscroll-behavior:contain;scrollbar-color:#9a7b4e #e8c988}
.npc-gift-item{display:flex;align-items:center;gap:7px;min-width:0;min-height:54px;padding:5px 7px;border:1px solid #91764e;border-radius:4px;background:linear-gradient(#fff7dc,#ecd49c);color:#49351e;text-align:left;cursor:grab;box-shadow:0 2px 0 #b38b56;touch-action:manipulation}.npc-gift-item:hover,.npc-gift-item.selected{border-color:#547f3f;background:linear-gradient(#f4ffd5,#d9edac);transform:translateY(-1px)}.npc-gift-item:active{cursor:grabbing}.npc-gift-item-icon{flex-basis:34px;width:34px;height:34px;font-size:17px}.npc-gift-item>span:nth-child(2){display:grid;gap:3px;min-width:0;flex:1}.npc-gift-item b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.npc-gift-item small{font-size:9px;color:#806b47}.npc-gift-item kbd{padding:2px 4px;border:1px solid #c4a874;border-radius:3px;background:#fff3cf;color:#806b47;font-size:8px}
@media(max-width:620px){.harvest-dialogue-card.has-gift-choices{width:calc(100vw - 16px);height:min(82dvh,720px);min-height:470px;padding:45px 8px 8px 102px}.harvest-dialogue-card.has-gift-choices .harvest-dialogue-line{height:57px;min-height:57px;margin:0 1px;font-size:11px;line-height:1.4}.npc-gift-workspace{left:100px;right:8px;top:108px;bottom:9px;grid-template-rows:76px minmax(0,1fr);gap:6px}.npc-gift-offer{gap:5px;padding:5px}.npc-gift-slot{gap:5px;padding:4px}.npc-gift-slot-icon,.npc-gift-slot-empty{flex-basis:34px;width:34px;height:34px;font-size:18px}.npc-gift-slot b{font-size:10px}.npc-gift-slot small{font-size:8px}.npc-gift-offer-actions{gap:4px;flex-direction:column}.npc-gift-offer-actions button{min-height:29px;padding:4px 6px;font-size:9px}.npc-gift-bag>header{flex-basis:28px;padding:3px 6px}.npc-gift-bag>header b{font-size:9px}.npc-gift-bag>header small{font-size:8px}.npc-gift-items{grid-template-columns:1fr;gap:4px;padding:5px}.npc-gift-item{min-height:42px;padding:3px 5px;gap:5px}.npc-gift-item-icon{flex-basis:28px;width:28px;height:28px;font-size:14px}.npc-gift-item b{font-size:9px}.npc-gift-item small{font-size:8px}.npc-gift-item kbd{display:none}}
/* Forest story journal shares the NPC book's existing scrolling content. */
.forest-npc-role{display:flex;flex-direction:column;gap:5px;padding:10px 12px;border:1px solid #536b4b;background:#14271e;border-radius:7px;color:#ead79c;margin:10px 0}
.forest-npc-role span,.forest-next span,.forest-home-list small{display:block;color:#abc2ac;font-size:12px;line-height:1.6}
.forest-journal{display:grid;gap:14px;min-width:0;color:#d6e4d4}
.forest-journal header{padding:16px;border:1px solid #8e8450;background:linear-gradient(125deg,#263c2b,#15271e);border-radius:9px}
.forest-journal header small{color:#d4b868;font-size:10px;letter-spacing:2px}
.forest-journal h3,.forest-journal h4{margin:6px 0;color:#f1d993}
.forest-journal p{line-height:1.85;margin:6px 0;font-size:13px;overflow-wrap:anywhere}
.forest-journal progress{width:100%;height:10px;accent-color:#91ca98}
.forest-next{padding:14px;border:1px solid #8f9258;border-left:4px solid #d3b86e;background:#243626;border-radius:7px}
.forest-next>small{display:block;color:#bfcea8;line-height:1.8;margin-top:5px}
.forest-home-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.forest-home-list article,.forest-journal details{padding:11px;background:#14251d;border:1px solid #405943;border-radius:6px;min-width:0}
.forest-clue-list{display:grid;gap:8px}
.forest-journal summary{cursor:pointer;color:#e1d6a6;font-size:13px;line-height:1.7}
.townsfolk-tabs{flex-wrap:wrap}
#townsfolk-world-dialogue .harvest-dialogue-card.has-choices:not(.has-gift-choices){display:flex;flex-direction:column;max-height:calc(100dvh - 100px);padding-bottom:18px}
#townsfolk-world-dialogue .harvest-dialogue-card.has-choices:not(.has-gift-choices) .harvest-dialogue-line{min-height:0;max-height:22vh;overflow-y:auto;flex-shrink:0;margin-bottom:10px}
#townsfolk-world-dialogue .harvest-dialogue-choices{position:relative;left:auto;right:auto;bottom:auto;display:grid;align-content:start;flex-shrink:1;max-height:36vh;overflow-y:auto;overscroll-behavior:contain;grid-template-columns:repeat(2,minmax(0,1fr))}
#townsfolk-world-dialogue .harvest-dialogue-choices button{white-space:normal;overflow-wrap:anywhere;min-height:40px;line-height:1.4}
@media(max-width:620px){.forest-home-list{grid-template-columns:1fr}#townsfolk-world-dialogue .harvest-dialogue-choices{grid-template-columns:1fr;max-height:30vh}}

/* Forest proximity now identifies each resident's current routine. */
.townsfolk-nearby{max-width:min(92vw,520px);white-space:normal;text-align:left;line-height:1.4}.townsfolk-nearby small{max-width:min(72vw,390px);line-height:1.5}.forest-home-list article{display:grid;gap:4px}.forest-home-list article small+small{padding-left:7px;color:#d2c89f}
.quest-tracker{position:fixed;z-index:54;top:142px;left:max(14px,env(safe-area-inset-left));width:min(310px,calc(100vw - 28px));max-height:min(42vh,470px);overflow:hidden;color:#edf2d8;background:linear-gradient(155deg,#142d23f5,#0b1915f2);border:2px solid #9b8751;box-shadow:0 4px 0 #101611,0 12px 30px #0007,inset 0 0 0 1px #ffffff12;image-rendering:pixelated;pointer-events:auto}.quest-tracker.hidden{display:none!important}.quest-tracker-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-bottom:1px solid #75804c;background:linear-gradient(90deg,#243d2b,#172a21)}.quest-tracker-header>div{display:grid;gap:2px}.quest-tracker-header small{font:800 9px monospace;letter-spacing:.1em;color:#c9b970}.quest-tracker-header strong{font-size:13px;color:#f5e5ae}.quest-tracker-header strong i{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:4px;border:1px solid #8da277;border-radius:50%;font:800 11px system-ui;color:#b5efc1}.quest-tracker-header button{width:26px;height:26px;padding:0;color:#f1d991;background:#18291e;border:1px solid #887746;font-weight:900}.quest-tracker-list{display:grid;gap:6px;max-height:calc(min(42vh,470px) - 47px);overflow:auto;padding:7px}.quest-tracker-card{padding:7px 8px;background:#0b1713c9;border:1px solid #415d46;box-shadow:inset 0 1px #ffffff0b}.quest-tracker-card.is-ready{border-color:#93be79;background:#12291c}.quest-tracker-title{display:flex;align-items:flex-start;gap:7px}.quest-tracker-title>span{flex:none;color:#efda8d}.quest-tracker-title b{font-size:11px;line-height:1.4;color:#f3edcf}.quest-tracker-meta{display:block;margin:2px 0 5px 22px;color:#a9bea4;font-size:9px}.quest-tracker-tasks{display:grid;gap:4px}.quest-tracker-task{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;align-items:center;color:#d3dec3;font-size:9px}.quest-tracker-task span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quest-tracker-task b{font:700 9px monospace;color:#e8d796}.quest-tracker-task i{grid-column:1/-1;height:4px;overflow:hidden;background:#25372d;border:1px solid #496247}.quest-tracker-task em{display:block;height:100%;background:linear-gradient(90deg,#64b879,#d4d27e);transition:width .25s ease}.quest-tracker-ready{display:block;margin-top:5px;color:#b4e0a2;font-size:9px;line-height:1.45}.quest-tracker-empty{padding:14px 10px;text-align:center;color:#e3d9b4;font-size:11px;line-height:1.7}.quest-tracker-empty small{color:#a9bba4;font-size:9px}@media(max-width:680px){.quest-tracker{top:max(140px,calc(env(safe-area-inset-top) + 116px));left:8px;width:min(275px,calc(100vw - 16px));max-height:36vh}.quest-tracker-list{max-height:calc(36vh - 47px)}.quest-tracker-header{padding:7px 9px}.quest-tracker-header strong{font-size:12px}}
.quest-tracker{max-height:min(40vh,430px);border-color:#778d62;border-radius:12px;background:linear-gradient(155deg,#10271ff7,#091713f5);box-shadow:0 8px 28px #0008,inset 0 0 0 1px #d6e7b616;image-rendering:auto}.quest-tracker-header{padding:9px 11px;border-bottom-color:#586c4b;background:linear-gradient(110deg,#203a2b,#14261f 72%)}.quest-tracker-header small{font-size:8px;color:#c6b878}.quest-tracker-header small span{color:#94b49b;letter-spacing:0}.quest-tracker-header strong{font-size:13px;letter-spacing:.1px}.quest-tracker-header button{border-radius:8px;color:#d8e7ce;background:#1b3025;border-color:#536b4b}.quest-tracker-list{gap:5px;max-height:calc(min(40vh,430px) - 48px);padding:7px}.quest-tracker-card{position:relative;padding:8px 9px;border-radius:8px;border-color:#344b3e;background:linear-gradient(120deg,#0d1c17e8,#13231be8);box-shadow:inset 3px 0 #526846}.quest-tracker-card.is-ready{border-color:#7eae78;background:linear-gradient(110deg,#173526,#11251b);box-shadow:inset 3px 0 #a8d681,0 0 12px #83d69012}.quest-tracker-title{align-items:center;gap:8px}.quest-tracker-title>span{display:grid;place-items:center;width:19px;height:19px;border-radius:6px;background:#263c2d;color:#e8d48c;font-size:11px}.quest-tracker-card.is-ready .quest-tracker-title>span{background:#31563a;color:#c2f2a8}.quest-tracker-title b{font-size:12px}.quest-tracker-meta{margin:4px 0 7px 27px;color:#a5b7a3;font-size:9px}.quest-tracker-meta em{padding:2px 5px;border:1px solid #415b46;border-radius:99px;color:#d0c58d;font-style:normal;font-size:8px}.quest-tracker-task{font-size:10px}.quest-tracker-task b{font-size:10px}.quest-tracker-task i{height:5px;border:0;border-radius:8px;background:#26362d}.quest-tracker-task em{border-radius:8px;background:linear-gradient(90deg,#67bc82,#c6dc85);box-shadow:0 0 8px #87d59044}.quest-tracker-ready{padding:5px 7px;border-radius:6px;background:#203b29;color:#c7ebad;font-size:9px}.quest-tracker-more{display:flex;align-items:center;justify-content:space-between;width:100%;padding:7px 9px;border:1px solid #405c47;border-radius:7px;background:#172a20;color:#cee0bd;font-size:10px;cursor:pointer}.quest-tracker-more:hover{border-color:#a6bd76;background:#223927}.quest-tracker-more span{color:#e1cf8c;font-size:13px}.quest-tracker-empty{padding:13px 10px}.quest-tracker.is-compact{max-height:220px}.quest-tracker.is-compact .quest-tracker-list{max-height:170px}@media(max-width:680px){.quest-tracker{top:max(140px,calc(env(safe-area-inset-top) + 116px));left:8px;width:min(300px,calc(100vw - 16px));max-height:62vh;border-radius:10px}.quest-tracker.is-compact{max-height:218px}.quest-tracker.is-compact .quest-tracker-list{max-height:165px}.quest-tracker-list{max-height:calc(62vh - 48px)}.quest-tracker-header{padding:8px 10px}.quest-tracker-header strong{font-size:12px}}
.quest-tracker{background:linear-gradient(145deg,rgba(17,39,31,.74),rgba(8,20,17,.62));backdrop-filter:blur(14px) saturate(1.25);-webkit-backdrop-filter:blur(14px) saturate(1.25);border:1px solid rgba(183,218,167,.44);box-shadow:0 10px 28px rgba(2,9,6,.38),inset 0 1px rgba(235,255,228,.12)}.quest-tracker-header{background:linear-gradient(100deg,rgba(116,155,115,.16),rgba(10,27,21,.1));border-bottom:1px solid rgba(197,220,171,.18)}.quest-tracker-header button{background:rgba(197,227,187,.1);border-color:rgba(198,224,174,.32)}.quest-tracker-list{scrollbar-color:rgba(197,220,171,.42) transparent;scrollbar-width:thin}.quest-tracker-card{background:rgba(8,23,18,.36);border:1px solid rgba(191,216,177,.16);box-shadow:inset 0 1px rgba(255,255,255,.035)}.quest-tracker-card.is-ready{background:rgba(72,133,76,.25);border-color:rgba(173,226,142,.55);box-shadow:inset 3px 0 rgba(180,228,141,.8),0 0 18px rgba(128,209,142,.08)}.quest-tracker-title>span{background:rgba(202,224,180,.1)}.quest-tracker-card.is-ready .quest-tracker-title>span{background:rgba(162,221,143,.2)}.quest-tracker-meta em{background:rgba(190,216,169,.07);border-color:rgba(196,219,176,.2)}.quest-tracker-task i{background:rgba(190,213,180,.14)}.quest-tracker-task em{box-shadow:0 0 10px rgba(135,220,158,.28)}.quest-tracker-ready{background:rgba(143,201,133,.13)}.quest-tracker-more{background:rgba(186,219,176,.07);border-color:rgba(186,219,176,.21)}.quest-tracker-more:hover{background:rgba(186,219,176,.14);border-color:rgba(186,219,176,.42)}
.quest-tracker{border-color:rgba(216,225,174,.54);background:linear-gradient(145deg,rgba(19,42,33,.78),rgba(8,19,17,.64));box-shadow:0 14px 40px rgba(1,8,5,.42),0 0 0 1px rgba(255,238,180,.08),inset 0 1px rgba(255,255,255,.18)}.quest-tracker:before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(255,239,185,.7),transparent);pointer-events:none}.quest-tracker-header{position:relative;padding:10px 12px;background:linear-gradient(100deg,rgba(202,174,105,.12),rgba(117,165,128,.12) 52%,transparent);border-bottom-color:rgba(213,224,183,.2)}.quest-tracker-header small{color:#e3cf91;letter-spacing:.13em}.quest-tracker-header strong{font-size:14px;text-shadow:0 1px 8px rgba(235,215,145,.18)}.quest-tracker-header strong i{border-color:rgba(197,226,168,.55);background:rgba(160,201,136,.14);box-shadow:0 0 12px rgba(156,217,137,.12)}.quest-tracker-header button{border-color:rgba(220,222,174,.42);color:#f1e2a8;background:rgba(237,228,184,.09);box-shadow:inset 0 1px rgba(255,255,255,.12)}.quest-tracker-card{padding:9px 10px;border-color:rgba(204,223,192,.2);background:linear-gradient(120deg,rgba(238,255,231,.055),rgba(133,176,144,.045));transition:border-color .18s ease,background .18s ease,transform .18s ease}.quest-tracker-card:hover{transform:translateY(-1px);border-color:rgba(221,231,189,.38);background:rgba(184,216,174,.09)}.quest-tracker-card.is-ready{border-color:rgba(187,224,147,.68);background:linear-gradient(110deg,rgba(108,175,103,.22),rgba(169,196,112,.09));box-shadow:inset 3px 0 rgba(211,234,153,.9),0 0 22px rgba(139,223,145,.1)}.quest-tracker-title b{font-size:12px;color:#fff7df;text-shadow:0 1px 6px rgba(0,0,0,.35)}.quest-tracker-meta{color:#c0d1b9}.quest-tracker-meta em{color:#e7d79e;background:rgba(238,221,158,.08);border-color:rgba(238,221,158,.28)}.quest-tracker-summary{display:flex;justify-content:space-between;align-items:center;margin:2px 0 4px;color:#b8cbb7;font-size:9px}.quest-tracker-summary b{color:#e8dcae;font:700 9px monospace}.quest-tracker-detail-button{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:7px;padding:5px 7px;border:1px solid rgba(207,225,190,.2);border-radius:6px;color:#d8e5ce;background:rgba(237,255,224,.045);font-size:9px;cursor:pointer;transition:background .16s,border-color .16s}.quest-tracker-detail-button:hover{border-color:rgba(225,221,163,.5);background:rgba(229,226,170,.1)}.quest-tracker-detail-button span{color:#f0db9a;font-size:14px}.quest-detail-view{max-height:calc(min(40vh,430px) - 50px);overflow:auto;padding:12px 13px 14px;color:#ecf2df;scrollbar-width:thin;scrollbar-color:rgba(197,220,171,.42) transparent}.quest-detail-back{display:inline-flex;gap:4px;align-items:center;padding:4px 0;border:0;color:#d6e6cb;background:transparent;font-size:10px;cursor:pointer}.quest-detail-back:hover{color:#ffe5a1}.quest-detail-kicker{display:block;margin-top:10px;color:#e1cf91;font:800 8px monospace;letter-spacing:.13em;text-transform:uppercase}.quest-detail-view h3{margin:5px 0 8px;color:#fff0c2;font-size:16px;line-height:1.45}.quest-detail-story{margin:0 0 11px;padding:9px 10px;border-left:2px solid rgba(228,208,134,.66);border-radius:0 6px 6px 0;color:#d5e1ce;background:rgba(221,240,209,.055);font-size:10px;line-height:1.65}.quest-detail-info{display:grid;grid-template-columns:auto 1fr;gap:5px 11px;padding:8px 0;border-top:1px solid rgba(208,223,193,.16);border-bottom:1px solid rgba(208,223,193,.16);font-size:10px}.quest-detail-info span{color:#9fb59f}.quest-detail-info b{color:#e8e5c9;font-weight:700}.quest-detail-info b.ready{color:#bce7a2}.quest-detail-view h4{margin:12px 0 6px;color:#e4d69f;font-size:10px;letter-spacing:.03em}.quest-detail-objectives{display:grid;gap:5px}.quest-detail-objective{display:grid;grid-template-columns:17px minmax(0,1fr) auto;align-items:center;gap:6px;padding:7px 8px;border:1px solid rgba(198,219,187,.14);border-radius:6px;background:rgba(215,238,205,.04)}.quest-detail-objective>span{color:#dfcb89}.quest-detail-objective b{color:#dce7d2;font-size:10px;font-weight:600}.quest-detail-objective small{color:#e3d59d;font:700 9px monospace}.quest-detail-objective.done{border-color:rgba(166,218,149,.28);background:rgba(130,187,118,.1)}.quest-detail-objective.done>span{color:#b8e99d}.quest-detail-rewards{display:flex;flex-wrap:wrap;gap:5px}.quest-detail-rewards span{padding:5px 7px;border:1px solid rgba(224,209,139,.22);border-radius:99px;color:#eedda7;background:rgba(226,207,129,.07);font-size:9px}.quest-detail-next{margin:10px 0 0;padding:8px 9px;border:1px solid rgba(174,225,151,.28);border-radius:7px;color:#d4edbf;background:rgba(142,203,122,.09);font-size:10px;line-height:1.5}@media(max-width:680px){.quest-detail-view{max-height:calc(62vh - 50px);padding:10px}.quest-detail-view h3{font-size:15px}}
.root-gate-cutscene{position:fixed;inset:0;z-index:10050;overflow:hidden;background:#10251e;color:#fff3ca;opacity:1;transition:opacity .48s ease;isolation:isolate}
.root-gate-cutscene.hidden{display:none!important}
.root-gate-cutscene.is-ending{opacity:0}
.root-gate-cutscene canvas{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated}
.root-cutscene-vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 55%,transparent 34%,#06120fc2 100%),linear-gradient(180deg,#08151055 0%,transparent 22%,transparent 65%,#09171077 100%)}
.root-gate-cutscene>header{position:absolute;top:clamp(16px,4vh,38px);left:50%;transform:translateX(-50%);width:min(880px,calc(100% - 30px));display:flex;align-items:center;justify-content:space-between;gap:16px;pointer-events:none}
.root-gate-cutscene>header small{padding:10px 15px;border:1px solid #d6d08c88;border-radius:999px;background:#10281fd9;box-shadow:0 8px 28px #0006,inset 0 1px #fff3;font:700 11px/1.2 system-ui,sans-serif;letter-spacing:.12em;color:#e8d99d;text-shadow:0 1px 3px #000}
.root-gate-cutscene>header small i{padding:0 6px;color:#ffe3a1;font-style:normal}
.root-gate-cutscene>header button{pointer-events:auto;border:1px solid #e9d3968c;border-radius:999px;padding:9px 14px;background:#142b23d9;color:#fff1c9;box-shadow:0 5px 20px #0005;font:600 12px system-ui,sans-serif;cursor:pointer;transition:background .16s,transform .16s}
.root-gate-cutscene>header button:hover{background:#294b3b;transform:translateY(-1px)}
.root-gate-cutscene>header button b{padding-left:6px;color:#f1cf7e}
.root-cutscene-caption{position:absolute;left:50%;bottom:clamp(42px,9vh,82px);transform:translateX(-50%);width:min(680px,calc(100% - 30px));padding:15px 24px 17px;border:1px solid #d7c887aa;border-radius:14px;background:linear-gradient(135deg,#10271feF,#132a22e8);box-shadow:0 10px 42px #0008,inset 0 1px #fff3;text-align:center;backdrop-filter:blur(8px);animation:root-caption-in .55s ease both}
.root-cutscene-caption:before{content:"";position:absolute;left:50%;top:-4px;width:62px;height:2px;transform:translateX(-50%);background:#f4d990;box-shadow:0 0 14px #ffe6a2}
.root-cutscene-caption small{color:#e9d38d;font:700 10px system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.root-cutscene-caption p{margin:6px 0 0;color:#fff8e6;font:600 clamp(14px,2vw,19px)/1.55 system-ui,sans-serif;text-shadow:0 2px 8px #000;transition:opacity .18s}
.root-cutscene-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:#10231988}
.root-cutscene-progress i{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left center;background:linear-gradient(90deg,#a6d99b,#ffe39b);box-shadow:0 0 12px #dfffad;will-change:transform}
@keyframes root-caption-in{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}
@media(max-width:620px){.root-gate-cutscene>header{top:13px;width:calc(100% - 20px)}.root-gate-cutscene>header small{padding:8px 10px;font-size:9px}.root-gate-cutscene>header button{padding:8px 11px;font-size:11px}.root-cutscene-caption{bottom:clamp(28px,7vh,58px);width:calc(100% - 24px);padding:13px 14px 15px}.root-cutscene-caption p{font-size:14px}}
@media(prefers-reduced-motion:reduce){.root-gate-cutscene,.root-gate-cutscene.is-ending{transition:none}.root-cutscene-caption{animation:none}}

/* Choices follow the line in document flow, including longer social replies. */
.harvest-dialogue-card.has-choices{padding-bottom:18px}
.harvest-dialogue-card.has-choices .harvest-dialogue-line{margin-bottom:12px;min-height:64px}
.harvest-dialogue-card.has-choices .harvest-dialogue-choices{position:relative;left:auto;right:auto;bottom:auto;max-height:min(30vh,230px);align-content:flex-start}
@media(max-width:620px){.harvest-dialogue-card.has-choices{padding-bottom:12px}.harvest-dialogue-card.has-choices .harvest-dialogue-choices{max-height:26vh}}
