:root{--paper:#f6f4eb;--ink:#324c3c;--soft-ink:#647062;--line:#dcdfcf;--moss:#537b52;--serif:Georgia,'Times New Roman',serif;--sans:'Avenir Next',Avenir,'Trebuchet MS',system-ui,sans-serif;font-family:var(--sans);color:var(--ink);background:var(--paper);font-synthesis:none;scroll-behavior:smooth}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #b07431;outline-offset:5px}button:disabled{cursor:default}button{touch-action:manipulation}.skip-link{position:fixed;left:20px;top:-100px;z-index:20;background:var(--paper);padding:12px 20px}.skip-link:focus{top:12px}.site-header{max-width:1480px;margin:auto;display:flex;align-items:center;justify-content:space-between;height:104px;padding:0 5%;border-bottom:1px solid var(--line)}.wordmark{font-size:28px;font-weight:700;letter-spacing:-1.5px;display:flex;align-items:center;gap:8px;text-decoration:none}.wordmark-flower{color:#c69453;font-size:21px;margin:-12px 0 0 -4px}.logo{position:relative;width:40px;height:35px;display:block}.logo i{position:absolute;width:21px;height:21px;border-radius:50%;background:#86a980;bottom:0;left:1px}.logo i:nth-child(2){left:18px;background:#cfb772}.logo i:nth-child(3){left:10px;bottom:15px;background:#587954;width:20px;height:20px}.site-header nav{display:flex;gap:35px;font-size:13px}.site-header nav a{text-decoration:none;padding:8px 0;color:#6d7869;position:relative}.site-header nav a:hover,.site-header nav .active{color:var(--ink)}.site-header nav .active:after{content:'';position:absolute;bottom:0;left:calc(50% - 2px);width:4px;height:4px;background:#7b965f;border-radius:50%}.open-status{font-size:11px;display:flex;align-items:center;gap:8px;color:var(--soft-ink)}.open-status span,.live-dot{width:6px;height:6px;background:#81965f;border-radius:50%;display:inline-block}.welcome{max-width:1350px;padding:55px 36px 44px;margin:auto;display:flex;justify-content:space-between;align-items:center}.eyebrow{font-size:10px;letter-spacing:2px;line-height:1.5;font-weight:600;margin:0 0 17px}.welcome .eyebrow span{font-size:17px;vertical-align:middle;margin-right:8px;color:#ab8749}h1{font-family:var(--serif);font-weight:400;line-height:1.01;font-size:64px;letter-spacing:-2.5px;margin:0}h1 em{font-weight:400;color:#708463} .welcome-note{max-width:330px;font-size:13px;line-height:1.75;padding-top:25px;color:#66735f}.welcome-note p{margin:0 0 13px}.text-link{display:inline-flex;gap:32px;align-items:center;text-decoration:none;border-bottom:1px solid #b0baa0;padding:0 0 4px;margin-top:5px;color:var(--ink);font-size:12px}.text-link span{font-size:21px}.village-section{max-width:1452px;margin:0 auto;padding:0 36px;scroll-margin-top:10px}.village-toolbar{display:flex;align-items:center;justify-content:space-between;padding:16px 2px;font-size:10px;color:#596b51}.scene-label{display:flex;gap:10px;align-items:center}.scene-label #scene-title{font-weight:600}.divider{color:#c3cbbb;margin:0 4px}.weather{color:#7a8572}.interaction-hint{font-size:10px;color:#788068}.interaction-hint span{margin-left:6px;font-size:17px}.village-window{background:#dfe8ce;border:1px solid #d6dec5;border-radius:19px;position:relative;overflow:hidden;isolation:isolate;--sky:#dce8d1;--far-hill:#b8d0a0;--hill:#a8c58e;--grass:#b9ce98;--grass-light:#c9d9aa;--path:#e9d9b6;--path-edge:#bdb990;--tree:#769b63;--tree-light:#92ad72;--tree-dark:#638750;--window:#edcc7c;--river:#9ec7bb;--river-light:#b8d7c5;--star-opacity:0;--firefly-opacity:0;--night-overlay:0;--shadow:#526951}.village-window[data-time=night]{--sky:#233f50;--far-hill:#36534e;--hill:#456550;--grass:#5b7859;--grass-light:#688360;--path:#9caa85;--path-edge:#799071;--tree:#3c624f;--tree-light:#547959;--tree-dark:#315743;--window:#ffe4a0;--river:#477b80;--river-light:#7aafa4;--star-opacity:1;--firefly-opacity:1;--night-overlay:.16;--shadow:#20392f}.map-scroll{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:#7f9967 transparent;position:relative}.world{display:block;width:100%;min-width:900px;height:auto;transition:filter 2s ease}.world *{transition:fill 1.7s ease,opacity 1.7s ease}.world .interactable{cursor:pointer;outline:none}.world .interactable:hover .location-shadow,.world .interactable:focus-visible .location-shadow{opacity:.3;fill:#d7ebac}.world .interactable:hover .place-label,.world .interactable:focus-visible .place-label{fill:#fffbe7;stroke:#afba86}.world .interactable:focus-visible .focus-ring{stroke:#f9e7a2;stroke-width:5;opacity:1}.focus-ring{fill:none;stroke:transparent}.world .building{filter:url(#soft-shadow)}.world .place-label{fill:#f4efda;stroke:#ccd2ac;stroke-width:1}.world text{font-family:var(--sans);fill:#4b5b3b;pointer-events:none}.world .window-glow{fill:var(--window)}.world .sway{transform-box:fill-box;transform-origin:center bottom;animation:sway 7s ease-in-out infinite alternate}.world .breathe{transform-box:fill-box;transform-origin:center bottom;animation:breathe 3s ease-in-out infinite}.world .cloud{animation:drift 60s linear infinite alternate}.world .cloud.two{animation-delay:-30s;animation-duration:85s}.world .butterfly{animation:flutter 10s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.world .smoke{animation:smoke 6s linear infinite;transform-box:fill-box;transform-origin:center bottom}.world .water-lines{animation:water 6s ease-in-out infinite alternate}.world .firefly{animation:twinkle 4s ease-in-out infinite alternate;opacity:var(--firefly-opacity)}.world .stars{opacity:var(--star-opacity)}.world .star{animation:star 3.5s ease-in-out infinite alternate}.world .flower-head{transform-box:fill-box;transform-origin:center;animation:sway 4s ease-in-out infinite alternate}.world .walker{transition:transform 7s ease-in-out}.world .feet{transform-box:fill-box;transform-origin:center;animation:waddle .9s ease-in-out infinite alternate}.world .resident:hover{filter:brightness(1.1)}.paused .world *,.reduced-motion .world *{animation-play-state:paused!important;transition:none!important}.map-tag{position:absolute;bottom:26px;left:28px;pointer-events:none;font-size:9px;letter-spacing:1.2px;color:#486343;background:#f7f4e4eb;border:1px solid #ecedd9;border-radius:10px;padding:12px 16px 11px;box-shadow:0 3px 10px #496d3910}.map-tag>span{font-size:16px;vertical-align:-1px;margin-right:5px}.map-tag small{display:block;letter-spacing:.15px;font-size:8px;margin-top:3px;color:#7a856b}.scene-controls{display:flex;position:absolute;bottom:26px;right:27px;gap:6px}.scene-controls button{background:#f7f4e4f0;border:1px solid #e7e9d3;border-radius:9px;box-shadow:0 3px 10px #496d3910;padding:10px 12px;color:#506547;display:flex;align-items:center;gap:7px;font-size:10px;min-height:44px}.scene-controls button:hover{background:#fffbed;transform:translateY(-1px)}.control-icon{font-size:18px;line-height:1}.mobile-hint{display:none}.toast{position:absolute;bottom:95px;left:50%;transform:translate(-50%,12px);max-width:90%;width:max-content;text-align:center;background:#fbf7e9f5;box-shadow:0 5px 30px #2f4b3720;border:1px solid #e6e0c9;border-radius:40px;color:#43543d;padding:12px 22px;font-size:12px;pointer-events:none;opacity:0;transition:.3s ease}.toast.visible{opacity:1;transform:translate(-50%,0)}.village-caption{display:flex;gap:10px;align-items:center;min-height:55px;border-bottom:1px solid var(--line);font-size:11px;padding:7px 5px;color:#76826c}.activity-indicator{color:#b1a265;font-size:18px}.village-caption p{margin:0;line-height:1.5}.caption-note{margin-left:auto;font-size:9px;letter-spacing:1px;white-space:nowrap;color:#949b87}.neighbors-section{max-width:1310px;margin:auto;padding:76px 24px 68px;scroll-margin-top:30px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:38px}.section-heading .eyebrow{color:#819071;font-size:9px;margin-bottom:12px}h2{font-family:var(--serif);font-weight:400;letter-spacing:-1px;font-size:36px;line-height:1.15;margin:0}.section-heading>p{font-size:11px;line-height:1.6;margin:0 0 4px;color:#7d8772}.neighbor-list{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.neighbor-card{border:0;background:none;border-radius:14px;padding:14px 4px 17px;color:var(--ink);text-align:center;transition:background .2s,transform .2s}.neighbor-card:hover{background:#eaeedf;transform:translateY(-4px)}.portrait{display:block;width:81px;height:81px;border-radius:50%;margin:0 auto 14px;background:#e4e9d5;overflow:hidden}.portrait svg{width:100%;height:100%}.neighbor-card strong{font-family:var(--serif);font-weight:400;font-size:20px;display:block;margin-bottom:6px}.neighbor-card small{font-size:9px;color:#7b856f;display:block;line-height:1.4}.story-section{margin:0 auto;max-width:1260px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.3fr;gap:50px;align-items:center;padding:64px 75px 73px}.story-section .eyebrow{font-size:8px;color:#8d967e;letter-spacing:1.5px}.story-section h2{font-size:36px}.story-section p:not(.eyebrow){max-width:470px;font-size:12px;line-height:1.9;color:#74806a}.story-signoff{font-style:italic}.story-signoff span{font-size:19px;color:#a6a96e;margin-left:8px}.story-art{position:relative;width:230px;height:220px;margin:auto;isolation:isolate}.story-art:before{content:'';position:absolute;inset:45px 0 0;background:#e6ead8;border-radius:50% 50% 44% 51%;transform:rotate(-8deg);z-index:-1}.story-dot{position:absolute;width:87px;height:80px;background:#cfad69;border-radius:46% 46% 43% 43%;left:78px;top:97px;box-shadow:inset -9px -4px #bd99571f}.story-dot:before{content:'• •';position:absolute;left:26px;top:28px;font-size:21px;letter-spacing:6px;color:#536342;white-space:nowrap}.story-dot:after{content:'';position:absolute;width:15px;height:8px;border-bottom:2px solid #566240;border-radius:50%;left:37px;top:54px}.little-sprout{position:absolute;color:#73905c;font-size:70px;left:103px;top:36px;transform:rotate(-12deg)}.story-spark{position:absolute;font-size:44px;left:14px;top:58px;color:#b8a65f}footer{max-width:1380px;margin:auto;border-top:1px solid var(--line);padding:28px 30px 32px;display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#8a917d}.footer-logo{font-size:19px;font-weight:bold;letter-spacing:-.7px;color:#607452;text-decoration:none}.footer-logo span{font-size:14px;color:#b2a264;margin-left:3px}dialog{border:1px solid #e7e2d1;border-radius:24px;background:#fbf8ee;box-shadow:0 25px 90px #203b3450;width:420px;max-width:calc(100% - 32px);padding:30px 35px 22px;text-align:center;color:var(--ink);overflow:visible}dialog::backdrop{background:#1f433653;backdrop-filter:blur(5px)}.close-dialog{position:absolute;right:13px;top:10px;border:0;background:none;font-size:27px;color:#778267;width:40px;height:40px;border-radius:50%}.close-dialog:hover{background:#e9ecdf}.dialog-character{width:96px;height:96px;border-radius:50%;background:#e4e9d5;margin:0 auto 18px}.dialog-character svg{width:100%;height:100%}dialog .eyebrow{font-size:8px;letter-spacing:1.8px;margin-bottom:10px}dialog h2{font-size:34px}.dialog-quote{font-family:var(--serif);font-size:19px;line-height:1.45;margin:20px 0 12px;color:#5e7153}.dialog-detail{font-size:12px;line-height:1.75;color:#7a836e;margin:0 0 23px}.primary-button{border:1px solid #577451;background:#5c7c53;color:#fffbef;border-radius:100px;min-height:44px;padding:12px 26px;font-size:12px;box-shadow:0 3px 0 #496943}.primary-button:hover{background:#4c6d44;transform:translateY(-1px)}.primary-button:disabled{background:#8c9e7d;border-color:#8c9e7d;box-shadow:none;transform:none}.dialog-footnote{font-size:9px;margin:18px 0 0;color:#929b85}.no-script{padding:40px}.heart-pop{animation:heart-rise 2s ease-out forwards;pointer-events:none}@keyframes sway{from{transform:rotate(-2deg)}to{transform:rotate(2deg)}}@keyframes breathe{50%{transform:scale(1.025,.98)}}@keyframes drift{to{transform:translateX(55px)}}@keyframes flutter{0%,100%{transform:translate(0,0) rotate(-12deg)}35%{transform:translate(20px,-17px) rotate(10deg)}70%{transform:translate(-10px,-9px) rotate(-6deg)}}@keyframes smoke{0%{opacity:0;transform:translate(0,0) scale(.7)}35%{opacity:.5}100%{opacity:0;transform:translate(-10px,-25px) scale(1.4)}}@keyframes water{to{transform:translateX(8px);opacity:.65}}@keyframes twinkle{to{opacity:calc(var(--firefly-opacity)*.3);transform:translate(2px,-5px)}}@keyframes star{to{opacity:.4}}@keyframes waddle{to{transform:rotate(6deg)}}@keyframes heart-rise{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-60px)}}
@media(min-width:1600px){.welcome{padding-top:68px;padding-bottom:54px}.village-section{max-width:1530px}}@media(max-width:1050px){.site-header{padding:0 32px;height:85px}.site-header nav{gap:23px}.open-status{display:none}.welcome{padding:42px 38px 30px}h1{font-size:56px}.welcome-note{max-width:290px}.village-section{padding:0 23px}.weather{display:none}.divider{display:none}.world{min-width:950px}.neighbor-list{grid-template-columns:repeat(4,1fr);row-gap:20px}.neighbors-section{padding:56px 40px}.story-section{padding:50px 45px;gap:15px}.story-section h2{font-size:31px}.story-section .eyebrow{max-width:280px}.caption-note{display:none}.map-tag{bottom:24px;left:20px}.scene-controls{right:20px}}
@media(max-width:640px){.site-header{height:77px;padding:0 22px}.wordmark{font-size:24px;gap:7px}.logo{transform:scale(.85);margin-left:-3px;margin-right:-4px}.site-header nav a{display:none}.site-header nav a[href='#neighbors']{display:block;font-size:11px}.welcome{display:block;padding:31px 25px 25px}.eyebrow{font-size:8px;letter-spacing:1.5px;margin-bottom:14px}h1{font-size:51px;letter-spacing:-1.8px}.welcome-note{padding-top:21px;max-width:320px;font-size:12px;line-height:1.7}.welcome-note p:nth-child(2){display:none}.welcome-note .text-link{margin-top:0;font-size:11px;gap:50px}.village-section{padding:0 12px}.village-toolbar{padding:12px 4px;gap:8px}.scene-label{font-size:9px;gap:6px}.interaction-hint{font-size:0}.interaction-hint span{font-size:16px}.village-window{border-radius:14px}.world{min-width:920px}.map-scroll{padding-bottom:100px;scrollbar-width:none}.map-tag{display:none}.scene-controls{left:12px;right:12px;bottom:37px;justify-content:center;gap:7px}.scene-controls button{font-size:10px;padding:9px 12px;flex:1;justify-content:center;max-width:125px}.mobile-hint{display:block;position:absolute;bottom:7px;width:100%;margin:0;text-align:center;font-size:9px;letter-spacing:1px;color:#506748}.village-window[data-time=night] .mobile-hint{color:#d0dbb2}.village-caption{font-size:9px;padding:12px 3px;align-items:start}.activity-indicator{font-size:15px;line-height:1}.neighbors-section{padding:45px 22px 35px}.section-heading{display:block;margin-bottom:21px}.section-heading>p{display:none}.section-heading .eyebrow{font-size:8px;letter-spacing:1.3px}h2{font-size:29px}.neighbor-list{grid-template-columns:repeat(3,1fr);gap:6px 0}.neighbor-card{padding:10px 0 15px}.portrait{width:70px;height:70px;margin-bottom:11px}.neighbor-card strong{font-size:18px}.neighbor-card small{font-size:8px}.neighbor-card:last-child{grid-column:2}.story-section{padding:28px 26px 34px;display:flex;flex-direction:column;gap:25px;text-align:center}.story-art{transform:scale(.85);height:180px}.story-section h2{font-size:31px}.story-section .eyebrow{max-width:none;font-size:7px}.story-section p:not(.eyebrow){font-size:11px}.story-section{margin:0 18px}.toast{bottom:105px;font-size:11px;line-height:1.5;padding:10px 17px}footer{margin:0 20px;padding:24px 0;flex-direction:column;gap:12px;font-size:8px}.dialog-quote{font-size:18px}dialog{padding:27px 25px 22px}.dialog-character{width:85px;height:85px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}.reduced-motion .world *{animation:none!important;transition:none!important}*{scroll-behavior:auto!important;transition:none!important}.neighbor-card:hover,.scene-controls button:hover{transform:none}}

.world .spinning{animation:whirl 3s cubic-bezier(.1,.7,.1,1)}.world .tea-bob{animation:tea-bob 1s ease-in-out}@keyframes whirl{to{transform:rotate(720deg)}}@keyframes tea-bob{50%{transform:translateY(-4px)}}

/* Vector control shapes avoid dependence on decorative font glyphs. */
.shape-icon{display:inline-block;width:1em;height:1em;vertical-align:middle;flex-shrink:0}.control-icon .shape-icon{width:18px;height:18px}.mobile-hint .shape-icon{width:12px;height:12px}
