/* Glacier's village is a destination, with a short, visible end to each trip. */
.scarf-preview { display:block; width:100px; max-width:100%; height:112px; }
.harbour { position:relative; width:100%; max-width:680px; aspect-ratio:640/230; margin:auto; isolation:isolate; }
.harbour-land { width:100%; height:100%; }
.harbour-owl { position:absolute; width:13%; left:48%; top:30%; }
.harbour-raft { position:absolute; width:14%; left:72%; top:60%; animation:harbour-bob 4s ease-in-out infinite; }
.harbour-penguin { position:absolute; width:10%; left:14%; top:58%; }
.lost-letter { position:absolute; font-size:clamp(16px,3vw,24px); font-weight:800; color:#4d84ac; animation:letter-drift 6s ease-in-out infinite; }
.letter-a { left:14%; top:24%; transform:rotate(-14deg); }.letter-b { left:55%; top:8%; animation-delay:-2s; }.letter-c { left:85%; top:35%; animation-delay:-4s; }
@keyframes harbour-bob { 50% { transform:translateY(-5px) rotate(2deg); } }
@keyframes letter-drift { 50% { translate:8px -9px; rotate:8deg; } }
.welcome { max-width:760px; gap:16px; }.welcome .harbour { margin-top:-12px; margin-bottom:-20px; max-width:580px; }
.welcome .welcome-mission { margin:4px 0 0; font-size:18px; color:var(--ink-muted); }
.welcome .profile-card { min-height:160px; }
.expedition-root { width:100%; }
.expedition-card { max-width:760px; margin:16px auto; padding:24px; border:2px solid #a7c8dd; border-radius:28px; background:var(--guide-bg); color:var(--ink); box-shadow:0 10px 0 #7198b52a; }
.expedition-card h1 { margin:0; font-size:clamp(26px,4vw,38px); line-height:1.2; }
.expedition-card > p { max-width:46ch; margin:14px auto; font-size:18px; line-height:1.45; }
.expedition-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; margin-top:22px; }
.expedition-actions .btn { min-height:52px; font-size:20px; }
.camp-result { display:flex; align-items:center; justify-content:center; gap:16px; text-align:left; }
.camp-result p { margin:4px 0 10px; }.camp-explorer { width:90px; flex:none; }
.home-words { display:flex; gap:8px; flex-wrap:wrap; }.home-words span { display:block; background:#d9eef9; color:#214a73; padding:6px 16px; border-radius:8px; font-size:25px; font-weight:800; }
.camp-coins { color:var(--ink-muted); font-size:16px; margin-top:12px!important; }
.medal { width:64px; height:78px; flex:none; }
.camp-medal { display:flex; align-items:center; gap:16px; max-width:480px; margin:20px auto; text-align:left; }.camp-medal p { margin:0; line-height:1.5; }
.expedition-dialog { width:min(620px,calc(100% - 24px)); max-height:calc(100dvh - 24px); overflow:auto; background:var(--guide-bg); color:var(--ink); padding:24px; border:2px solid #91b5cd; border-radius:24px; }
.expedition-dialog::backdrop { background:#162c43aa; }.expedition-dialog h2 { margin:0; }
.medal-list { display:grid; gap:18px; margin:24px 0; }.medal-entry { display:flex; gap:16px; text-align:left; align-items:center; }.medal-entry h3 { margin:0 0 6px; font-size:20px; }.medal-entry p { margin:0 0 6px; line-height:1.4; font-size:16px; }.medal-entry small { color:var(--ink-muted); }.medal-entry.waiting .medal { filter:grayscale(1); opacity:.5; }
.journey-tools { display:flex; flex-wrap:wrap; gap:8px; justify-content:end; }.journey-tools .btn { font-size:16px; padding:8px 14px; }
.journey-mission { margin:0; color:var(--ink-muted); font-size:16px; }.village-glow { fill:#ffce67; }.village-friend { width:100px; height:100px; }
@media (max-width:600px) { .expedition-card { padding:20px 14px; margin:8px auto; }.camp-explorer { width:68px; }.expedition-card > p { font-size:16px; }.expedition-actions { gap:10px; }.expedition-actions .btn { font-size:18px; padding-inline:18px; }.welcome .harbour { margin:0 auto -10px; }.journey-summary { flex-wrap:wrap; }.journey-tools { width:100%; justify-content:start; }.journey-tools .btn { flex:1; }.camp-result { gap:10px; } }
@media (orientation:landscape) and (max-height:600px) { .welcome { grid-template-columns:1fr 1fr; }.welcome .harbour { grid-column:1; grid-row:2; width:90%; margin:-15px 0; }.welcome .profiles { grid-row:1/4; }.welcome .parents-link { grid-row:3; }.welcome header { align-self:end; }.welcome .welcome-mission { font-size:16px; }.welcome h2 { margin-top:4px; }.expedition-card { display:grid; grid-template-columns:1fr 1fr; gap:8px 18px; padding:16px; margin:0 auto; }.expedition-card h1 { grid-column:1/-1; font-size:26px; }.expedition-card .harbour { grid-column:1; grid-row:2/4; align-self:center; }.expedition-card > p { font-size:15px; margin:4px 0; }.expedition-actions { grid-column:1/-1; margin-top:8px; }.camp-result { grid-column:2; }.camp-medal { grid-column:2; margin:0; }.camp-medal p { font-size:14px; }.camp-medal .medal { width:40px; height:50px; }.journey-tools { justify-content:start; }.journey-tools .btn { min-height:48px; }.journey-mission { font-size:14px; } }
@media(prefers-reduced-motion:reduce) { .harbour-raft,.lost-letter { animation:none; } }
.scarf-preview > svg,.camp-explorer > svg { display:block; width:100%; height:100%; }
.camp-explorer { height:110px; }
.welcome .portrait { width:120px; height:124px; }
.welcome .profile-card { min-height:194px; padding:12px 20px; }
h1[tabindex="-1"]:focus,h2[tabindex="-1"]:focus { outline:none; }
@media (orientation:landscape) and (max-height:600px) { .welcome .portrait { width:92px; height:96px; }.welcome .profile-card { min-height:160px; padding:8px; }.camp-explorer { height:82px; } }
.parent .edit-list li { display:flex; align-items:start; flex-wrap:wrap; gap:8px; }
.parent .edit-list .edit-field { flex:1 1 160px; }
.parent .edit-list .btn { min-height:44px; }
.parent .word-preview li { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.parent .word-preview .btn { margin-left:auto; min-height:44px; }
.parent .new-week > summary { font-size:20px; font-weight:700; cursor:pointer; min-height:44px; }
.journey-summary .journey-tools { flex:0 0 auto; }
@media(max-width:600px) { .journey-summary .journey-tools { flex:0 0 100%; display:flex; }.journey-summary .journey-tools .btn { flex:1; } }
@media(orientation:landscape) and (max-height:600px) { .journey-summary .journey-tools { flex-basis:100%; }.journey .journey-mission { grid-column:1; grid-row:3; }.journey .map-board { grid-row:2/5; }.journey .journey-actions { grid-row:4; } }
@media(min-width:601px) and (min-height:601px) { .journey .map-board { width:min(100%,calc((100dvh - 390px) * 1.66)); } }
@media(orientation:landscape) and (max-height:600px) { .camp .harbour { grid-row:2; }.camp > p { grid-column:1; grid-row:3; align-self:center; font-size:13px; }.camp .expedition-actions { grid-row:4; } }
