/* World colors belong to Byeoli; surrounding paper/ink follows the workroom palette. */
/* Scoped toolbar typography must beat the inherited global button font. */
body.village .v-world{container-type:inline-size}
/* Idle presentation only: keep weather and the current-life caption visible. */
body.village .v-maptools,body.village .v-audio{transition:opacity .22s ease}
body.village .v-controls-idle .v-maptools,body.village .v-controls-idle .v-audio{opacity:0;pointer-events:none}
@media(prefers-reduced-motion:reduce){body.village .v-maptools,body.village .v-audio{transition:none}}
body.village .v-maptools{display:flex;flex-wrap:nowrap;gap:7px;max-width:none;right:14px;top:14px;z-index:5;align-items:flex-start}
.v-tool-group,.v-tool-more>.v-more-toggle{background:#fffdf2ed;border:1px solid #e8e8d8;box-shadow:0 2px 9px #233a2520,inset 0 1px #fff;border-radius:12px}
.v-tool-group{display:flex;align-items:center;padding:3px;gap:1px}
body.village .v-maptools .v-tool{font:500 11px/1.2 -apple-system,'Apple SD Gothic Neo',sans-serif;letter-spacing:-.02em;min-width:28px;min-height:30px;padding:6px;display:inline-flex;align-items:center;justify-content:center;gap:5px;color:#52634b;background:transparent;border:0;border-radius:8px;box-shadow:none;white-space:nowrap;cursor:pointer}
body.village .v-maptools .v-tool:hover{background:#e9eedf;color:#304a39}
body.village .v-maptools .v-tool:active{background:#dce6d1}
body.village .v-maptools .v-tool[aria-pressed=true]{background:#dfe8d5;color:#355743}
.v-maptools svg{width:16px;height:16px;flex:none}
.v-tool-group .v-tool:nth-child(3){margin-left:3px}
body.village .v-maptools .v-track-switch{padding:6px 8px;margin-left:3px;border-left:1px solid #dce2d2;border-radius:0 8px 8px 0;font-size:10px;gap:6px}
body.village .v-track-switch input{appearance:none;-webkit-appearance:none;width:23px;height:13px;border-radius:8px;background:#c8d0c0;border:0;position:relative;margin:0;cursor:pointer;flex:none;transition:background .15s}
.v-track-switch input::after{content:'';position:absolute;width:9px;height:9px;background:#fffef6;border-radius:50%;left:2px;top:2px;box-shadow:0 1px 2px #0002;transition:transform .15s}
body.village .v-track-switch input:checked{background:#698564}.v-track-switch input:checked::after{transform:translateX(10px)}
body.village .v-maptools .v-more-toggle{min-width:34px;min-height:38px;border:1px solid #e8e8d8;border-radius:12px;background:#fffdf2ed;box-shadow:0 2px 9px #233a2520}
.v-tool-more{position:relative}
.v-tool-options{position:absolute;right:0;top:44px;width:158px;padding:8px;background:#fffdf3f7;border:1px solid #dde3d2;border-radius:14px;box-shadow:0 8px 25px #1a322533;display:grid;gap:4px}
.v-tool-options[hidden]{display:none}.v-tool-options>small{font-size:9px;letter-spacing:.06em;color:#8b9780;padding:5px 7px 7px}
body.village .v-tool-options .v-tool{justify-content:flex-start;padding:9px 10px;min-height:34px}
.v-tool-options .v-tool[aria-pressed]::after{content:'';width:5px;height:5px;border-radius:50%;background:#b9c2af;margin-left:auto}
.v-tool-options .v-tool[aria-pressed=true]::after{background:#648360}
@container(max-width:560px){body.village .v-maptools{left:12px;right:auto;top:66px;gap:6px}body.village .v-maphead{top:14px;left:14px}body.village .v-maphead p,body.village .v-maphead .v-chips{display:none}body.village .v-sky{top:116px;left:14px;width:86px;height:66px}body.village .v-card{top:111px}}
@container(max-width:360px){body.village .v-maptools .v-track-switch{font-size:0;gap:0;padding:6px}.v-tool-group{gap:0}body.village .v-maptools{gap:5px}}
@media(prefers-reduced-motion:reduce){body.village .v-track-switch input,.v-track-switch input::after{transition:none}}
/* Journal overrides sit at higher specificity than the older speech-card rules. */
body.village #taste{padding:12px 13px;margin:8px 0 13px;text-align:left;min-width:0;width:100%;box-sizing:border-box}
body.village #taste .taste-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 12px;align-items:center;font-size:11px;line-height:1.5;letter-spacing:0;color:#52684d}
body.village #tasteHint{grid-column:1/-1;grid-row:2;font-size:11px;line-height:1.7;margin:0;color:#778570;white-space:normal;word-break:keep-all;overflow-wrap:anywhere}
body.village #taste .taste-more{grid-column:2;grid-row:1;display:block;float:none;white-space:nowrap;margin:0;font-size:10px;color:#7a8b70}
body.village .v-section-title{gap:10px;line-height:1.5;align-items:baseline}body.village .v-section-title b{white-space:nowrap;flex-shrink:0}
body.village #stream{display:block;padding:0;overflow-anchor:none}
body.village #stream .v-journal-line{margin:0;padding:3px 0;border:0;border-radius:0;background:none;box-shadow:none;font-size:12px;line-height:1.5;animation:none;color:#425841;overflow-wrap:anywhere}
body.village #stream .v-journal-line p{margin:0;line-height:inherit}
body.village #stream .v-journal-action{color:#73816a;margin-top:1px}
body.village #stream .v-journal-duration{display:block;margin-left:23px;font-size:10px;color:#98a18f}
body.village #stream .v-ppae-line{text-align:right;padding-left:22%;color:#778367}
.v-journal-who{display:block;font-size:9px;line-height:1.3;color:#919b89;letter-spacing:.08em}
.v-record-tools{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:4px 0 13px;border-bottom:1px solid #dfe5d8;margin-bottom:8px}
.v-record-tools>span{flex-basis:100%;font-size:10px;color:#829178;padding-bottom:3px}
.v-record-tools .v-tool{font-size:10px;padding:6px 8px;min-height:30px}
.v-life-details{margin-top:16px;border-top:1px solid #dfe5d8;padding-top:12px;color:#788970;font-size:11px}
.v-life-details>summary{cursor:pointer}
body.village .taste-more{display:inline;margin-left:6px;font-size:9px}
.v-share-preview{border:1px solid #52644c;border-radius:18px;padding:16px;background:#10171b;color:#e8e4d8;width:min(490px,94vw);max-height:92dvh;overflow:auto;margin:auto;box-shadow:0 12px 70px #0008}
.v-share-preview::backdrop{background:#08100bd9}
.v-share-preview header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:12px}
.v-share-preview h2{font-size:16px;font-weight:500}
.v-share-preview img{display:block;width:100%;height:auto;border-radius:8px}
.v-share-preview footer{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.v-share-preview a{text-decoration:none}.v-share-preview [role=status]{width:100%;font-size:11px;color:#a7b49a}
body.village #pr-sheet{--ink:#e8e4d8;--sage:#a7b49a;--dim:#7d8790;--line:#293239;color:var(--ink)}
@media(max-width:620px){body.village .v-main{grid-template-rows:minmax(260px,1fr) minmax(220px,36dvh)}body.village #taste{display:none}body.village #stream .v-journal-line{font-size:12px}.v-record-tools{padding-bottom:8px}.v-record-tools>span{flex-basis:auto;margin-right:auto}.v-record-tools .v-tool{font-size:9px;padding:5px 6px}.v-share-preview{padding:12px}}
body.village{--paper:#f7f7f7;--ink:#253c32;--muted:#758176;--accent:#b4552d;background:#e9eee5;color:var(--ink);font-family:-apple-system,'Apple SD Gothic Neo',sans-serif;-webkit-font-smoothing:antialiased}
.v-sky{position:absolute;left:20px;top:123px;width:112px;height:77px;border-radius:18px;background:linear-gradient(#9bcfe0,#e8e5c7);border:1px solid #e4efdc99;box-shadow:0 3px 10px #15223e22;pointer-events:none;overflow:hidden;color:#304c57}.v-sky[data-night=true]{background:linear-gradient(#12213c,#3b4963);color:#f4e8c7}.v-sky-orb{position:absolute;font:40px Georgia,serif;left:15px;top:0;color:#fff1ae;text-shadow:0 0 14px #ffdd76}.v-sky-cloud{position:absolute;font:47px Georgia,serif;right:9px;top:3px;color:#e4e9e7;text-shadow:0 2px #8699ac}.v-sky-detail{position:absolute;right:24px;top:32px;font-size:20px;color:#ffe895}.v-sky small{position:absolute;bottom:6px;left:0;right:0;font-size:10px;text-align:center}.is-night .v-maphead,.is-night .v-maphead p{color:#e8dfcb;text-shadow:0 1px #101b30}.v-learning{padding:12px;margin:10px 0;background:#edf0e3;border-radius:14px;font-size:12px;line-height:1.8}.v-learning h3{font-size:13px}.v-learning p,.v-learning small{color:#72816b;font-size:10px}.v-learning ul{padding-left:16px}@media(max-width:620px){.v-sky{top:86px;left:12px;width:95px;height:67px}}
.village #app,.village #ob-sheet,.village #obsDock,.village #liveStatusBadge,.village #album-sheet{display:none!important}
.v-shell{height:100dvh;display:grid;grid-template-rows:76px 1fr 37px;padding:0 24px;max-width:1920px;margin:auto}
.v-header{display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid #ccd6c8}
.v-brand{display:flex;align-items:center;gap:13px}.v-symbol{width:34px;height:34px;display:grid;place-items:center;font-size:27px;color:#638270}
.v-brand h1{font-family:'Noto Serif KR',serif;font-size:21px;letter-spacing:-.05em;font-weight:600}.v-brand p{font-size:10px;letter-spacing:.1em;color:#7b897e;margin-top:4px}
.v-header nav{display:flex;align-items:center;gap:18px;font-size:12px;color:#6c7e70}.v-live{display:flex;align-items:center;gap:7px;font-size:11px}.v-dot{width:6px;height:6px;background:#6a9775;border-radius:50%;box-shadow:0 0 0 4px #6a977518}
.v-main{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;padding:18px 0 12px}
.v-world{position:relative;min-height:0;background:#b8cca1;border:1px solid #a8b797;overflow:hidden;border-radius:4px}
#v-canvas{display:block;width:100%;height:100%;image-rendering:pixelated;touch-action:none;cursor:grab}
#v-canvas:active{cursor:grabbing}.v-maphead{position:absolute;top:18px;left:20px;pointer-events:none;color:#365643;text-shadow:0 1px #ffffff77}
.v-maphead small{font-size:9px;letter-spacing:.2em}.v-maphead h2{font-family:'Noto Serif KR',serif;font-size:23px;letter-spacing:-.05em;margin-top:5px;font-weight:600}.v-maphead p{font-size:11px;margin-top:6px;color:#57745a}
.v-chips{display:flex;gap:5px;margin-top:10px}.v-chip{font-size:10px;font-weight:600;color:#304b39;text-shadow:none;border:1px solid #a9b89a;padding:4px 7px;background:#f1f5e3;border-radius:2px}
.v-duck-usage{margin:14px 0;padding:12px;border:1px solid #d4ddc7;border-radius:16px;background:#f0f3e8;color:#35513e}.v-duck-usage h3{margin:0 0 9px;font-size:13px}.v-duck-live{font-size:12px;margin:0 0 10px}.v-duck-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;text-align:center}.v-duck-counts div{background:#fffaf0;border-radius:12px;padding:9px 3px}.v-duck-counts strong{display:block;font:600 20px/1.2 sans-serif;font-variant-numeric:tabular-nums}.v-duck-counts span{display:block;font-size:10px;margin-top:5px}.v-duck-usage .v-hint{font-size:10px;line-height:1.65;color:#50634b}.v-duck-usage h4{font-size:11px;margin:12px 0 6px}.v-duck-recent{list-style:none;padding:0;font-size:10px}.v-duck-recent li{margin:7px 0}.v-duck-recent small{display:block;color:#50634b;line-height:1.6}.v-duck-diagnostics summary{font-size:10px;cursor:pointer;padding:6px 0}
.v-maptools{position:absolute;right:14px;top:14px;display:flex;gap:5px}.village button,.village input{font:inherit}.village button{cursor:pointer}
.v-tool{min-width:34px;min-height:34px;border:1px solid #83987a65;border-radius:3px;background:#f7f7f7ed;color:#3f5b46;padding:7px 10px;font-size:11px;box-shadow:0 2px 0 #60785318}
.v-tool:hover{background:#fff}.v-tool[aria-pressed=true]{background:#355743;color:#fff}.v-bottom{position:absolute;left:16px;right:16px;bottom:14px;display:flex;align-items:flex-end;justify-content:space-between;gap:10px;pointer-events:none}
.v-follow{background:#f7f7f7ef;border:1px solid #8299796b;box-shadow:0 3px 0 #59734d18;padding:10px 13px;border-radius:3px;max-width:350px;pointer-events:auto}
.v-follow small{font-size:9px;color:#83927e;letter-spacing:.08em}.v-follow p{font-size:12px;margin-top:5px;color:#34523d;line-height:1.5}.v-follow b{color:#b4552d;margin-right:6px}
.v-audio{pointer-events:auto;display:flex;gap:8px;align-items:center;background:#f7f7f7e8;padding:7px 10px;border:1px solid #899d8060;border-radius:3px}.v-audio span{font-size:10px;color:#697d64}.v-audio button{border:0;background:none;font-size:12px;color:#355743;padding:5px}.v-audio select{max-width:100px;border:1px solid #d4dcc7;border-radius:10px;padding:5px;background:#f5f7ec;color:#355743;font:inherit;font-size:11px}
.v-side{background:var(--paper);border:1px solid #d9dfd3;border-radius:4px;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.v-tabs{display:flex;flex-shrink:0;border-bottom:1px solid #dde3d8;padding:0 15px}.v-tabs button{flex:1;padding:16px 0 13px;font-size:12px;color:#889183;border:0;border-bottom:2px solid transparent;background:none}.v-tabs button[aria-selected=true]{color:#365743;border-bottom-color:#b4552d;font-weight:600}
.v-tabpane{min-height:0;flex:1;overflow:auto;padding:17px}.v-tabpane[hidden]{display:none}.v-section-title{display:flex;justify-content:space-between;align-items:center;margin:0 0 13px;font-size:11px;color:#778573}.v-section-title b{font-weight:500;color:#a5ad9e;font-size:10px}
.v-resident{width:100%;border:0;border-bottom:1px solid #e4e8de;background:none;display:flex;gap:12px;align-items:center;text-align:left;padding:11px 0;color:#334d39}.v-resident:hover{background:#edf1e9}.v-resident canvas{width:36px;height:44px;image-rendering:pixelated;background:#e8eee2;border:1px solid #dbe4d3;flex-shrink:0}.v-resident strong{font-size:12px;display:block;font-weight:600}.v-resident small{font-size:10px;color:#88927f;display:block;margin-top:4px}.v-resident em{font-size:10px;font-style:normal;color:#7f9078;display:block;margin-top:4px}
.v-search{width:100%;padding:9px 10px;background:#edf1e9;border:1px solid #dce3d5;border-radius:3px;color:#344e3c;font-size:11px!important;margin-bottom:10px}
#v-animal-center{font-size:11px;padding:7px 11px}#v-animal-list .v-resident canvas{aspect-ratio:1;object-fit:contain}
.v-card{position:absolute;right:17px;top:66px;bottom:78px;width:285px;max-height:570px;background:#f7f7f7f7;border:1px solid #b8c5ac;border-radius:4px;box-shadow:0 8px 30px #2034202e;overflow:auto;padding:20px;z-index:4;backdrop-filter:blur(5px)}
.v-card[hidden]{display:none}.v-card-close{position:absolute;right:9px;top:7px;border:0;background:none;color:#829077;padding:8px;font-size:18px!important}.v-card-hero{display:flex;align-items:center;gap:16px;margin:12px 0 15px}.v-card-hero canvas{width:54px;height:72px;background:#e6eddf;image-rendering:pixelated;border:1px solid #d5dfcc}.v-card h2{font-family:'Noto Serif KR',serif;font-size:24px;font-weight:500}.v-card-hero p{font-size:11px;color:#88947c;margin-top:7px}.v-desc{font-size:12px;line-height:1.85;color:#68765f;border-bottom:1px solid #dfe5d8;padding-bottom:16px;margin-bottom:14px;word-break:keep-all}.v-card h3{font-size:10px;letter-spacing:.1em;color:#8c997e;margin:19px 0 9px;font-weight:500}.v-card .v-now{font-size:12px;color:#435b3b;line-height:1.65}.v-card ul{padding:0;list-style:none}.v-card li{font-size:11px;line-height:1.7;padding:6px 0;border-bottom:1px solid #e8ecdf;color:#65745b}.v-card .v-origin{font-size:9px;color:#9ca58f;line-height:1.6;margin-top:24px}.v-card-actions{display:flex;gap:7px;margin:12px 0}.v-card-actions button{flex:1}
.v-log{padding:12px 0;border-bottom:1px solid #e1e6db}.v-log small{font-size:9px;color:#a0a892}.v-log p{font-size:11px;color:#66765c;line-height:1.8;margin-top:4px;word-break:keep-all}.v-log.social p{color:#967a52}.village #stream{overflow:visible;background:none;min-height:0;flex:none}.village #stream .msg{color:#516b4f;border-bottom:1px solid #e1e6db;font:12px/1.85 -apple-system,'Apple SD Gothic Neo',sans-serif;padding:13px 0;animation:none}.village #taste{background:#edf1e8;color:#536d4d;font-size:11px;padding:12px;border:1px solid #dde4d4;border-radius:3px;margin:8px 0 15px}.village #tasteHint{display:block;color:#8b997e;font-size:10px;margin-top:5px}.village #tasteList{display:none}.village .taste-more{display:none}.v-empty{font-size:12px;line-height:1.9;color:#93a087;margin:20px 0;word-break:keep-all}.v-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:15px 0}.v-stats div{background:#edf1e8;text-align:center;padding:12px 2px}.v-stats b{font:20px Georgia,serif;color:#546d4c;display:block}.v-stats span{font-size:9px;color:#94a084;display:block;margin-top:6px}
.v-foot{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#86967d;gap:10px}.v-foot a{color:inherit;text-decoration:none}.v-foot a:hover{color:#b4552d}.v-hint{font-size:10px;color:#839177;margin:6px 0 15px;line-height:1.7}
.village.quiet .v-main{grid-template-columns:1fr}.village.quiet .v-side{display:none}.village.quiet .v-maphead{opacity:.4;transition:opacity 1s}.village button:focus-visible,.village input:focus-visible{outline:2px solid #b4552d;outline-offset:3px}
@media(max-width:850px){.v-shell{padding:0 12px;grid-template-rows:66px 1fr 32px}.v-main{grid-template-columns:minmax(0,1fr) 245px;gap:10px;padding-top:10px}.v-header nav{display:none}.v-maphead h2{font-size:19px}.v-card{width:255px}}
@media(max-width:620px){.v-shell{padding:0 8px;grid-template-rows:60px 1fr 30px}.v-brand h1{font-size:18px}.v-brand p{font-size:8px}.v-live{font-size:9px}.v-main{grid-template-columns:1fr;grid-template-rows:minmax(300px,1fr) 220px;gap:8px;padding:8px 0}.v-tabs button{padding:11px 0;font-size:11px}.v-tabpane{padding:10px 14px}.v-maphead{top:13px;left:12px}.v-maphead h2{font-size:18px}.v-maphead p,.v-chips{display:none}.v-maptools{right:8px;top:8px}.v-maptools .v-tool{font-size:10px;min-width:29px;padding:6px}.v-bottom{left:8px;right:8px;bottom:8px}.v-follow{padding:7px 10px;max-width:220px}.v-follow p{font-size:10px}.v-audio span{display:none}.v-card{top:48px;bottom:55px;width:250px;right:8px;padding:15px}.v-card-hero{margin:0 0 12px}.v-card-hero canvas{width:36px;height:48px}.v-foot span:nth-child(2){display:none}.village.quiet .v-main{grid-template-rows:1fr}.v-resident{padding:8px 0}}
.v-building-portrait{display:block;width:100%;height:230px;object-fit:contain;image-rendering:pixelated;margin-top:-45px;margin-bottom:-20px}
.v-manri-card{background:#F5F1E9!important;color:#1C1B19!important;border-color:#D7D0C3!important}.v-manri-card h2{font-family:Georgia,'Noto Serif KR',serif;font-size:26px;margin:5px 0}.v-home-label{letter-spacing:.1em;color:#716D65;font-size:10px}.v-home-room{width:100%;height:auto;image-rendering:pixelated;display:block}.v-home-state{font-size:13px;line-height:1.7;color:#1C1B19}.v-manri-card .v-origin{color:#716D65}
.v-mood{background:#e7eadb;border:1px solid #d9deca;padding:10px;margin:12px 0;border-radius:4px}.v-mood strong{font-size:12px}.v-mood p{font-size:13px;line-height:1.6}.v-mood small{font-size:10px;line-height:1.5;color:#6c7560}
.v-world,.v-side{border-radius:18px}.v-card{border-radius:22px;box-shadow:0 8px 25px #35433024;border:2px solid #d4dbc7;background:#fffaf0f7}.v-follow{border-radius:16px;background:#fffaf0f2;border-color:#b8c4a5;box-shadow:0 3px 8px #52644316}.v-chip{border-radius:12px}.v-tool{border-radius:12px;background:#fffaf0f2;border-color:#b5c1a6;box-shadow:0 2px 0 #72866623}.v-resident{border-radius:12px;padding-left:7px;padding-right:7px}.v-resident canvas,.v-card-hero canvas{border-radius:11px}.v-search,.v-mood,.v-stats div,.village #taste{border-radius:13px}.village #stream .msg{margin:8px 0;padding:12px;background:#f0f2e9;border:1px solid #e2e6d7;border-radius:14px 14px 14px 4px}.v-log{border-radius:12px;margin-bottom:7px;padding:10px;background:#eff2e7}.v-audio{border-radius:16px;max-width:340px;flex-wrap:wrap;justify-content:center;gap:4px;padding:8px 10px;background:#fffaf0f2}.v-audio>span{display:none}.v-audio button{border:1px solid #d4dcc7;border-radius:10px;padding:6px 8px;background:#f5f7ec;font-size:11px}.v-audio button[aria-pressed=true]{background:#dfe8cc;color:#355743}.v-audio input{width:90px;accent-color:#71865b}.v-audio small{flex-basis:100%;font-size:9px;text-align:center;color:#607150}.v-maptools{flex-wrap:wrap;max-width:62%;justify-content:flex-end}.v-card-close{border-radius:50%;background:#eaf0e1;width:29px;height:29px;padding:0;top:12px;right:12px}@media(max-width:620px){.v-audio{max-width:210px}.v-maptools{max-width:72%}.v-bottom{gap:5px}.v-follow{max-width:155px}.v-world,.v-side{border-radius:14px}.v-card{border-radius:18px;top:83px;bottom:90px}}
/* The transport card shares the small, quiet village controls. */
.v-bus-status{padding:8px 10px;border-radius:12px;background:#e3ead6;color:#365c45;font-size:12px}
body.village .v-card[aria-label="버스 이야기"] p{font-size:11px;line-height:1.7}
body.village .v-card[aria-label="버스 이야기"] .v-tool{font-size:11px;padding:7px 10px;line-height:1.4}
.v-bus-roster{list-style:none;padding:0!important}.v-bus-roster li{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:6px 0}
.v-bus-table{width:100%;border-collapse:collapse;font-size:10px;margin:8px 0}.v-bus-table th,.v-bus-table td{border-bottom:1px solid #dbe2d1;padding:7px 3px;text-align:left}.v-bus-table td{white-space:nowrap;font-variant-numeric:tabular-nums}.v-bus-table th{font-weight:500}
/* A quiet, searchable shelf; separate from the continuously refreshed actor card. */
.v-book-shelf{box-sizing:border-box;width:min(620px,92vw);max-height:85vh;overflow:auto;border:1px solid #c2cbb6;border-radius:20px;padding:24px;background:#faf8ee;color:#405744;font:13px/1.6 sans-serif;box-shadow:0 16px 70px #18271e55}
.v-book-shelf::backdrop{background:#14211999}.v-book-shelf h2{font-size:19px}.v-book-shelf>a{color:#557354;font-size:12px}.v-book-shelf>button{float:right}.v-book-shelf input{box-sizing:border-box;width:100%;padding:10px 12px;border:1px solid #c2cbb6;border-radius:10px;background:#fffdf5;color:#405744;font-size:13px}.v-book-list{padding-left:30px}.v-book-list li{padding:9px 6px;border-bottom:1px solid #dfe5d6}.v-book-list small{display:block;color:#72836a;font-size:11px}
.v-book-shelf{position:fixed;inset:0;margin:auto}
/* Weather is information, not a second floating card. */
body.village .v-maphead h2{display:flex;align-items:center;gap:9px}
.v-sea-back{position:absolute;top:16px;right:16px;z-index:6;padding:9px 13px!important;font-size:12px!important}
.v-sea-status{position:absolute;left:16px;right:16px;bottom:30px;margin:0;color:#f4ecd7;font-size:11px;line-height:1.6;text-shadow:0 1px 3px #142e38;pointer-events:none}
.is-sea-view .v-maphead p,.is-sea-view .v-chips,.is-sea-view .v-maptools,.is-sea-view .v-bottom,.is-sea-view .v-mobile-toggle{display:none!important}
.is-sea-view .v-maphead{pointer-events:none}
#v-sea-presence{pointer-events:auto;display:block;max-width:min(340px,100%);margin-top:7px;padding:6px 10px;min-height:34px;border:1px solid #bfcbb0;border-radius:12px;background:#faf8ecf2;color:#355642;font:11px/1.5 -apple-system,'Apple SD Gothic Neo',sans-serif;text-shadow:none;text-align:left;cursor:pointer;white-space:normal}
#v-sea-presence[hidden],.is-sea-view #v-sea-presence{display:none!important}
body.village.quiet .v-maphead:has(#v-sea-presence:not([hidden])){opacity:1}
.is-sea-view .v-maphead h2,.is-sea-view .v-maphead small{color:#f5efdb;text-shadow:0 1px 3px #435e63}
body.village .is-sea-view:not(.is-night) .v-maphead h2,body.village .is-sea-view:not(.is-night) .v-maphead small{color:#2d5357;text-shadow:0 1px 2px #f1efcf88}
.is-sea-view .v-maphead{max-width:calc(100% - 126px)}
.v-sea-audio{position:absolute;top:62px;right:16px;z-index:7;color:#344d47;font:11px/1.5 -apple-system,'Apple SD Gothic Neo',sans-serif}
.v-sea-audio[hidden]{display:none}
.v-sea-audio summary{list-style:none;cursor:pointer;border:1px solid #eceddb88;border-radius:20px;padding:8px 12px;background:#f5f1dfdd;min-height:40px;box-sizing:border-box;text-align:center}
.v-sea-audio summary::-webkit-details-marker{display:none}
.v-sea-audio>div{position:absolute;right:0;top:44px;width:158px;padding:10px;border:1px solid #d9dfcf;border-radius:14px;background:#f9f6ebf5;box-shadow:0 8px 24px #142f3720;display:grid;gap:7px}
body.village .v-sea-audio button{font:11px/1.3 -apple-system,'Apple SD Gothic Neo',sans-serif;min-height:40px;padding:8px;border:1px solid #cdd8c3;border-radius:9px;background:#faf9f1;color:#405b4c;cursor:pointer}
body.village .v-sea-audio button[aria-pressed=true]{background:#dfe8d3}
.v-sea-audio small{font-size:9px;color:#72836e;text-align:center}
.v-sea-audio :focus-visible,.v-sea-back:focus-visible{outline:2px solid #3e776f;outline-offset:3px}
@media(max-width:620px){.v-sea-back{top:12px;right:12px;min-height:40px}.v-sea-status{left:12px;right:12px;font-size:10px;bottom:30px}}
body.village .v-sky.v-sky-inline{position:static;display:inline-block;flex:none;width:auto;height:auto;overflow:visible;border:0;border-radius:0;background:none;box-shadow:none;font:20px/1.2 sans-serif;text-shadow:none}
.v-mobile-toggle,.v-mobile-panel{display:none}
.v-mobile-panel[hidden]{display:none!important}
@media(max-width:620px){
  body.village .v-shell{padding:0 6px;height:100dvh;min-height:0;grid-template-rows:30px minmax(0,1fr)}
  body.village .v-header{gap:8px;min-width:0}
  body.village .v-brand{gap:6px;flex:none}.v-brand p{display:none}
  body.village .v-brand h1{font-size:13px;line-height:1.2;margin:0;white-space:nowrap}
  body.village .v-symbol{width:18px;height:18px;font-size:16px}
  body.village .v-live{font-size:8px;line-height:1.2;min-width:0;gap:6px}
  body.village #v-status{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:43vw}
  body.village .v-main{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(220px,56fr) minmax(170px,44fr);gap:5px;padding:5px 0 max(5px,env(safe-area-inset-bottom))}
  body.village.quiet .v-main{grid-template-rows:1fr}
  body.village .v-maphead{top:8px;left:9px;right:48px}
  body.village .v-maphead>small{display:none}
  body.village .v-maphead h2{font-size:14px;line-height:1.3;gap:5px;margin:0}
  body.village .v-sky.v-sky-inline{font-size:16px}
  body.village #v-sea-presence{min-height:26px;margin-top:4px;padding:3px 6px;border-radius:8px;font-size:10px;line-height:1.35}
  body.village .v-mobile-toggle{position:absolute;display:grid;place-items:center;top:5px;right:5px;width:34px;height:34px;z-index:7;border:1px solid #d7d0c3;border-radius:10px;background:#fffaf0ee;color:#405744;box-shadow:0 2px 8px #24372214;cursor:pointer}
  body.village .v-mobile-toggle[aria-expanded=true]{background:#e4ebd9}
  body.village .v-mobile-panel{display:block;position:absolute;z-index:8;top:43px;right:6px;width:min(290px,calc(100% - 12px));max-height:calc(100% - 49px);overflow:auto;overscroll-behavior:contain;box-sizing:border-box;padding:10px;border:1px solid #d7d0c3;border-radius:14px;background:#fffaf0fa;color:#405744;box-shadow:0 6px 22px #20342025}
  .v-mobile-panel>header{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;padding-left:5px}
  body.village .v-mobile-close{min-width:44px;min-height:44px;border:0;border-radius:10px;background:none;color:#716d65;font-size:11px}
  body.village .v-mobile-panel .v-maptools{position:static;display:flex;flex-direction:column;align-items:stretch;gap:7px;max-width:none;opacity:1;pointer-events:auto}
  .v-mobile-panel .v-tool-group{flex-wrap:wrap;justify-content:flex-start;box-shadow:none;background:#f2f4e9;border-color:#e1e5d7;gap:0;padding:2px}
  body.village .v-mobile-panel .v-maptools .v-tool{min-width:44px;min-height:44px;padding:8px;font-size:12px}
  body.village .v-mobile-panel .v-maptools .v-track-switch{font-size:11px;gap:8px;margin-left:auto}
  .v-mobile-panel .v-tool-group .v-tool:nth-child(3){margin-left:0}
  .v-mobile-panel .v-tool-more{display:flex;flex-wrap:wrap;align-items:flex-start}
  body.village .v-mobile-panel .v-more-toggle{width:100%;box-shadow:none;border-color:#e1e5d7}
  .v-mobile-panel .v-tool-options{position:static;width:100%;box-sizing:border-box;box-shadow:none;margin-top:4px}
  .v-mobile-audio-label{display:block;font-size:10px;color:#716d65;padding:12px 5px 4px}
  .v-mobile-records{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:7px;border-top:1px solid #e1e5d7;padding-top:7px}
  body.village .v-mobile-records :is(button,a){font-size:11px;line-height:1.4;min-height:40px;padding:6px;display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;color:#405744;box-sizing:border-box}
  body.village .v-mobile-panel .v-audio{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-width:none;width:100%;box-sizing:border-box;padding:0;border:0;background:none;opacity:1;pointer-events:auto}
  body.village .v-mobile-panel .v-audio button{font-size:12px;min-height:44px;padding:7px 4px}
  body.village .v-mobile-panel .v-audio select{font-size:16px;min-width:0;max-width:100%;width:100%;min-height:44px;padding:4px}
  body.village .v-mobile-panel .v-audio input{grid-column:1/-1;width:100%;height:36px;margin:0}
  body.village .v-mobile-panel .v-audio small{grid-column:1/-1;font-size:10px;line-height:1.5;overflow-wrap:anywhere}
  body.village .v-bottom{left:6px;right:6px;bottom:6px}
  body.village .v-follow{max-width:none;width:100%;box-sizing:border-box;border-radius:9px;padding:4px 7px;box-shadow:none}
  body.village .v-follow small{display:none}
  body.village .v-follow p{margin:0;font-size:10px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  body.village .v-card{top:61px;right:8px;bottom:61px;width:calc(100% - 16px);max-width:320px;box-sizing:border-box;padding:15px}
  body.village .v-card-close{width:44px;height:44px;top:6px;right:6px}
  body.village .v-tabs{padding:0 7px}
  body.village .v-tabs button{min-height:28px;padding:4px 0;font-size:11px;line-height:1.2;white-space:nowrap}
  body.village .v-tabpane{padding:5px 9px}
  body.village #v-diary>.v-section-title{display:none}
  body.village .v-section-title{font-size:10px;margin-bottom:6px;gap:5px}
  body.village .v-section-title b{font-size:9px}
  body.village .v-record-tools{gap:0;padding:0;margin:0 0 4px;border:0;line-height:13px}
  body.village .v-record-tools>span{font-size:9px;flex:1;white-space:nowrap;padding:0;line-height:13px}
  body.village .v-record-tools .v-tool{font-size:10px;min-height:40px;padding:5px 7px}
  body.village #stream .v-journal-line{padding:2px 0;font-size:12px;line-height:1.45}
  body.village #stream .v-journal-action{display:inline;font-size:10px;line-height:1.4}
  body.village #stream .v-journal-duration{display:inline;margin-left:7px;font-size:9px;line-height:1.4}
  body.village #stream .v-ppae-line{padding-left:12%}
  body.village .v-journal-who{display:inline;margin-right:5px;font-size:8px;letter-spacing:0}
  body.village #stream .v-ppae-line>p{display:inline}
  body.village .v-empty{font-size:11px;line-height:1.65;margin:10px 0}
  body.village .v-life-details{margin-top:10px;padding-top:8px}
  body.village .v-foot{display:none}
  body.village .v-foot>span{display:none}
  body.village .v-search,body.village .v-book-shelf input{font-size:16px!important}
}
@media(max-width:620px) and (max-height:460px) and (orientation:landscape){
  body.village .v-main{grid-template-columns:minmax(0,1fr) minmax(150px,.9fr);grid-template-rows:minmax(0,1fr)}
  body.village.quiet .v-main{grid-template-columns:minmax(0,1fr)}
}
