.town-notices{position:fixed;inset-block-start:max(72px,calc(env(safe-area-inset-top) + 10px));inset-inline-end:max(10px,env(safe-area-inset-right));z-index:10;display:grid;align-content:start;gap:6px;width:min(23rem,calc(100% - max(10px,env(safe-area-inset-left)) - max(10px,env(safe-area-inset-right))));max-block-size:42dvh;overflow:auto;padding:2px 2px 8px;scrollbar-width:thin;scrollbar-color:#9da781 transparent;pointer-events:none}dialog>.town-notices{position:absolute;inset-block:auto max(64px,calc(env(safe-area-inset-bottom) + 58px))}.town-notice{--notice-mark: #e8edda;--notice-ink: #365944;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:4px 5px 4px 9px;border:1px solid #b9aa87;border-radius:8px;background:var(--paper);color:var(--ink);box-shadow:0 4px 10px #24322024;pointer-events:auto}.town-notice[data-tone=success]{--notice-mark: #dde8ca;--notice-ink: #2c513a}.town-notice[data-tone=warning]{--notice-mark: #f1e4c2;--notice-ink: #6e4d24}.town-notice[data-tone=error]{--notice-mark: #efdfd2;--notice-ink: #80412f}.town-notice__mark{display:grid;place-items:center;align-self:start;margin-block-start:4px;width:26px;height:26px;border-radius:4px;background:var(--notice-mark);color:var(--notice-ink)}.town-notice p{margin:0;padding-block:4px;font-size:13px;line-height:1.45;overflow-wrap:anywhere}.town-notice button{display:grid;place-items:center;min-inline-size:34px;min-block-size:34px;padding:0;border:0;border-radius:5px;background:transparent;color:var(--primary)}.town-notice button:hover{background:#eee9d6}.town-notice button:focus-visible{outline:2px solid #366f60;outline-offset:-2px}@media(max-width:659px),(pointer:coarse){.town-notice button{min-inline-size:44px;min-block-size:44px}}.word-slip{--word-top: max(12px, env(safe-area-inset-top));--word-right: max(12px, env(safe-area-inset-right));--word-bottom: max(12px, env(safe-area-inset-bottom));--word-left: max(12px, env(safe-area-inset-left));position:fixed;inset:var(--word-top) var(--word-right) var(--word-bottom) var(--word-left);width:min(32rem,calc(100% - var(--word-left) - var(--word-right)));height:-moz-fit-content;height:fit-content;max-width:none;max-height:none;margin:auto;padding:0;overflow:hidden;border:1px solid #ad9e7c;border-radius:13px;background:var(--paper);color:var(--ink);box-shadow:0 16px 48px #2432204d}.word-slip::backdrop{background:#213a2c8a}.word-slip__shell{--word-gutter: clamp(13px, 4vw, 22px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;max-block-size:min(40rem,calc(100dvh - var(--word-top) - var(--word-bottom)))}.word-slip__head,.word-slip__body,.word-slip__foot{padding-inline:var(--word-gutter)}.word-slip__head{display:flex;align-items:center;gap:8px;padding-block:6px;background:#eee9d4;border-block-end:1px solid var(--edge)}.word-slip__head>svg{flex:none}.word-slip__head h2{margin:0 auto 0 0;font:700 17px/1.2 var(--title)}.word-slip__button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-block-size:36px;padding:5px 9px;border:1px solid var(--edge);border-radius:6px;background:#fff6e1;color:var(--primary);font-size:13px;font-weight:700}.word-slip__button svg{flex:none}.word-slip__button:hover{background:#ecebd4}.word-slip__button:focus-visible,.word-slip__body:focus-visible{outline:2px solid #366f60;outline-offset:-2px}.word-slip__icon{min-inline-size:36px;padding:5px}.word-slip__body{padding-block:14px 20px;overflow:auto;overflow-wrap:anywhere;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#9da781 transparent}.word-slip__term{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding-block-end:10px;border-block-end:1px solid var(--edge)}.word-slip__term h3{margin:0;font:700 clamp(26px,7vw,37px)/1.12 var(--title)}.word-slip__phonetic{margin:4px 0 0;color:var(--muted);font-size:14px}.word-slip__note{margin:10px 0 0;padding:8px 9px;border:1px solid #ded1ac;border-radius:6px;background:#f5eed8;font-size:14px;line-height:1.5}.word-slip__note strong,.word-slip__translation strong{margin-inline-end:7px;color:var(--primary);font-size:12px}.word-slip__body h4{margin:12px 0 5px;font:700 16px/1.2 var(--title)}.word-slip__definitions,.word-slip__collocations{margin:0;padding:0;list-style:none}.word-slip__definitions>li{padding:7px 0;border-block-end:1px dashed var(--edge)}.word-slip__meaning{margin:0;font-size:15px;line-height:1.5}.word-slip__meaning span{display:inline-block;margin-inline-end:7px;padding:1px 5px;border-radius:3px;background:#e8edd7;font-size:12px;font-weight:700}.word-slip__example{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;-moz-column-gap:8px;column-gap:8px;padding:4px 0 0 8px;border-inline-start:1px solid #c3cda9;margin-block-start:6px}.word-slip__example>p{align-self:center;margin:0;font-size:14px;line-height:1.48}.word-slip__example>div{grid-column:1 / -1}.word-slip__translate{background:transparent;font-size:12px}.word-slip__translate[aria-disabled=true]{color:var(--muted);cursor:default}.word-slip__translation,.word-slip__error{margin:4px 0 0;padding:5px 7px;background:#ebefdc;border-radius:4px;color:var(--ink);font-size:13px;line-height:1.5}.word-slip__error{color:#7f422d;background:#f6e9dd}.word-slip__collocations{display:flex;flex-wrap:wrap;gap:5px}.word-slip__collocations li{padding:4px 7px;border-radius:4px;background:#f1ead5;line-height:1.4;font-size:13px}.word-slip__foot{display:grid;justify-items:end;gap:5px;padding-block:8px;border-block-start:1px solid var(--edge);background:#fcf2dc}.word-slip__foot .word-slip__error{justify-self:stretch;margin:0}.word-slip__save{background:var(--primary);color:var(--paper);border-color:var(--primary)}.word-slip__save:hover{background:#3e644b}.word-slip__save[aria-disabled=true]{background:#e5ebd5;color:var(--ink);border-color:#c0cbaa;cursor:default}@media(max-width:659px){.word-slip{inset:auto 0 0;width:100%;margin:0;border-inline:0;border-block-end:0;border-radius:13px 13px 0 0}.word-slip__shell{max-block-size:min(40rem,calc(100dvh - var(--word-top)));padding-block-end:env(safe-area-inset-bottom);padding-inline:env(safe-area-inset-left) env(safe-area-inset-right)}.word-slip__save{width:100%}}@media(max-width:659px),(pointer:coarse){.word-slip__button{min-block-size:44px}.word-slip__icon{min-inline-size:44px}.word-slip__meaning,.word-slip__example>p{font-size:16px}}.chat-suggestions:has(>.reply-notes){display:flex;flex-direction:column;min-block-size:0;max-block-size:min(11.5rem,29dvh);margin:0 12px 6px;overflow:hidden}.reply-notes{display:flex;flex-direction:column;min-block-size:0;overflow:hidden;border:1px solid var(--edge);border-radius:8px;background:#fff7e5;color:var(--ink)}.reply-notes__head{display:flex;flex:none;align-items:center;gap:7px;padding-inline:10px 4px;min-block-size:34px;background:#ecebd7;border-block-end:1px solid #d6d6b9}.reply-notes__head>svg{flex:none}.reply-notes__head h4{margin:0;font:700 15px/1.2 var(--title)}.reply-notes__head>span{margin-inline-start:auto;color:var(--muted);font-size:11px}.reply-notes__close,.reply-notes__fill{display:inline-flex;align-items:center;justify-content:center;gap:4px;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--primary)}.reply-notes__close{min-inline-size:34px;min-block-size:32px}.reply-notes__close:hover{background:#e0e4cc}.reply-notes__list{margin:0;padding:0 9px;list-style:none;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#9da781 transparent}.reply-notes__list:focus-visible{outline:2px solid #366f60;outline-offset:-2px}.reply-notes__line{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:6px 9px;padding:7px 0}.reply-notes__line+.reply-notes__line{border-block-start:1px dashed #d7cbb0}.reply-notes__copy{overflow-wrap:anywhere}.reply-notes__level{display:inline-flex;align-items:center;gap:5px;border-radius:3px;padding:2px 6px;background:#e5ebd5;color:#31533e;font-size:11px;font-weight:750}.reply-notes__level:before{content:"";width:5px;height:5px;background:currentColor}.reply-notes__level[data-level=medium]{background:#f0e4c5;color:#624a21}.reply-notes__level[data-level=advanced]{background:#f1e1d3;color:#77442d}.reply-notes__phrase{margin:3px 0 0;color:var(--ink);font-size:15px;line-height:1.35;white-space:pre-wrap}.reply-notes__translation{margin:3px 0 0;color:var(--muted);font-size:13px;line-height:1.38}.reply-notes__translation strong{margin-inline-end:6px;color:var(--primary);font-size:11px}.reply-notes__fill{min-block-size:32px;padding:3px 8px;background:#e8edd8;border-color:#bfc9a7;font-size:13px;font-weight:700}.reply-notes__fill:hover{background:#dbe5c8}.reply-notes button:focus-visible{outline:2px solid #366f60;outline-offset:-2px}@media(max-width:659px),(pointer:coarse){.reply-notes__close,.reply-notes__fill{min-inline-size:44px;min-block-size:44px}.reply-notes__phrase{font-size:16px}}html[lang=zh-Hant]{font-family:PingFang TC,Microsoft JhengHei,Noto Sans CJK TC,system-ui,sans-serif;--title: Georgia, "Songti TC", "Noto Serif CJK TC", serif}.ui-language{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.town-sheet>.ui-language{margin-block-start:12px}.ui-language button{min-block-size:44px;padding-inline:13px;border:1px solid var(--edge);border-radius:7px;background:var(--paper);color:var(--ink);font-size:14px;font-weight:700}.ui-language button:hover{border-color:var(--primary)}.ui-language button[aria-pressed=true]{color:var(--paper);background:var(--primary);border-color:var(--primary)}.ui-language button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.traveler-entry{min-height:100dvh;display:grid;place-items:center;padding:clamp(12px,4vw,52px);background:linear-gradient(#253f3270,#283d2e9e),#81965d url(/assets/town/plaza-map.png) center/cover no-repeat;image-rendering:pixelated}.traveler-registration{width:min(100%,624px);color:var(--ink);background:#faf5e7;border:1px solid #cdbf9b;border-radius:14px;box-shadow:0 14px 44px #25382f57}.traveler-registration__masthead{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:11px clamp(12px,3.7vw,31px);background:#f2ead6;border-bottom:1px solid var(--edge);border-radius:13px 13px 0 0}.traveler-brand{gap:7px}.traveler-brand>strong{font:700 23px/1 Georgia,serif;letter-spacing:-.035em}.traveler-brand>span{width:28px;height:28px}.traveler-registration .ui-language{gap:4px}.traveler-registration .ui-language button{min-height:36px;padding-inline:8px;font-size:12px}.traveler-registration__body{padding:clamp(15px,4vw,32px)}.traveler-registration__body h1{margin:0;font:700 clamp(27px,4vw,39px)/1.13 var(--title);letter-spacing:-.025em}.traveler-registration__body p{margin:7px 0 0;color:var(--muted);font-size:14px;line-height:1.55}.traveler-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(6px,1.7vw,13px);margin:clamp(14px,3vw,24px) 0 0;padding:0;border:0;min-width:0}.traveler-choice{position:relative;display:grid;color:var(--ink);cursor:pointer;border:1px solid #d0c29f;border-radius:9px}.traveler-choice input{position:absolute;z-index:1;top:8px;right:8px;margin:0;accent-color:var(--primary);width:15px;height:15px;cursor:inherit}.traveler-choice__art{--pedestal:#e4eac7;--pedestal-base:#d3deb4;display:grid;place-items:center;min-height:133px;border-radius:8px 8px 0 0;background:linear-gradient(to bottom,var(--pedestal) 75%,var(--pedestal-base) 75%)}.traveler-choice[data-style=red-scarf] .traveler-choice__art{--pedestal:#e9dece;--pedestal-base:#e4cbb8}.traveler-choice[data-style=blue-headband] .traveler-choice__art{--pedestal:#e1e8dd;--pedestal-base:#cbdacf}.traveler-choice__sprite{width:56px;height:112px;display:block;background-size:400% 300%;background-repeat:no-repeat;image-rendering:pixelated}.traveler-choice__name{display:grid;place-items:center;min-height:41px;padding:5px 3px;text-align:center;border-top:1px solid #d0c29f;border-radius:0 0 8px 8px;background:#f7f0dd;font-weight:750;font-size:13px}.traveler-choice:hover,.traveler-choice:has(input:checked){border-color:#58775e}.traveler-choice:has(input:checked) .traveler-choice__name{background:#dfe9d1;color:#254832}.traveler-choice:has(input:focus-visible){outline:2px solid var(--primary);outline-offset:2px}.traveler-choice input:focus-visible{outline:none}.traveler-registration__footer{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:clamp(15px,3vw,23px);padding-top:12px;border-top:1px solid var(--edge)}.traveler-registration__footer p{margin:0;font-size:12px}.traveler-registration__footer .guide-primary{min-height:44px;padding-inline:15px}@media(max-width:480px){.traveler-registration .ui-language button{min-height:40px}.traveler-brand>strong{font-size:21px}.traveler-choice input{top:6px;right:6px}.traveler-choice__art{min-height:115px}.traveler-choice__sprite{width:48px;height:96px}.traveler-choice__name{font-size:12px}}.learning-journal{--rule: #ded3b8;--faded: #f3ead5;--sage: #e5ebd5;--cream: #fff7e5;position:fixed;width:min(1040px,calc(100% - 40px));height:min(730px,calc(100dvh - 54px));max-width:none;max-height:none;margin:auto;padding:0;overflow:hidden;background:var(--paper);color:var(--ink);border:1px solid #ad9e7c;border-radius:16px;box-shadow:0 18px 65px #24322052}.learning-journal::backdrop{background:#213a2c8a}.journal-shell{display:grid;grid-template-rows:auto minmax(0,1fr);height:100%}.journal-top{display:flex;padding:15px 22px;gap:12px;align-items:center;background:#fcf2dc;border-bottom:1px solid var(--rule)}.journal-title-mark{display:grid;place-items:center;width:43px;height:43px;background:var(--sage);border:1px solid #ced8b6;border-radius:9px}.journal-top h2{margin:0;font:700 25px/1.15 var(--title)}.journal-top p{margin:4px 0 0;color:var(--muted);font-size:11px;letter-spacing:.08em}.journal-close{margin-left:auto}.journal-workspace{min-height:0;min-width:0;display:grid;grid-template-columns:210px minmax(0,1fr)}.journal-rail{display:flex;flex-direction:column;min-height:0;overflow:auto;padding:16px 12px;background:#f5edda;border-right:1px solid var(--rule)}.journal-navigation{display:grid;gap:5px}.journal-navigation button{min-width:0;min-height:53px;display:flex;align-items:center;gap:10px;padding:7px 10px;background:transparent;color:var(--ink);border:1px solid transparent;border-radius:7px;text-align:left}.journal-navigation button:hover{background:#ece9d7}.journal-navigation button[aria-current]{background:var(--sage);border-color:#c5d1ad}.journal-navigation svg{flex:none}.journal-navigation strong,.journal-navigation small{display:block}.journal-navigation strong{font-size:14px}.journal-navigation small{margin-top:4px;color:var(--muted);font-size:10px}.journal-navigation b{margin-left:auto;display:grid;place-items:center;min-width:19px;height:19px;padding:0 3px;border-radius:5px;background:#ead6a0;color:#654520;font-size:10px}.journal-rail .journal-voice{align-self:start;margin:13px 0 0 4px}.journal-voice[aria-current]{text-decoration:underline;text-underline-offset:4px}.journal-rail-art{flex:0 0 62px;margin:auto 6px 1px;border:1px solid #d3c7ad;border-radius:6px;background:url(/assets/town/restaurant.png) center 72%/cover;image-rendering:pixelated;opacity:.82}.journal-main{overflow:auto;min-width:0;padding:24px 28px 32px;scrollbar-color:#aea987 transparent;scrollbar-width:thin}.journal-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:0 0 20px}.journal-heading h3{margin:0;font:700 clamp(22px,2.45vw,30px)/1.16 var(--title)}.journal-heading p{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.journal-button,.journal-icon,.journal-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;color:var(--primary);font:inherit;font-weight:700;font-size:13px;line-height:1.25;border:1px solid #cfc3a6;border-radius:7px;background:var(--cream);min-height:39px;padding:7px 11px}.journal-button svg,.journal-link svg{flex:none}.journal-icon{width:39px;flex:none;padding:4px}.journal-button:hover,.journal-icon:hover{background:var(--faded)}.journal-button--primary{border-color:var(--primary);background:var(--primary);color:#fffaf0}.journal-button--primary:hover{background:#3e644b}.journal-link{border-color:transparent;background:transparent;padding-inline:6px}.journal-link:hover{background:var(--sage)}.journal-actions-row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.journal-empty,.journal-error{padding:20px;border:1px dashed #cdbb94;border-radius:9px;background:var(--cream)}.journal-empty{text-align:center;padding:34px 20px}.journal-empty h3{margin:9px 0 4px;font:700 21px var(--title)}.journal-empty p,.journal-loading{margin:5px 0 16px;font-size:13px;color:var(--muted);line-height:1.6}.journal-empty .journal-actions-row{justify-content:center}.journal-error{margin:0 0 12px;padding:8px 12px;font-size:13px;color:#7f422d;background:linen}.journal-label{display:inline-flex;gap:4px;align-items:center;flex:none;padding:4px 7px;border-radius:4px;background:#eee5cc;color:#6a542f;font-size:11px;font-weight:700}.review-start{display:grid;grid-template-columns:minmax(0,1fr) 43%;min-height:272px;overflow:hidden;background:#f1eed9;border:1px solid #d8d0ac;border-radius:10px}.review-start__copy{padding:clamp(22px,3.1vw,40px);align-self:center}.review-start h4{font:700 clamp(23px,3vw,34px)/1.22 var(--title);margin:12px 0 8px}.review-start p{margin:0 0 21px;font-size:13px;line-height:1.65;color:var(--muted)}.review-start img{width:100%;height:100%;min-height:0;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;image-rendering:pixelated}.review-progress{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:700;color:var(--muted);margin:0 0 12px}.review-progress progress{flex:1;min-width:20px;height:10px;accent-color:#59724d}.review-paper{background:var(--cream);border:1px solid var(--rule);border-radius:10px;padding:clamp(17px,3.4vw,35px);text-align:center}.review-term{display:flex;justify-content:center;align-items:center;gap:12px}.review-term h4{margin:0;font:700 clamp(30px,5vw,52px)/1.13 var(--title);min-width:0;overflow-wrap:anywhere}.review-phonetic{margin:7px 0 0;font-size:13px;color:var(--muted)}.review-recall,.review-note{font-size:14px;color:var(--muted);margin:17px 0 21px}.review-paper .entry-meanings{max-width:545px;margin:18px auto;text-align:left}.review-grades{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:480px;margin:16px auto 3px}.review-grades button[data-grade=fail]{background:#f6e6df;color:#8a4031;border-color:#dbc0af}.review-grades button[data-grade=hard]{background:#f6ecd3;color:#69491f;border-color:#d9c7a4}.review-grades button[data-grade=success],.review-grades button[data-grade=easy]{background:var(--sage);border-color:#bccea7}.review-grades button:hover{filter:brightness(.96)}.review-skip{display:flex;margin:8px auto 0}.entry-export,.entry-filters{display:flex;align-items:center;gap:8px;margin:0 0 12px}.entry-export{flex-wrap:wrap;padding:10px;border:1px solid var(--rule);border-radius:7px;background:var(--faded);font-size:13px}.entry-export label{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.learning-journal select,.entry-search,.entry-note textarea{min-width:0;min-height:39px;font:inherit;font-size:13px;color:var(--ink);border:1px solid #cfc3a6;border-radius:6px;background:#fffdf3;padding:6px 9px}.entry-filters select{max-width:32%}.entry-search{flex:1;display:flex;align-items:center;gap:8px}.entry-search:focus-within{outline:2px solid #366f60}.entry-search input{min-width:0;width:100%;background:none;outline:none;border:0;padding:0;font:inherit}.entry-layout{display:grid;grid-template-columns:minmax(150px,1fr) minmax(0,1.7fr);align-items:start;gap:13px}.entry-list{overflow:hidden;border:1px solid var(--rule);border-radius:8px}.entry-list button{min-width:0;width:100%;min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:4px;padding:8px 10px;background:#fff8e8;color:var(--ink);border:0;border-bottom:1px solid var(--rule);text-align:left}.entry-list button:last-child{border-bottom:0}.entry-list button:hover,.entry-list button[aria-current]{background:var(--sage)}.entry-list button:focus-visible{outline-offset:-3px}.entry-list button>span:first-child{min-width:0}.entry-list strong,.entry-list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entry-list strong{font:700 18px var(--title)}.entry-list small{color:var(--muted);font-size:11px;margin-top:3px}.entry-detail{border:1px solid var(--rule);border-radius:8px;background:var(--cream);padding:16px;overflow-wrap:anywhere}.entry-detail .entry-back{display:none}.entry-detail header{display:flex;justify-content:space-between;align-items:start;gap:9px}.entry-detail h4{font:700 clamp(25px,3vw,34px)/1.17 var(--title);margin:0}.entry-detail header p{margin:4px 0 0;font-size:13px;color:var(--muted)}.entry-meanings{font-size:14px;line-height:1.55;margin:13px 0 0;overflow-wrap:anywhere}.entry-meanings>div+div{margin-top:7px}.entry-meanings div>span{margin-right:7px;font-size:11px;font-weight:700;color:var(--muted)}.entry-meanings p{margin:3px 0;font-size:13px;color:var(--muted)}.entry-meanings blockquote{margin:10px 0;background:#ecefdb;border:1px solid #d5dcc0;padding:8px 10px;border-radius:5px}.entry-meta{margin:6px 0;font-size:12px;color:var(--muted)}.entry-tags{display:flex;flex-wrap:wrap;gap:5px}.entry-note{margin:13px 0 0;padding-top:10px;border-top:1px solid var(--rule);font-size:13px}.entry-note label,.entry-note strong{display:block;margin-bottom:4px;font-weight:700}.entry-note p{margin:0;white-space:pre-wrap}.entry-note textarea{width:100%;margin:2px 0 7px;resize:vertical}.entry-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px}.entry-delete{margin-left:auto;color:#853f2d}.entry-delete-panel{padding:9px;background:#faeae1;border-radius:6px;font-size:13px;color:#783e2c}.entry-delete-panel p{margin:0 0 7px}.journal-button.is-danger{color:#823522;border-color:#ceaa98}.journal-segment{display:flex;padding:3px;background:#efe6cf;border:1px solid var(--rule);border-radius:7px}.journal-segment button{border:0;background:transparent;color:var(--muted);padding:5px 10px;min-height:30px;font-weight:700;border-radius:4px}.journal-segment button[aria-pressed=true]{background:var(--primary);color:#fffaf0}.journal-metrics{margin:0 0 18px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:#faf2dd;border:1px solid var(--rule);border-radius:8px;overflow:hidden}.journal-metrics>div{border-bottom:1px solid var(--rule);padding:12px 14px}.journal-metrics>div:nth-child(3n+2){border-inline:1px solid var(--rule)}.journal-metrics>div:nth-last-child(-n+3){border-bottom:0}.journal-metrics dt{font-size:12px;color:var(--muted)}.journal-metrics dd{margin:5px 0 0;font:700 clamp(18px,2.6vw,25px) var(--title)}.journal-chart{padding:12px 14px;border:1px solid var(--rule);border-radius:8px;background:var(--cream)}.journal-chart header{display:flex;justify-content:space-between;align-items:center;gap:8px}.journal-chart h4,.journal-section h4{margin:0;font:700 17px var(--title)}.journal-bars{margin-top:12px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.journal-bars div{height:123px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:3px;font-size:11px;color:var(--muted)}.journal-bars i{width:clamp(16px,4vw,42px);background:#718762;border-radius:4px 4px 1px 1px}.journal-bars small{font-size:10px}.journal-section{margin:16px 0 0}.journal-section p{margin:7px 0;font-size:13px;color:var(--muted)}.journal-ledger,.practice-ledger{list-style:none;margin:6px 0 0;padding:0}.journal-ledger li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 2px;border-bottom:1px solid var(--rule);font-size:13px}.journal-ledger small{display:block;margin-top:4px;color:var(--muted)}.practice-ledger{border-top:1px solid var(--rule)}.practice-ledger li{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 1px;border-bottom:1px solid var(--rule)}.practice-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:7px;background:var(--sage);color:var(--primary)}.practice-ledger h4{margin:0;font:700 18px var(--title)}.practice-ledger p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.practice-location{display:flex;align-items:center;gap:4px}.journal-voice-panel>div{max-width:100%}@media(max-width:700px){.learning-journal{top:0;right:0;bottom:0;left:0;width:100%;height:100dvh;margin:0;border:0;border-radius:0}.journal-top{padding:8px 13px 8px 14px;padding-top:max(8px,env(safe-area-inset-top))}.journal-top h2{font-size:21px}.journal-title-mark{width:37px;height:37px}.journal-title-mark svg{width:21px}.journal-workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.journal-rail{display:block;overflow:visible;border-right:0;border-bottom:1px solid var(--rule);padding:6px 9px 0}.journal-navigation{grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}.journal-navigation button{position:relative;flex-direction:column;justify-content:center;min-height:48px;padding:3px 0;gap:3px}.journal-navigation svg{width:16px;height:16px}.journal-navigation strong{font-size:12px}.journal-navigation small,.journal-rail-art{display:none}.journal-navigation b{position:absolute;right:max(3px,12% - 5px);top:2px}.journal-rail .journal-voice{display:flex;margin:0 0 0 auto;min-height:32px;font-size:11px}.journal-main{padding:17px 14px max(23px,env(safe-area-inset-bottom))}.journal-heading{margin-bottom:15px}.journal-button,.journal-icon,.journal-link{min-height:44px}.review-start{grid-template-columns:minmax(0,1fr);min-height:auto}.review-start__copy{padding:19px}.review-start img{height:128px}.review-start p{margin-bottom:13px}.entry-filters{flex-wrap:wrap}.entry-search{flex:1 0 100%}.entry-filters select{flex:1;max-width:none}.entry-search input,.entry-note textarea{font-size:16px}.entry-layout{display:block}.entry-layout:not([data-picked]) .entry-detail,.entry-layout[data-picked] .entry-list{display:none}.entry-detail .entry-back{display:inline-flex;margin:-9px 0 5px -6px}.journal-metrics>div{padding:9px}.journal-segment button{min-height:37px}}.journal-voice-settings{background:var(--cream);padding:17px;border:1px solid var(--rule);border-radius:8px}.journal-voice-settings>p{margin:0 0 16px;color:var(--muted);font-size:13px}.journal-voice-settings fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:12px;border:1px solid var(--rule);border-radius:6px}.journal-voice-settings legend{font-size:14px;font-weight:700}.journal-voice-settings label{color:var(--muted);font-size:13px;font-weight:600}.journal-voice-settings select,.journal-voice-settings input[type=range]{display:block;width:100%;margin:5px 0 0;accent-color:var(--primary)}.journal-voice-settings output{float:right}.journal-voice-settings .journal-local-voice{display:flex;gap:7px;align-items:center;min-height:44px;margin:5px 0}.journal-local-voice input{accent-color:var(--primary)}.practice-transcript{grid-column:2 / -1;font-size:13px}.practice-transcript summary{width:-moz-fit-content;width:fit-content;padding:8px 0;cursor:pointer;color:var(--primary);font-weight:700}.practice-transcript__turns{max-height:260px;overflow:auto;background:var(--cream);border:1px solid var(--rule);border-radius:7px;padding:4px 13px}.practice-transcript__turns p{display:grid;gap:3px;padding:7px 0;margin:0;border-bottom:1px solid var(--rule);overflow-wrap:anywhere}.practice-transcript__turns p:last-child{border-bottom:0}.practice-transcript__turns span{color:var(--ink);font-size:14px}@media(max-width:700px){.practice-transcript{grid-column:1 / -1}.practice-transcript summary{padding-block:13px}}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.-bottom-5{bottom:-1.25rem}.-bottom-6{bottom:-1.5rem}.-top-2{top:-.5rem}.-top-8{top:-2rem}.bottom-4{bottom:1rem}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-20{top:5rem}.top-3\/4{top:75%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-6{margin-top:1.5rem}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-0{height:0px}.h-1{height:.25rem}.h-10{height:2.5rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-3\/4{height:75%}.h-4{height:1rem}.h-8{height:2rem}.h-full{height:100%}.w-0{width:0px}.w-10{width:2.5rem}.w-14{width:3.5rem}.w-2{width:.5rem}.w-3{width:.75rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-full{width:100%}.min-w-0{min-width:0px}.max-w-4xl{max-width:56rem}.max-w-\[75\%\]{max-width:75%}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes ping{75%,to{transform:scale(2);opacity:0}}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.rounded-tl-sm{border-top-left-radius:.125rem}.rounded-tr-sm{border-top-right-radius:.125rem}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-t{border-top-width:1px}.border-amber-200{--tw-border-opacity:1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-black\/5{border-color:#0000000d}.border-blue-300{--tw-border-opacity:1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-gray-400{--tw-border-opacity:1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208 / var(--tw-border-opacity, 1))}.border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170 / var(--tw-border-opacity, 1))}.border-orange-300{--tw-border-opacity:1;border-color:rgb(253 186 116 / var(--tw-border-opacity, 1))}.border-pink-300{--tw-border-opacity:1;border-color:rgb(249 168 212 / var(--tw-border-opacity, 1))}.border-purple-300{--tw-border-opacity:1;border-color:rgb(216 180 254 / var(--tw-border-opacity, 1))}.border-purple-400{--tw-border-opacity:1;border-color:rgb(192 132 252 / var(--tw-border-opacity, 1))}.border-sky-600{--tw-border-opacity:1;border-color:rgb(2 132 199 / var(--tw-border-opacity, 1))}.border-teal-300{--tw-border-opacity:1;border-color:rgb(94 234 212 / var(--tw-border-opacity, 1))}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.border-white\/30{border-color:#ffffff4d}.border-yellow-500{--tw-border-opacity:1;border-color:rgb(234 179 8 / var(--tw-border-opacity, 1))}.bg-\[\#0984e3\]{--tw-bg-opacity:1;background-color:rgb(9 132 227 / var(--tw-bg-opacity, 1))}.bg-\[\#74b9ff\]{--tw-bg-opacity:1;background-color:rgb(116 185 255 / var(--tw-bg-opacity, 1))}.bg-\[\#a8e6cf\]{--tw-bg-opacity:1;background-color:rgb(168 230 207 / var(--tw-bg-opacity, 1))}.bg-\[\#dfe6e9\]{--tw-bg-opacity:1;background-color:rgb(223 230 233 / var(--tw-bg-opacity, 1))}.bg-\[\#fd79a8\]{--tw-bg-opacity:1;background-color:rgb(253 121 168 / var(--tw-bg-opacity, 1))}.bg-\[\#fdd835\]{--tw-bg-opacity:1;background-color:rgb(253 216 53 / var(--tw-bg-opacity, 1))}.bg-\[\#ffe4c7\]{--tw-bg-opacity:1;background-color:rgb(255 228 199 / var(--tw-bg-opacity, 1))}.bg-\[\#ffeaa7\]{--tw-bg-opacity:1;background-color:rgb(255 234 167 / var(--tw-bg-opacity, 1))}.bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-black\/60{background-color:#0009}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-50\/50{background-color:#eff6ff80}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-orange-400{--tw-bg-opacity:1;background-color:rgb(251 146 60 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity:1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-pink-100{--tw-bg-opacity:1;background-color:rgb(252 231 243 / var(--tw-bg-opacity, 1))}.bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-purple-200\/50{background-color:#e9d5ff80}.bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-sky-500{--tw-bg-opacity:1;background-color:rgb(14 165 233 / var(--tw-bg-opacity, 1))}.bg-teal-100{--tw-bg-opacity:1;background-color:rgb(204 251 241 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/20{background-color:#fff3}.bg-white\/80{background-color:#fffc}.bg-white\/90{background-color:#ffffffe6}.bg-yellow-400{--tw-bg-opacity:1;background-color:rgb(250 204 21 / var(--tw-bg-opacity, 1))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-amber-50{--tw-gradient-from:#fffbeb var(--tw-gradient-from-position);--tw-gradient-to:rgb(255 251 235 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-500{--tw-gradient-from:#3b82f6 var(--tw-gradient-from-position);--tw-gradient-to:rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-50{--tw-gradient-from:#f0fdf4 var(--tw-gradient-from-position);--tw-gradient-to:rgb(240 253 244 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-500{--tw-gradient-from:#f97316 var(--tw-gradient-from-position);--tw-gradient-to:rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-pink-200{--tw-gradient-from:#fbcfe8 var(--tw-gradient-from-position);--tw-gradient-to:rgb(251 207 232 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-sky-100{--tw-gradient-from:#e0f2fe var(--tw-gradient-from-position);--tw-gradient-to:rgb(224 242 254 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-sky-500{--tw-gradient-from:#0ea5e9 var(--tw-gradient-from-position);--tw-gradient-to:rgb(14 165 233 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.to-emerald-50{--tw-gradient-to:#ecfdf5 var(--tw-gradient-to-position)}.to-green-100{--tw-gradient-to:#dcfce7 var(--tw-gradient-to-position)}.to-indigo-600{--tw-gradient-to:#4f46e5 var(--tw-gradient-to-position)}.to-pink-300{--tw-gradient-to:#f9a8d4 var(--tw-gradient-to-position)}.to-red-500{--tw-gradient-to:#ef4444 var(--tw-gradient-to-position)}.to-yellow-50{--tw-gradient-to:#fefce8 var(--tw-gradient-to-position)}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pt-3{padding-top:.75rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-6xl{font-size:3.75rem;line-height:1}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.italic{font-style:italic}.leading-relaxed{line-height:1.625}.text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-blue-100{--tw-text-opacity:1;color:rgb(219 234 254 / var(--tw-text-opacity, 1))}.text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity:1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-pink-600{--tw-text-opacity:1;color:rgb(219 39 119 / var(--tw-text-opacity, 1))}.text-purple-800{--tw-text-opacity:1;color:rgb(107 33 168 / var(--tw-text-opacity, 1))}.text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-900{--tw-text-opacity:1;color:rgb(113 63 18 / var(--tw-text-opacity, 1))}.opacity-30{opacity:.3}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-yellow-400{--tw-ring-opacity:1;--tw-ring-color:rgb(250 204 21 / var(--tw-ring-opacity, 1))}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#293c2d;background:#e9e5d8;font-synthesis:none;--ink:#274533;--muted:#596b55;--paper:#fffaf0;--edge:#d9ceb3;--primary:#2c513a;--title:Georgia,"Songti SC","Noto Serif CJK SC",serif}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.55}button:focus-visible,input:focus-visible,.chat-compose textarea:focus-visible,summary:focus-visible{outline:3px solid #366f60;outline-offset:3px}[hidden]{display:none!important}.town-shell{display:flex;flex-direction:column;height:100dvh;min-height:450px;background:#83a158}.town-header{position:relative;z-index:8;display:flex;align-items:center;gap:24px;min-height:61px;padding:8px clamp(12px,2.35vw,35px);background:#fffaf0;border-bottom:1px solid #c8b997;color:var(--ink)}.town-brand,.town-header nav,.town-header__meta{display:flex;align-items:center;gap:12px}.town-brand>span{display:grid;place-items:center;width:31px;height:31px;background:#e7ebd4;border-radius:7px;flex:none}.town-brand h1{margin:0;font:700 clamp(21px,2vw,30px)/1 var(--title);letter-spacing:-.045em}.town-header nav button,.icon-button{border:0;background:transparent;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 11px;font-weight:650;font-size:14px;border-radius:7px;min-height:36px}.town-header nav button:hover,.icon-button:hover{background:#f1ecdc}.town-header nav .town-nav-active{background:#e7ecd9}.town-header__meta{margin-left:auto;font-size:13px;gap:10px}.town-level,.connection,.due-count{white-space:nowrap;background:#eee7d5;padding:5px 8px;border-radius:5px;font-weight:700}.connection{color:#785b38;font-size:11px;background:#f5eacc}.due-count{padding:2px 5px;font-size:11px}.town-stage{flex:1;min-height:0;position:relative;overflow:hidden;background:#85a35d}.town-map{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.town-map__camera{position:absolute;left:0;top:0}.town-map:not([data-scene=main-town]){background:radial-gradient(ellipse at center,#9da57c,#536c5e)}.town-map[data-scene=sunny-beach]{background:radial-gradient(ellipse at center,#90aeb0,#547981)}.town-map[data-scene=happy-farm]{background:radial-gradient(ellipse at center,#b4a17a,#6d7858)}.town-map:not([data-scene=main-town]) .town-map__camera{box-shadow:0 0 0 1px #f0e2b6b0,0 0 0 4px #30483e43,0 12px 36px #20362c57}.town-map canvas,.town-map__route{position:absolute;width:100%;height:100%;top:0;right:0;bottom:0;left:0}.town-map canvas{image-rendering:pixelated;cursor:pointer}.town-map__route{pointer-events:none}.map-location{position:absolute;left:clamp(12px,2vw,27px);top:20px;display:flex;align-items:center;gap:9px;padding:9px 11px;border:1px solid #e1e7c888;border-radius:8px;background:#294835ed;color:#fff8e5;pointer-events:none}.map-location svg{color:#d2e0b9}.map-location small,.map-location strong{display:block}.map-location small{font-size:10px;letter-spacing:.1em;color:#d1e1c5}.map-location strong{font-size:14px;line-height:1.4}.map-pin,.map-gate{position:absolute;min-height:30px;transform:translate(-50%,-143%);border:1px solid #786143;background:#fff5d9;color:#4b3b26;border-radius:6px;display:flex;align-items:center;gap:6px;padding:4px 8px;font:700 13px/1.2 var(--title);white-space:nowrap;box-shadow:0 2px 4px #4331143a}.map-pin>span{height:6px;width:6px;border-radius:100%;background:#af4d31}.map-gate{font:650 12px/1 system-ui,sans-serif;background:#2d503a;color:#fff6d8;border-color:#d8dfae;transform:translate(-50%,-95%)}.map-pin:hover,.map-action:hover{background:#f3e4c2}.people-control{position:absolute;top:20px;right:clamp(12px,2vw,27px);z-index:5;display:flex;flex-direction:column;align-items:end;gap:7px}.map-action{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:7px 10px;border-radius:7px;border:1px solid #a49371;background:#fff7e1;box-shadow:0 3px 8px #302d1d2d;color:var(--ink);font-size:13px;font-weight:700}.people-popover{background:var(--paper);border:1px solid var(--edge);border-radius:9px;box-shadow:0 8px 22px #392e2040;width:min(300px,calc(100vw - 28px));padding:10px 12px}.people-popover>p{font-size:13px;color:var(--muted);margin:0 0 6px}.person-row{display:flex;align-items:center;gap:6px;padding:7px 0;border-top:1px solid #e9e1ce}.person-row>div{flex:1;min-width:0}.person-row strong,.person-row small{display:block}.person-row strong{font-size:14px}.person-row small{font-size:11px;color:var(--muted)}.person-row button{border:1px solid var(--edge);border-radius:5px;background:#fffdf3;padding:5px 6px;font-size:12px;display:grid;place-items:center;min-height:29px}.town-controls{position:absolute;bottom:20px;left:22px;display:flex;align-items:end;gap:8px;z-index:2}.town-key-hint{display:flex;align-items:center;gap:4px;background:#fff7e1;border:1px solid #a49371;color:#446049;font-size:12px;padding:7px;border-radius:7px}.town-key-hint span{padding:0 3px;border:1px solid #b2a788;border-radius:3px;color:#344e3c;font-weight:700}.town-dpad{display:none}.chat-reopen{position:absolute;bottom:20px;right:22px;z-index:5;color:#294833}.chat-window{position:absolute;z-index:6;right:22px;bottom:22px;width:min(394px,calc(100% - 28px));max-height:calc(100% - 28px);display:flex;flex-direction:column;overflow:hidden;border-radius:13px;background:#fffaf0;border:1px solid #ad9e7c;box-shadow:0 10px 28px #28372549;color:#2e4232}.chat-window[data-dock=left]{left:22px;right:auto}.chat-window__head{min-height:61px;display:flex;align-items:center;gap:9px;padding:9px 12px 9px 8px;background:#fbf2df;border-bottom:1px solid #e7dcc4;flex:none}.chat-window__identity{min-width:0}.chat-window__identity h2{margin:0 0 1px;font:700 22px/1.1 var(--title);letter-spacing:-.04em;color:var(--ink)}.chat-window__identity span{font-size:11px;color:var(--muted)}.chat-portrait{image-rendering:pixelated;width:41px;height:41px;border:1px solid #e2d3b0;border-radius:7px;background:#eee4ca;padding:2px}.chat-window__actions{margin-left:auto;display:flex;align-items:center;gap:3px}.chat-window__actions button,.chat-grip,.chat-mobile-back{border:1px solid transparent;background:transparent;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;min-width:30px;min-height:36px;color:#48664c;padding:5px}.chat-window__actions button:hover,.chat-grip:hover,.chat-mobile-back:hover{background:#ebe4d0;border-color:#e1d3b5}.chat-grip{min-width:23px;cursor:grab;padding:2px;touch-action:none}.chat-grip:active{cursor:grabbing}.chat-window__actions .chat-mobile-book,.chat-mobile-back,.chat-window__street{display:none}.chat-window__body{display:flex;flex-direction:column;min-height:0}.chat-mission,.chat-freemode{flex:none;margin:11px 12px 0}.chat-mission{background:#f4eedc;border:1px solid #e3d6b7;border-radius:7px}.chat-mission summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:7px;min-height:36px;padding:6px 8px;font-size:12px;color:#594d33}.chat-mission summary::-webkit-details-marker{display:none}.chat-mission summary b{margin-left:auto;border-radius:4px;background:#e9dcba;padding:3px 6px;white-space:nowrap}.chat-mission ol{list-style:none;margin:0 8px 5px;padding:0}.chat-mission ol li{padding:4px 5px;display:flex;align-items:center;gap:7px;font-size:12px}.chat-mission ol li span{width:17px;height:17px;display:grid;place-items:center;border:1px solid #baaa84;border-radius:4px;font-size:11px}.chat-mission li[data-current]{background:#ece1bd;border-radius:5px;font-weight:700}.chat-mission>.text-link{margin:0 8px 5px}.chat-freemode{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e6ddc8;gap:8px;font-size:12px;color:var(--muted);padding:0 0 5px}.text-link{background:none;border:0;display:inline-flex;align-items:center;gap:5px;padding:5px 4px;font-size:12px;font-weight:700;color:#345d43;text-align:left}.chat-history{position:relative;display:flex;flex:1;flex-direction:column;min-height:0}.chat-latest{position:absolute;right:14px;bottom:9px;display:inline-flex;align-items:center;gap:5px;min-height:38px;padding:0 11px;border:1px solid #b6c0a1;border-radius:20px;background:#edf1e3;color:#31553c;font-size:12px;font-weight:750}.chat-latest:hover{background:#e1e9d3}.chat-transcript{min-height:109px;max-height:min(300px,44dvh);overflow:auto;padding:12px 13px 8px;display:grid;align-content:start;gap:11px;scrollbar-width:thin;scrollbar-color:#b5bd9f transparent}.chat-transcript:focus-visible{outline:2px solid #366f60;outline-offset:-2px}.chat-turn{width:-moz-fit-content;width:fit-content;max-width:94%}.chat-turn--self{margin-left:auto}.chat-turn__name{font-size:11px;color:var(--muted);font-weight:700;margin:0 0 4px}.chat-turn--self .chat-turn__name{text-align:right}.chat-turn__text{font-size:14px;line-height:1.47;padding:8px 10px;border-radius:9px;background:#eee7d6;white-space:pre-wrap;overflow-wrap:anywhere}.chat-turn--self .chat-turn__text{background:#e6eed7}.chat-word{border:none;padding:0;background:none;color:inherit;display:inline;font:inherit}.chat-word:hover,.chat-word:focus-visible{text-decoration:underline;text-underline-offset:2px}.chat-turn__actions,.chat-compose__tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding-top:3px}.chat-turn__actions button,.chat-compose__tools button{border:none;background:none;color:#355b42;display:inline-flex;align-items:center;gap:3px;padding:3px 2px;font-size:11px;font-weight:700}.chat-compose__tools span{font-size:11px;margin-left:auto;color:#556b4d;font-weight:750}.chat-wait{letter-spacing:.2em;color:#77694e}.chat-translation,.chat-practice-note,.chat-inline-assist{padding:7px 9px;margin:4px 0 0;background:#e8efda;color:#3b5d46;border-radius:6px;font-size:12px;line-height:1.45}.chat-practice-note p,.chat-inline-assist p{margin:4px 0 0}.chat-inline-assist{margin:0 12px 6px;display:flex;justify-content:space-between;gap:6px;align-items:start}.chat-inline-assist button{border:1px solid #b8c4a5;background:#f7faed;border-radius:5px;padding:3px 5px}.chat-suggestions{max-height:35dvh;overflow:auto;margin:0 10px}.chat-error{background:#f7e6dc;color:#813927;border-radius:6px;padding:6px 8px;margin:4px 0 5px;font-size:12px;line-height:1.4}.chat-compose{border-top:1px solid #e6ddc8;padding:5px 12px 12px;flex:none}.chat-compose__tools{padding:2px 0 6px}.chat-compose__row{display:flex;align-items:flex-end;gap:6px}.chat-compose textarea{min-width:0;flex:1;border:1px solid #c9bda3;border-radius:7px;background:#fffdf6;font-family:inherit;font-size:14px;line-height:1.4;padding:8px 9px;min-height:40px;max-height:112px;resize:none;field-sizing:content;color:var(--ink)}.chat-compose textarea::-moz-placeholder{color:#706e5e}.chat-compose textarea::placeholder{color:#706e5e}.chat-compose__row button{display:inline-flex;align-items:center;justify-content:center;gap:4px;height:40px;flex:none;border-radius:7px}.mic-button{min-width:44px;padding:0 8px;border:1px solid #c9bda3;background:#fff9ea;color:#415c43;font-size:12px;font-weight:750;white-space:nowrap}.mic-button[data-recording]{background:#f1d8c9;color:#883f31}.chat-compose__capture{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:32px;margin-bottom:6px;padding:4px 8px;border-radius:6px;background:#e9eedb;color:#35553e;font-size:12px;line-height:1.4}.chat-compose__capture[data-recording]{background:#f7e6dc;color:#813927}.chat-compose__capture button{min-height:32px;flex:none;border:none;background:transparent;color:inherit;font-weight:750}.primary-button{border:0;background:var(--primary);color:#fff8e6;font-size:13px;font-weight:700;padding:0 10px}.town-sheet{width:min(490px,calc(100vw - 24px));max-height:min(85dvh,740px);padding:18px;background:#fffaf0;color:var(--ink);border:1px solid #b5a483;border-radius:13px;box-shadow:0 13px 42px #2a39284d}.town-sheet::backdrop{background:#20382277}.town-sheet header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e4d9bd}.town-sheet h2{font:700 25px var(--title);margin:0 0 8px}.town-sheet p,.town-help{font-size:14px;line-height:1.65}.town-help{padding-left:24px}@media(min-width:660px){.chat-window{width:min(520px,calc(100% - 44px));height:min(510px,66dvh)}.chat-window[data-expanded]{width:min(680px,calc(100% - 44px));height:min(660px,82dvh)}.chat-window__body,.chat-transcript{flex:1}.chat-transcript{min-height:0;max-height:none;padding:16px 18px 12px;gap:14px}.chat-turn__text{font-size:15px;line-height:1.55;padding:9px 12px}.chat-window[style*="top:"]{bottom:auto}}@media(max-width:659px){.town-shell{min-height:0}.town-header{height:57px;min-height:57px;gap:9px;padding:6px 9px}.town-brand{gap:5px}.town-brand>span{width:23px;height:23px}.town-brand>span svg{width:16px}.town-brand h1{font-size:20px}.town-header nav{gap:0}.town-header nav button{font-size:12px;gap:4px;padding:6px}.town-header nav button svg{width:15px}.town-header__meta{gap:2px}.town-level{padding:3px 4px;font-size:11px}.town-header__meta .icon-button{padding:4px}.town-header__meta .icon-button svg{width:16px}.connection{display:none}.map-pin{font-size:12px}.people-control,.map-location{top:12px}.town-controls{bottom:max(12px,env(safe-area-inset-bottom));left:12px;gap:5px}.town-key-hint{display:none}.town-dpad{display:grid;grid-template-columns:repeat(3,38px);gap:3px}.town-dpad button{width:38px;height:38px;border:1px solid #aa9b75;background:#fff4da;border-radius:6px;color:#31543c;display:grid;place-items:center;touch-action:manipulation}.town-dpad .dpad-up{grid-column:2/4}.nearby-action{display:none}.chat-reopen{bottom:max(12px,env(safe-area-inset-bottom));right:12px;max-width:52%;font-size:12px}.town-shell[data-focus] .town-header,.town-shell[data-focus] .town-map,.town-shell[data-focus] .people-control,.town-shell[data-focus] .town-controls{display:none}.chat-window,.chat-window[data-dock=left]{top:0!important;right:0!important;bottom:0!important;left:0!important;width:100%;max-height:none;height:100%;border:0;border-radius:0;box-shadow:none;z-index:9}.chat-window__head{min-height:54px;order:0;padding:8px 10px;gap:7px}.chat-window__identity h2{font-size:20px}.chat-window__head .chat-portrait{width:34px;height:34px}.chat-window__street{display:flex;order:1;align-items:stretch;justify-content:space-between;min-height:48px;flex:none;background:#edf0dd;border-bottom:1px solid #d7cbb0;color:var(--primary)}.chat-window__street span{display:flex;align-items:center;gap:6px;padding:8px 13px;font-size:12px;font-weight:700}.chat-window__street img{width:clamp(120px,43%,188px);height:48px;-o-object-fit:cover;object-fit:cover;-o-object-position:center 75%;object-position:center 75%;image-rendering:pixelated;border-left:1px solid #cbd0b3}.chat-mobile-back,.chat-window__actions .chat-mobile-book{min-height:44px}.chat-window__actions .chat-mobile-book{min-width:44px}.chat-window__body{order:2;flex:1}.chat-window__actions .chat-mobile-book,.chat-mobile-back{display:inline-flex}.chat-mobile-back{font-size:12px;gap:0;font-weight:700;padding-left:0}.chat-window__actions .chat-desktop-button,.chat-grip{display:none}.chat-transcript{max-height:none;min-height:0;flex:1;padding:12px 13px}.chat-turn__text{font-size:15px}.chat-compose{padding-bottom:max(12px,env(safe-area-inset-bottom));background:#fffaf0}.chat-compose textarea{font-size:16px}.chat-latest{min-height:44px}}@media(max-width:659px)and (max-height:530px){.chat-window__street{min-height:28px}.chat-window__street span{padding-block:4px}.chat-window__street img{height:28px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}@media(prefers-reduced-motion:no-preference){[data-speech-loading] svg{animation:town-speech-spin .9s linear infinite}}@keyframes town-speech-spin{to{transform:rotate(360deg)}}.guide-privacy{display:grid;gap:8px}.guide-privacy>div{display:flex;gap:8px;align-items:start;background:#f4edda;border:1px solid var(--edge);border-radius:7px;padding:9px 10px}.guide-privacy svg{flex:none;color:#47684c;margin-top:1px}.guide-privacy strong{font-size:13px}.guide-privacy p{margin:3px 0 0;font-size:12px;line-height:1.55;color:var(--muted)}.guide-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;border:1px solid transparent;border-radius:6px;padding:6px 10px;font-size:13px;font-weight:700;background:var(--primary);color:#fff8e6}.guide-primary:hover{background:#3e644b}.town-help-privacy{margin-bottom:12px}.town-help-privacy summary{cursor:pointer;font-size:13px;font-weight:700;padding:5px 0 8px}@media(max-width:659px){.guide-primary,.guide-text{min-height:44px}}.chat-trial-note{margin:3px 0 4px;color:var(--muted);font-size:11px;line-height:1.4}.hover\:scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-blue-400:hover{--tw-border-opacity:1;border-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.hover\:bg-amber-600:hover{--tw-bg-opacity:1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-50:hover{--tw-bg-opacity:1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-600:hover{--tw-bg-opacity:1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-300:hover{--tw-bg-opacity:1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.hover\:bg-green-200:hover{--tw-bg-opacity:1;background-color:rgb(187 247 208 / var(--tw-bg-opacity, 1))}.hover\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.hover\:bg-purple-600:hover{--tw-bg-opacity:1;background-color:rgb(147 51 234 / var(--tw-bg-opacity, 1))}.hover\:bg-white\/20:hover{background-color:#fff3}.hover\:bg-white\/30:hover{background-color:#ffffff4d}.hover\:from-sky-600:hover{--tw-gradient-from:#0284c7 var(--tw-gradient-from-position);--tw-gradient-to:rgb(2 132 199 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:to-blue-700:hover{--tw-gradient-to:#1d4ed8 var(--tw-gradient-to-position)}.hover\:text-blue-600:hover{--tw-text-opacity:1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.hover\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.active\:scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:bg-gray-100:active{--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.active\:from-sky-600:active{--tw-gradient-from:#0284c7 var(--tw-gradient-from-position);--tw-gradient-to:rgb(2 132 199 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.active\:to-blue-700:active{--tw-gradient-to:#1d4ed8 var(--tw-gradient-to-position)}@media(min-width:640px){.sm\:-bottom-6{bottom:-1.5rem}.sm\:inline{display:inline}.sm\:hidden{display:none}.sm\:h-12{height:3rem}.sm\:h-16{height:4rem}.sm\:w-12{width:3rem}.sm\:w-16{width:4rem}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}}.town-shell{--world-paper:#faf5e8;--world-edge:#d4c8aa;--world-soft:#e5ead1;--world-quiet:#52654e}.town-header{min-height:68px;background:var(--world-paper)}.town-brand>span{background:#254735;color:#f9eacd}.town-header .town-nav-active{background:transparent}.town-language-link{border:0;background:none;color:var(--world-quiet,#52654e);font:inherit;min-height:40px;padding:0 8px}.places-toggle{gap:7px;white-space:nowrap}.map-location{gap:8px;align-items:center;max-width:calc(100% - 24px)}.map-location small{border-left:1px solid #8c9e7e;padding-inline-start:7px;letter-spacing:0;font-size:11px}.map-pin--restaurant{z-index:1;font-weight:750;color:#3e422c;background:#f7e6bd;border-color:#987850}.map-pin--restaurant[data-new-menu]{transform:translate(-50%,25%)}.map-player-label{position:absolute;transform:translate(-50%,90%);background:#fff5d9;color:#374b34;border:1px solid #b4a477;border-radius:5px;pointer-events:none;display:flex;align-items:center;gap:4px;white-space:nowrap;font-size:11px;font-weight:700;padding:4px 6px}.map-gate{color:#33452d;border-color:#8e8961;background:#f7eacd;box-shadow:0 2px 5px #27372038}.map-gate:hover{background:#fcf1cf}.world-panel{position:absolute;padding:17px;background:var(--world-paper);border:1px solid var(--world-edge);border-radius:13px;box-shadow:0 7px 22px #213b2b3e;color:var(--ink)}.world-panel h2{margin:0;font:700 27px/1.15 var(--title);letter-spacing:-.03em}.world-panel p{margin:7px 0 0;color:var(--world-quiet,#52654e);font-size:13px;line-height:1.55}.world-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.world-actions .guide-primary,.world-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:41px;border-radius:7px;padding:7px 12px;font-size:13px;font-weight:730;line-height:1.25;text-align:center}.world-secondary{border:1px solid #c8c5a8;color:var(--ink);background:transparent}.world-secondary:hover{background:#eee9d6}.world-tag{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:5px;background:var(--world-soft,#e5ead1);color:#39563e;font-size:11px;font-weight:750;white-space:nowrap}.arrival-card{z-index:4;left:clamp(14px,2.2vw,32px);bottom:28px;width:min(402px,calc(100% - 28px));padding:20px}.arrival-card h2{font-size:31px}.arrival-card .ui-language{margin:12px 0 0;gap:6px}.arrival-card .ui-language button{min-height:36px;padding:0 9px;font-size:12px}.arrival-privacy{margin-top:11px}.arrival-privacy summary{display:flex;align-items:center;gap:6px;list-style:none;width:-moz-fit-content;width:fit-content;color:var(--world-quiet,#52654e);font-size:11px;cursor:pointer;min-height:26px}.arrival-privacy summary::-webkit-details-marker{display:none}.arrival-privacy summary:hover{text-decoration:underline}.arrival-privacy .guide-privacy{margin-top:4px}.arrival-mobile-areas{display:none}.places-panel{z-index:7;width:311px;right:clamp(13px,2.2vw,32px);top:18px;padding:14px;max-height:calc(100% - 36px);overflow:auto}.area-heading{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:9px}.area-heading h2{font:700 21px/1.2 var(--title)}.area-list{list-style:none;margin:0;padding:0;display:grid;gap:5px}.area-list li{min-width:0}.area-list button{display:flex;align-items:center;gap:8px;width:100%;padding:4px;text-align:left;background:#f5efdd;color:var(--ink);border:1px solid #e3d9bf;border-radius:7px;min-height:50px}.area-list button:hover:not(:disabled){background:#eeead0;border-color:#b1b88e}.area-list button:disabled{opacity:1;background:#e8ebd3;border-color:#cdd6af}.area-list button>span{min-width:0;flex:1}.area-list img{width:55px;height:40px;-o-object-fit:cover;object-fit:cover;image-rendering:pixelated;border-radius:4px}.area-list strong,.area-list small{display:block}.area-list strong{font-size:13px;line-height:1.25}.area-list small{font-size:10px;color:#56654b;line-height:1.35;margin:3px 0 0}.area-list svg{flex:none;margin-inline-end:4px}.atlas-link{display:flex;align-items:center;gap:7px;width:100%;padding:8px 1px 2px;margin-top:5px;border:0;background:none;color:#355742;font:inherit;font-size:12px;font-weight:700;min-height:34px;cursor:pointer}.atlas-link svg:last-child{margin-inline-start:auto}.district-hint{position:absolute;left:50%;bottom:17px;transform:translate(-50%);display:flex;align-items:center;gap:6px;background:#f8f0d6;border:1px solid #b7ad8f;border-radius:7px;color:var(--ink);font-size:12px;font-weight:700;padding:8px 9px;pointer-events:none;white-space:nowrap}.town-sheet--atlas{width:min(1040px,calc(100vw - 28px));max-height:calc(100dvh - 38px)}.district-atlas>p{margin:11px 0;color:var(--world-quiet,#52654e)}.district-grid{position:relative;isolation:isolate;display:grid;grid-template-columns:1fr 1.16fr 1fr;grid-template-rows:auto auto;align-items:center;gap:15px 30px;padding:18px 23px;background:#e6e9d0 radial-gradient(#81946c52 .65px,transparent .65px) 0 0/8px 8px;border:1px solid #ccc49d;border-radius:12px}.district-routes{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:-1;fill:none;stroke:#678063;stroke-width:3;stroke-dasharray:2 6;stroke-linecap:round;pointer-events:none}.district-card{position:relative;min-width:0;overflow:hidden;padding:0;border:1px solid #b7ad8b;border-radius:9px;background:#fff6df;color:var(--ink);text-align:left;box-shadow:0 4px 11px #253f2b24}.district-card:hover:not(:disabled){border-color:#486a50}.district-card:disabled{opacity:1}.district-card--plaza{grid-area:2/2}.district-card--farm{grid-area:1/2}.district-card--beach{grid-area:2/1;transform:translateY(-24px)}.district-card--forest{grid-area:2/3;transform:translateY(-24px)}.district-card>img{width:100%;height:135px;display:block;-o-object-fit:cover;object-fit:cover;image-rendering:pixelated}.district-card--plaza>img{height:160px}.district-direction{position:absolute;top:7px;left:7px;display:flex;align-items:center;gap:5px;background:#254737;color:#fff4d6;border-radius:5px;padding:5px 7px;font-size:11px;font-weight:700}.district-copy{display:grid;grid-template-columns:1fr auto;gap:4px;align-items:center;padding:9px}.district-copy strong{font:700 21px/1.15 var(--title)}.district-copy small{grid-column:1/-1;display:flex;gap:5px;align-items:center;font-size:11px;color:var(--world-quiet,#52654e)}.district-copy small svg{flex:none}.new-menu p{display:flex;gap:7px;align-items:center;color:var(--world-quiet,#52654e)}.new-menu ul{list-style:none;margin:0 0 15px;padding:0}.new-menu li{display:flex;align-items:center;flex-wrap:wrap;gap:7px;padding:12px 3px;border-bottom:1px dashed var(--world-edge)}.new-menu li span[lang]{color:var(--world-quiet,#52654e);font-size:13px}.new-menu li .world-tag{margin-inline-start:auto}.chat-scenarios{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:2px 10px}.chat-freemode>span{flex:none}.chat-menu{list-style:none;margin:6px 12px 0;padding:0;display:flex;flex-wrap:wrap;gap:5px}.chat-menu li{background:#f5efdd;color:#574b33;border:1px solid #e5d9ba;border-radius:5px;font-size:11px;padding:4px 6px}.chat-menu span{margin-inline-start:2px;color:#52634d}.order-receipt{padding:11px 13px 9px;margin:0 0 3px;background:#f8eed3;border:1px solid #d6c79f;border-top:2px dashed #beae85;border-radius:0 0 8px 8px;color:var(--ink)}.order-receipt__top{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:750;color:#765339}.order-receipt__top .world-tag{margin-inline-start:auto}.order-receipt h3{margin:5px 0;font:700 24px/1.15 var(--title);letter-spacing:-.02em}.order-receipt h3 small{margin-inline-start:8px;font-size:12px;color:#674f32}.order-receipt p{margin:0;color:#52634d;font-size:12px;line-height:1.45}.order-receipt .world-actions{margin-top:9px}.order-receipt .guide-primary,.order-receipt .world-secondary{min-height:36px;font-size:12px}.order-receipt__after{display:flex;gap:9px}.order-receipt__after button{font-size:11px}.chat-window[hidden]{display:none}@media(min-width:660px){.chat-window:not([data-expanded]){width:min(470px,calc(100% - 44px));height:min(545px,70dvh)}.town-shell[data-arrival] .people-control{display:none}.town-shell[data-arrival] .town-key-hint{visibility:hidden}}@media(max-width:659px){.town-header{height:55px;min-height:55px;gap:4px;padding:4px 9px}.town-brand h1{font-size:23px}.town-header nav{margin-left:auto}.town-header nav .town-nav-active,.town-header .journal-nav-label,.town-header .town-help-link{display:none}.town-header nav .town-journal-link{min-width:44px;min-height:44px;padding:4px}.town-header__meta{margin-left:0;gap:4px}.town-language-link{padding:0 3px;font-size:11px}.places-toggle{padding-inline:7px;min-height:42px;font-size:12px}.places-toggle svg{width:14px}.town-shell[data-arrival] .town-controls{display:none}.people-control .map-action{min-height:39px}.places-panel{width:min(318px,calc(100% - 24px));right:12px;top:12px}.arrival-card{left:0;right:0;bottom:0;width:auto;padding:13px 13px max(11px,env(safe-area-inset-bottom));border-radius:15px 15px 0 0;max-height:62%;overflow:auto}.arrival-card h2{font-size:27px}.arrival-card p{font-size:12px;margin-top:4px}.arrival-card .ui-language{margin-top:7px}.arrival-card .ui-language button{min-height:35px}.arrival-card .world-actions{margin-top:8px}.arrival-card .world-actions button{flex:1;min-height:44px}.arrival-mobile-areas{display:block;margin-top:9px}.arrival-mobile-areas .area-list{grid-template-columns:1fr 1fr}.arrival-mobile-areas .area-heading{margin-bottom:5px}.arrival-mobile-areas .area-heading h2{font-size:17px}.arrival-mobile-areas .area-list img{width:39px;height:35px}.arrival-mobile-areas .area-list button{min-height:45px;gap:5px}.arrival-mobile-areas .area-list strong{font-size:12px}.arrival-mobile-areas .area-list small{font-size:9px;margin-top:2px}.arrival-mobile-areas .area-list svg{width:11px;margin-inline-end:0}.arrival-privacy{margin-top:4px}.district-hint{top:63px;bottom:auto}.town-shell[data-focus] .places-panel,.town-shell[data-focus] .district-hint{display:none}.chat-window__street{position:relative;min-height:105px;overflow:hidden}.chat-window__street img{width:100%;height:105px;-o-object-position:50% 48%;object-position:50% 48%;border:0}.chat-window__street span{position:absolute;bottom:7px;left:8px;background:#284737;color:#fff5db;border-radius:5px;padding:5px 7px}.order-receipt .guide-primary,.order-receipt .world-secondary{min-height:44px}.town-sheet--atlas{padding:12px}.district-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto;gap:7px;padding:8px}.district-card{grid-area:auto;transform:none}.district-card>img,.district-card--plaza>img{height:80px}.district-copy{padding:6px;gap:4px}.district-copy strong{font-size:15px}.district-copy .world-tag{font-size:9px}.district-copy small{font-size:10px}.district-card--farm{grid-area:1/2}.district-routes{display:none}}@media(max-width:659px)and (max-height:560px){.chat-window__street,.chat-window__street img{min-height:42px;height:42px}}.town-landmark{position:absolute;z-index:2;transform:translate(-50%,-50%);display:grid;place-items:center;border:1px solid transparent;padding:0;border-radius:5px;background:none;color:#344532;cursor:pointer}.town-landmark__art{display:block;image-rendering:pixelated;pointer-events:none}.town-landmark__label{position:absolute;left:50%;bottom:calc(100% + 2px);transform:translate(-50%);display:flex;align-items:center;gap:5px;padding:5px 7px;background:#fff1cb;color:#3b4732;border:1px solid #9e8c65;border-radius:5px;white-space:nowrap;font-size:12px;font-weight:740;box-shadow:0 2px 4px #3b33272c}.town-landmark__label>svg{flex:none}.town-landmark[data-spot=lunch-board] .town-landmark__label{background:#f7e0a9;color:#643b2c}.town-landmark[data-edge=west] .town-landmark__label{left:auto;right:4px;transform:none}.town-landmark[data-edge=east] .town-landmark__label{left:4px;transform:none}.town-landmark:hover,.town-landmark:focus-visible{border-color:#f6dda0;background:#f8d78342}.town-landmark[aria-expanded=true] .town-landmark__label{background:#e6eacd;border-color:#717f63}.town-landmark:focus-visible{outline:2px solid #254735;outline-offset:2px}.town-compass-links,.district-view-tools,.restaurant-route{position:absolute;z-index:3}.town-compass-links,.district-view-tools{display:flex;align-items:center;gap:5px;top:62px;left:12px}.town-compass-links button{display:flex;align-items:center;justify-content:center;gap:4px;min-height:42px;padding:0 9px;background:#f8f0d6;border:1px solid #a9956c;border-radius:6px;color:#334d37;font-size:12px;font-weight:700;box-shadow:0 2px 5px #27372031}.restaurant-route{left:clamp(12px,2vw,27px);top:71px;color:#4f392e;background:#f8e7bd}.restaurant-route span{font-weight:500;border-inline-start:1px solid #c2a171;padding-inline-start:6px;font-size:11px}.library-route{color:#354a35;background:#e9ebd1}.district-view-tools .map-action{min-height:42px}.district-view-tools .map-action[aria-pressed=true]{background:#e2e9cd;border-color:#9fa981}.overview-player{position:absolute;z-index:2;transform:translate(-50%,55%);width:13px;height:13px;border:2px solid #fff6d8;background:#2c5c4e;border-radius:50%;box-shadow:0 0 0 1px #234737;pointer-events:none}.landmark-note{z-index:5;right:clamp(12px,2.2vw,34px);bottom:26px;width:min(394px,calc(100% - 26px));padding:13px 15px 15px;max-height:min(430px,53%);overflow:auto}.landmark-note__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}.landmark-note__head h2{font-size:24px;line-height:1.12}.landmark-note__head .icon-button{border:1px solid var(--world-edge);width:35px;min-height:35px;padding:4px;flex:none}.landmark-selector{display:flex;gap:5px;flex-wrap:wrap}.landmark-selector button{display:flex;align-items:center;gap:5px;padding:5px 8px;min-height:34px;color:var(--ink);border:1px solid var(--world-edge);background:#f6efdc;border-radius:6px;font-size:12px;font-weight:700}.landmark-selector button[aria-pressed=true]{background:#e5ead0;border-color:#99a180}.landmark-selector small{font-size:10px;color:#8a3e33}.landmark-caption,.landmark-reading,.landmark-directions{margin-top:9px;padding-top:8px;border-top:1px solid var(--world-edge)}.landmark-caption strong{font-family:Georgia,serif;font-size:16px}.landmark-caption p,.landmark-note .landmark-phrase{margin-top:4px}.landmark-note .landmark-phrase{color:var(--ink);font-style:italic}.landmark-reading summary,.landmark-directions p:first-child,.landmark-vista p:first-of-type{display:flex;align-items:baseline;gap:6px}.landmark-reading summary{align-items:center;list-style:none;cursor:pointer;font-size:12px;font-weight:700}.landmark-reading summary::-webkit-details-marker{display:none}.landmark-directions svg,.landmark-vista svg{flex:none;align-self:center}.landmark-note .new-menu ul{margin-bottom:10px}.landmark-note .new-menu li{padding:8px 0}.landmark-note .new-menu .guide-primary{min-height:42px}@media(max-width:659px){.town-landmark__label{font-size:11px;min-height:27px;padding:5px 6px}.town-map[data-camera=overview] .town-landmark[data-spot=lookout] .town-landmark__label{bottom:calc(100% + 26px)}.town-map[data-scene=sunny-beach]{--beach-exit-min-top:154px}.town-map[data-scene=sunny-beach] .map-gate{min-height:44px}.restaurant-route{top:110px;left:12px;min-height:43px}.district-view-tools{left:auto;right:12px}.district-hint{left:12px;top:67px;transform:none;max-width:min(51%,230px);font-size:11px;white-space:normal}.district-hint svg{flex:none}.landmark-note{bottom:max(95px,calc(env(safe-area-inset-bottom) + 90px));right:8px;width:min(365px,calc(100% - 16px))}.landmark-note__head .icon-button,.landmark-selector button,.landmark-note .new-menu .guide-primary,.landmark-note .world-actions button{min-height:44px}.town-shell[data-focus] .landmark-note,.town-shell[data-landmark] .chat-reopen{display:none}}.town-recovery{display:grid;place-items:center;min-block-size:100dvh;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:#ebe6d6;color:var(--ink)}.town-recovery__note{width:min(100%,26rem);padding:clamp(20px,5vw,33px);border:1px solid #b9aa87;border-radius:12px;background:var(--paper)}.town-recovery__mark{display:grid;place-items:center;width:42px;height:42px;margin-block-end:12px;border:1px solid #c5c9a7;border-radius:5px;background:#e8ebd4;color:var(--primary)}.town-recovery h1{margin:0;font:700 clamp(23px,4vw,31px)/1.18 var(--title)}.town-recovery p{margin:7px 0 17px;color:var(--muted);font-size:15px;line-height:1.5}.town-recovery button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:6px 12px;border:1px solid var(--primary);border-radius:6px;background:var(--primary);color:var(--paper);font-size:14px;font-weight:700}.town-recovery button:hover{background:#3e644b}
