@import url('https://fonts.googleapis.com/css2?family=Gowun+Batang:wght@400;700&family=Noto+Sans+KR:wght@400;500;600&display=swap');
:root{color-scheme:light;--paper:#f5f2e9;--ink:#424b40;--muted:#85877a;--green:#667658;--line:#dedfd2}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Noto Sans KR',sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--green);outline-offset:5px}button{border:0;background:none}a{color:inherit;text-decoration:none}.app{max-width:500px;margin:auto;padding:34px 30px 22px}header{display:flex;align-items:center;justify-content:space-between}.brand{font-family:Georgia,serif;font-size:29px;letter-spacing:2px}.brand span{font-family:'Noto Sans KR',sans-serif;font-size:11px;letter-spacing:3px;margin-left:13px}.about{border:1px solid #b6bcaa;border-radius:50%;width:26px;height:26px;color:#818c74}.intro{text-align:center;padding:48px 0 30px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--muted)}h1,h2,.window-caption p,.read-sign{font-family:'Gowun Batang',Georgia,serif}h1{font-weight:400;font-size:30px;line-height:1.65;margin:16px 0}.subtitle{font-size:12px;color:var(--muted)}.window{position:relative;height:282px;margin:0 9px;border-radius:180px 180px 0 0;border:9px solid #e3dfd1;border-bottom:0;box-shadow:inset 0 0 0 2px #cbcdbb,0 0 0 1px #d6d3c5;background:#e7eddf}.sky{position:absolute;inset:3px;overflow:hidden;border-radius:170px 170px 0 0;background:linear-gradient(#dee7df,#eef0df)}.sun{position:absolute;width:46px;height:46px;border-radius:50%;background:#f8f1d1;top:42px;right:74px;box-shadow:0 0 30px #f6efcd}.cloud{position:absolute;border-radius:50%;background:#f5f5eaa8;width:100px;height:16px}.cloud-one{top:79px;left:30px}.cloud-two{top:119px;right:-15px;width:136px}.hills{position:absolute;bottom:-67px;left:-60px;width:360px;height:150px;background:#cbd6be;border-radius:50%;transform:rotate(-8deg)}.hills:after{content:'';position:absolute;width:300px;height:160px;background:#d8dfca;border-radius:50%;left:230px;bottom:13px}.window-line{position:absolute;top:0;bottom:0;left:50%;width:7px;background:#e3dfd1;box-shadow:1px 0 #cdd2bf}.sill{position:absolute;height:13px;bottom:-9px;left:-20px;right:-20px;background:#ddd8c8;border-top:3px solid #f0ece0;border-radius:2px;box-shadow:0 7px 0 #eae6da}.birds{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:space-around;padding:0 6px 4px}.bird{width:32%;padding:0;position:relative;transition:transform .3s}.bird:hover{transform:translateY(-5px)}.bird svg{display:block;width:100%;height:98px;filter:drop-shadow(0 5px 3px #68775912)}.bird-label{position:absolute;top:112px;left:0;right:0;text-align:center;font-size:11px;color:#6e7865}.bird.away svg{opacity:.16}.bird.away .bird-label{font-size:10px}.window-caption{text-align:center;margin:62px 0 40px}.window-caption p{font-size:17px;margin:0 0 10px}.window-caption>span{font-size:11px;color:var(--muted)}.section-heading{display:flex;justify-content:space-between;align-items:center}.section-heading h2{font-size:18px;font-weight:400}.section-heading>span{color:var(--muted);font-size:11px}.tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin:5px 0 4px}.tabs button{font-size:12px;padding:12px 0;color:var(--muted);border-bottom:2px solid transparent}.tabs button.active{color:var(--green);border-color:var(--green)}.letter{display:flex;width:100%;align-items:center;gap:16px;text-align:left;padding:21px 2px;border-bottom:1px solid var(--line)}.envelope{width:43px;height:30px;background:#ebe7d9;border:1px solid #c8c7b5;border-radius:2px;position:relative;flex-shrink:0}.envelope:after{content:'';position:absolute;width:27px;height:27px;border-right:1px solid #c8c7b5;border-bottom:1px solid #c8c7b5;transform:rotate(45deg);top:-16px;left:6px}.letter-copy{flex:1;min-width:0}.letter-copy strong{font-weight:500;font-size:12px}.letter-copy p{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:7px 0 0;color:var(--muted);font-size:11px}.letter time{font-size:10px;color:var(--muted)}.empty{padding:27px 0;color:var(--muted);font-size:12px;line-height:1.9}footer{text-align:center;color:#999b8e;font-size:10px;margin:36px 0 24px}footer span{display:block;font-family:Georgia,serif;letter-spacing:2px;margin-top:16px}.demo{border-top:1px dashed var(--line);padding-top:14px;font-size:11px;color:var(--muted);line-height:1.8}.demo summary{cursor:pointer}.demo label{display:flex;align-items:center;gap:6px}dialog{width:calc(100% - 32px);max-width:460px;border:1px solid #dedccd;border-radius:12px;background:#faf7ee;color:var(--ink);padding:25px;box-shadow:0 24px 90px #25302126;max-height:90dvh;overflow:auto}dialog::backdrop{background:#37423466;backdrop-filter:blur(5px)}.dialog-top{display:flex;align-items:center;justify-content:space-between}.close{font-size:25px;width:36px;height:36px;color:var(--muted)}dialog h2{font-size:22px;font-weight:400;line-height:1.6;margin:19px 0 25px}.recipient{display:flex;align-items:center;gap:18px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:12px}select{border:0;background:transparent;color:var(--ink);padding:8px;flex:1}textarea{display:block;resize:vertical;width:100%;min-height:230px;border:0;outline:none;background:repeating-linear-gradient(transparent,transparent 35px,#dedfd277 35px,#dedfd277 36px);font-family:'Gowun Batang',serif;font-size:16px;line-height:36px;padding:0;margin-top:18px;color:var(--ink)}textarea:focus-visible{box-shadow:inset 2px 0 #aab397}textarea::placeholder{color:#a6a89a}.paper-bottom{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;margin-top:14px}.send-note{font-size:11px;line-height:1.8;margin:25px 0 15px;color:var(--muted)}.primary{background:var(--green);color:#fffdf5;width:100%;border-radius:5px;padding:16px;font-size:13px}.primary span{float:right}.primary:disabled{opacity:.5;cursor:default}.read-date{font-size:11px;color:var(--muted)}#read-body{font-family:'Gowun Batang',serif;font-size:17px;line-height:2.2;white-space:pre-wrap;overflow-wrap:anywhere;margin:30px 0}.read-sign{text-align:right;margin:25px 0 35px}#info>p{line-height:2;font-size:13px}#toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);width:max-content;max-width:90%;padding:15px 22px;background:#465440;color:#fffdf5;border-radius:8px;font-size:12px;opacity:0;pointer-events:none;transition:.3s}#toast.visible{opacity:1;transform:translate(-50%,0)}@media(min-width:800px){body{background:radial-gradient(ellipse at 50% 35%,#f7f5ed,#e9e8de)}.app{min-height:100vh;background:var(--paper);box-shadow:0 0 80px #727b6210;padding-top:38px}}@media(max-width:360px){.app{padding-left:20px;padding-right:20px}h1{font-size:27px}.window{height:250px}.bird svg{height:85px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.bird.walking svg{opacity:.55;animation:stroll 1.8s ease-in-out infinite}.bird.walking:after{content:"· · ·";position:absolute;bottom:0;left:7px;color:#8b957e;letter-spacing:5px}@keyframes stroll{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-3px) rotate(3deg)}}@media(prefers-reduced-motion:reduce){.bird.walking svg{animation:none}}
#journey-story{font-size:12px;line-height:1.9;color:var(--muted)}.route-scene{height:180px;position:relative;overflow:hidden;background:linear-gradient(#e1e9df,#eef0df);border-radius:90px 90px 5px 5px;margin-top:25px}.route-sun{position:absolute;right:60px;top:26px;width:32px;height:32px;border-radius:50%;background:#f9efd0}.route-track{position:absolute;left:10%;right:10%;bottom:33px;border-bottom:2px dashed #aab89b}#route-bird{position:absolute;width:65px;bottom:31px;transform:translateX(-50%);transition:left 1s linear}#route-bird svg{display:block;width:65px;height:65px}#route-bird.returning svg{transform:scaleX(-1)}.route-labels{display:flex;justify-content:space-between;margin-top:12px;color:var(--muted);font-size:11px}#journey-stage{text-align:center;font-family:'Gowun Batang',serif;margin-top:30px}#journey-progress{width:100%;height:5px;border:0;accent-color:var(--green)}#journey-progress::-webkit-progress-bar{background:#e3e5d9;border-radius:4px}#journey-progress::-webkit-progress-value{background:var(--green);border-radius:4px}.journey-times{margin:25px 0}.journey-times>div{display:flex;justify-content:space-between;margin:16px 0;font-size:12px}.journey-times dt{color:var(--muted)}.journey-times dd{margin:0}.journey-note{font-size:10px;color:var(--muted);text-align:center;line-height:1.8}
.place-card{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:20px 16px;margin:0 0 28px;border:1px solid #dbdecd;border-radius:8px;background:#eeeee1}.place-card>span:nth-child(2){flex:1;min-width:0}.place-card small{display:block;color:var(--muted);font-size:10px;margin-bottom:6px}.place-card strong{font-size:12px;font-weight:400;overflow-wrap:anywhere}.place-symbol{font-size:29px;color:var(--green)}.place-lead{font-family:'Gowun Batang',serif;line-height:1.9;font-size:15px}.photo-pick{display:block;position:relative;text-align:center;padding:24px 12px;background:#eeeee1;border:1px dashed #a7b193;border-radius:7px;margin-top:24px;cursor:pointer;color:var(--green)}.photo-pick input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.photo-pick:focus-within{outline:2px solid var(--green)}.place-help,#photo-status{font-size:11px;line-height:1.8;color:var(--muted)}#photo-status{color:var(--green);margin:20px 0}#place-preview{width:100%;max-height:210px;object-fit:cover;border-radius:5px;margin-bottom:14px}.real-map{height:280px;width:100%;border-radius:8px;z-index:0;background:#e5e9df}.real-map[hidden]{display:none}.real-map .leaflet-control-attribution{font-size:9px}.map-bird{background:#667658;color:#fff8e5;border-radius:50%;font-size:20px;text-align:center;line-height:28px;box-shadow:0 2px 8px #33442255}.map-warning{position:absolute;bottom:20px;left:5%;right:5%;z-index:1000;font-size:10px;background:#fff8e5;padding:8px;pointer-events:none}#place-coordinates{font-size:10px;color:var(--muted)}.place-name-label{display:block;font-size:12px;margin-top:24px}.place-name-label input{display:block;width:100%;padding:13px 0;border:0;border-bottom:1px solid var(--line);background:transparent;margin-top:8px;color:var(--ink);font-family:'Gowun Batang',serif;font-size:16px}#place-distances{font-size:11px;line-height:1.8;color:var(--muted);margin:20px 0}.place-consent{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.8;margin:20px 0}.place-consent input{margin-top:5px;flex-shrink:0}#journey-map{margin:20px 0}#journey:has(#journey-map) .route-scene,#journey:has(#journey-map) .route-labels{display:none}#place-title{overflow-wrap:anywhere}

/* Moa tries very hard: a round body, a tiny wing, and an uneven flutter. */
.map-bird{background:transparent;border-radius:0;box-shadow:none;line-height:normal}
.map-bird svg{width:64px;height:64px;overflow:visible;filter:drop-shadow(0 3px 2px #33442222)}
.moa-wing{transform-box:fill-box;transform-origin:85% 25%}
.moa-flying .moa-wing{animation:moa-flap .32s ease-in-out infinite alternate}
.moa-flying .moa-body{animation:moa-bob 1.1s ease-in-out infinite}
.moa-walking .moa-body{animation:stroll 1s ease-in-out infinite}
.moa-returning svg{transform:scaleX(-1)}
@keyframes moa-flap{from{transform:rotate(-38deg) scaleY(.8)}to{transform:rotate(48deg) scaleY(1.1)}}
@keyframes moa-bob{0%,100%{transform:translateY(1px) rotate(-2deg)}35%{transform:translateY(-4px) rotate(2deg)}70%{transform:translateY(-1px) rotate(-1deg)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

.moa-delivered .moa-letter{display:none}

/* Character-first home: a small place to spend time with Moa. */
.intro{margin:36px 0 24px}.intro h1{margin:12px 0;font-size:32px;line-height:1.5}.window{height:255px}.bird svg{height:112px}.bird-label{top:124px;font-size:10px;line-height:1.6;overflow-wrap:anywhere}.window-caption{margin:76px 0 24px}.window-caption p{font-family:'Gowun Batang',serif;font-size:18px}.window-caption>span{display:block;line-height:1.8}.together{display:flex;align-items:center;gap:14px;background:#eeeee2;border-radius:16px;padding:18px 20px;margin-bottom:28px}.together-icon{font-size:30px;color:#a17c64}.together p{margin:0 0 6px;font-size:12px}.together div>span{font-size:11px;color:var(--muted);line-height:1.7}.recipient input{min-width:0;flex:1;width:100%;padding:12px 4px;border:0;background:transparent;color:var(--ink)}.recipient input:focus-visible{outline:2px solid var(--green);outline-offset:2px}.recipient-help{font-size:11px;line-height:1.7;color:var(--muted)}.brand{letter-spacing:1px}.brand span{letter-spacing:1px;font-size:10px;margin-left:10px}.bird:not(.away) svg{animation:moa-breathe 3.8s ease-in-out infinite}.bird:nth-child(2) svg{animation-delay:-1.3s}.bird:nth-child(3) svg{animation-delay:-2.6s}@keyframes moa-breathe{50%{transform:translateY(-3px) rotate(2deg)}}@media(prefers-reduced-motion:reduce){.bird:not(.away) svg{animation:none}}@media(max-width:360px){.brand{font-size:26px}.bird-label{font-size:9px}.intro h1{font-size:29px}}

.intro{padding:10px 0 20px;margin:28px 0 16px}.bird-label{top:142px;z-index:2}.window-caption{margin-top:92px}

/* Moa's room: mobile-first, character-led interaction. */
:root{--paper:#f8f9ff;--ink:#30334c;--muted:#72758b;--green:#7160df;--line:#e4e5f2}body{background:#e9e9f5;font-family:ui-rounded,'Segoe UI','Malgun Gothic',sans-serif}.app{max-width:440px;min-height:100dvh;padding:22px 20px;background:var(--paper);box-shadow:none}header .brand{font-family:inherit;font-size:24px;font-weight:850;letter-spacing:-1px}.brand span{display:none}.about{background:#eeeafa;border-radius:50%;color:#7160df;width:36px;height:36px}.intro{text-align:left;padding:0;margin:26px 4px 20px}.intro .eyebrow{color:#8c7bd8;font-size:10px;letter-spacing:2px;font-weight:800}.intro h1{font-family:inherit;font-weight:850;font-size:29px;letter-spacing:-1.3px;line-height:1.25;margin:10px 0}.intro .subtitle{font-size:13px;margin:0;color:#777990}.habitat{position:relative;height:300px;border-radius:32px;background:linear-gradient(#e4ddff 0%,#efebff 60%,#dcf0db 60%,#eaf6d9 100%);overflow:hidden}.habitat-cloud{position:absolute;top:20px;left:25px;color:#fff;font-size:68px}.habitat-sun{position:absolute;right:35px;top:28px;width:42px;height:42px;background:#fff4af;border-radius:50%}.habitat .birds{inset:55px 3px auto;height:145px;align-items:center;padding:0}.habitat .bird{width:33%;min-height:130px}.habitat .bird svg{height:125px;filter:drop-shadow(0 4px 0 #52644210)}.habitat .bird-label{position:static;display:block;padding:0 4px;font-family:inherit;font-size:10px;line-height:1.5;color:#5c6470;min-height:30px}.care{position:absolute;bottom:42px;left:0;right:0;display:flex;justify-content:center;gap:16px}.care button{border:2px solid #ffffffab;border-radius:18px;background:#ffffff99;padding:9px 18px;font-size:20px}.care button span{font-size:12px;font-weight:700;vertical-align:middle}.care button:active{transform:scale(.94)}#care-status{position:absolute;bottom:10px;left:8px;right:8px;text-align:center;font-size:10px;color:#5a6c59;margin:0}.visitor-area{margin-top:16px}.visitor-area[hidden]{display:none}#visitor{display:flex;align-items:center;gap:10px;width:100%;border:2px solid #ded5ff;border-radius:23px;background:#f0eaff;text-align:left;padding:8px 15px 8px 5px}.visitor-avatar{position:relative;width:85px;flex-shrink:0}.visitor-avatar svg{display:block;width:100%}.leg-note{position:absolute;bottom:4%;left:57%;background:#fff7cf;color:#9361b7;border:2px solid #be8edd;border-radius:4px;font-size:19px;transform:rotate(-12deg);line-height:1.1}.visitor-copy{flex:1}.visitor-copy small{display:block;font-size:10px;color:#846cb5}.visitor-copy strong{display:block;font-size:17px;margin:5px 0}.visitor-copy>span{font-size:10px;color:#7c7391}.window-caption{margin:15px 0;text-align:center}.window-caption p{font-family:inherit;font-size:12px;margin-bottom:5px}.window-caption>span{font-size:10px}.together{padding:12px 4px;margin:0;background:none;gap:8px;justify-content:space-between}.together p{font-size:11px}.together div>span{font-size:10px}#open-keepsakes{flex-shrink:0;font-size:26px;background:#eeeef8;border-radius:16px;padding:10px}#open-keepsakes span{display:block;font-size:10px}.demo{margin-top:14px;font-size:10px}dialog{background:#f8f9ff;border:0;border-radius:26px;font-family:inherit}dialog h2{font-family:inherit;font-weight:750;font-size:22px}.primary{border-radius:16px;background:#7160df;font-weight:700;min-height:50px}#reply{margin-top:10px;background:#eeebfb;color:#665697}#unwrap-bird{position:relative;width:220px;margin:15px auto 28px}#unwrap-bird svg{width:100%}#unwrap-bird .leg-note{font-size:38px}#read{background:#fff9df;transform-origin:50% 0;animation:unfold .3s ease-out}#read-body{font-family:inherit;font-size:16px;line-height:1.9}textarea{font-family:inherit;font-size:16px}.bird.eating svg{animation:peck .45s ease-in-out infinite!important}.bird.drinking svg{animation:sip .8s ease-in-out infinite!important}.habitat .bird:nth-child(3):not(.away) svg{animation:waddle 5s ease-in-out infinite}.habitat .bird:nth-child(2):not(.away):after{content:'z z';position:absolute;top:4px;right:10px;color:#9584bc;font-size:12px;animation:doze 3s infinite}@keyframes peck{50%{transform:translateY(9px) rotate(14deg)}}@keyframes sip{50%{transform:rotate(-9deg) translateY(-5px)}}@keyframes waddle{25%{transform:translateX(5px) rotate(4deg)}75%{transform:translateX(-5px) rotate(-4deg)}}@keyframes doze{50%{opacity:.25;transform:translateY(-7px)}}@keyframes unfold{from{opacity:.3;transform:scaleY(.85)}to{opacity:1;transform:scaleY(1)}}@media(prefers-reduced-motion:reduce){.app *,dialog,.bird.eating svg,.bird.drinking svg,.habitat .bird:nth-child(3):not(.away) svg{animation:none!important}.habitat .bird:after{animation:none!important}}@media(max-width:360px){.app{padding:16px}.intro{margin:19px 4px 16px}.intro h1{font-size:26px}.habitat{height:280px}.habitat .bird svg{height:112px}.habitat .birds{top:45px}.together div>span{max-width:185px;display:block}}

/* Let the bird and folded paper carry the interaction. */
.visitor-area{display:flex;justify-content:flex-end;margin:-26px 18px 0;position:relative;z-index:2;pointer-events:none}#visitor{pointer-events:auto;width:118px;display:block;border:0;background:transparent;padding:0;transform:rotate(-4deg)}#visitor:hover{transform:rotate(2deg)}.visitor-avatar{display:block;width:118px}.visitor-avatar .leg-note{font-size:26px;bottom:5%;box-shadow:0 3px 0 #b494bb33}.window-caption{margin:0 0 12px}.window-caption p{font-size:11px;color:var(--muted)}#home-hint:empty{display:none}#compose{max-width:370px;background:#fff9df;border-radius:5px 5px 24px 5px;padding:22px;box-shadow:8px 10px 0 #c2b6dd66,0 20px 65px #30334c33}#compose h2{font-size:15px;color:#827c64;margin:12px 0 18px;font-weight:500}#compose textarea{min-height:155px;max-height:35dvh;line-height:31px;background:repeating-linear-gradient(transparent,transparent 30px,#d8cfb844 30px,#d8cfb844 31px);margin-top:12px}#compose .recipient{font-size:11px}#compose .recipient input{font-size:13px}#compose .recipient-help{font-size:10px}#compose .paper-bottom{margin-top:8px}#compose .send-note{font-size:10px;margin:14px 0}#compose .primary{background:#8975be;border-radius:4px 4px 14px 4px}#unwrap{background:transparent;box-shadow:none;color:white}#unwrap .close{color:white}#unwrap-bird{filter:drop-shadow(0 10px 18px #26233455)}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#compose textarea{margin:0 0 24px;min-height:220px;background:none;resize:none;padding:8px;line-height:1.8}#compose .dialog-top{justify-content:flex-end}#back-to-note{display:block;margin:16px auto 0;font-size:12px;color:var(--muted);min-height:44px}#address .recipient input{font-size:16px}.habitat .bird:not(.away) svg,.habitat .bird:nth-child(3):not(.away) svg,.habitat .bird:nth-child(2):not(.away):after{animation:none}#read{animation:none}.bird.eating svg{animation:peck .45s ease-in-out 3!important}.bird.drinking svg{animation:sip .8s ease-in-out 2!important}

.habitat{margin-top:24px;height:min(62dvh,460px);min-height:300px}.habitat .birds{top:32%}.home-tools{display:flex;justify-content:flex-end;margin-top:12px}.habitat .bird-label{font-size:12px;font-weight:600;padding-top:5px}

/* Quiet courtyard: objects explain themselves. */
:root{--paper:#fafbf7}.habitat{background:#eef2e6;border:1px solid #e0e7d8;border-radius:36px;isolation:isolate}.habitat:before{content:'';position:absolute;inset:0 0 43%;background:#f6f8f0;border-bottom:1px solid #e0e7d8;border-radius:0 0 48% 12%}.yard-shadow{position:absolute;width:150%;height:70px;background:#d9e2ce55;transform:rotate(-32deg);top:20px;left:30px;filter:blur(12px)}.habitat .care{bottom:42px;gap:34px}.care button{border:0;background:transparent;padding:0;width:88px;height:68px;border-radius:50%}.care svg{width:100%;height:100%;display:block}.care button:hover{background:#ffffff55}.habitat .bird .leg-note{bottom:33px;left:58%;font-size:23px;z-index:3}.habitat .bird.away:has(.leg-note) svg{opacity:.65}.habitat .bird svg{filter:none}.habitat .bird-label{color:#697364;font-weight:500}.app{background:var(--paper)}body{background:#e9ede4}#open-keepsakes{background:#edf0e8;color:#697364}.about{background:#edf0e8;color:#697364}

/* A separate threshold, without a visible category label. */
.habitat{height:min(49dvh,390px)}.arrival-perch{position:relative;height:130px;margin:12px -20px 0 42%;border-radius:25px 0 0 10px;background:#f0eee5;border-top:1px solid #e2dfd4;isolation:isolate}.arrival-perch[hidden]{display:none}.arrival-perch #visitor{position:absolute;bottom:10px;left:8px;width:116px;transform:none;z-index:2}.arrival-perch #visitor:hover{transform:translateY(-2px)}.arrival-perch .visitor-avatar{width:116px}.perch-edge{position:absolute;bottom:7px;left:0;right:0;height:8px;border-top:2px solid #e0d7c7;background:#e8e1d3;border-radius:3px}.arrival-trail{position:absolute;right:0;top:28px;width:40%;height:40px;border-top:2px dashed #c9cabb;border-radius:70% 0 0 0;transform:rotate(-15deg);opacity:.6}.home-tools{margin-top:8px}@media(max-width:360px){.arrival-perch{margin-right:-16px;height:115px}}

.arrival-perch{margin-right:0;width:auto;max-width:58%}.arrival-trail{right:8px;width:32%;transform:none}

.habitat{height:min(76dvh,620px);min-height:480px;background:#f6f8ef;overflow:hidden}.habitat:before{display:none}.yard-tree{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.habitat .arrival-perch{position:absolute;top:8%;left:20%;height:110px;width:116px;max-width:none;margin:0;border:0;background:none;border-radius:0}.habitat .arrival-perch #visitor{bottom:0;left:0;width:105px}.habitat .arrival-perch .visitor-avatar{width:105px}.habitat .birds{top:48%;height:140px}.habitat .care{bottom:26px;left:6px;right:auto;gap:8px}.habitat #open-keepsakes{position:absolute;right:14px;bottom:16px;width:77px;height:110px;background:none;padding:0;border-radius:0}.habitat #open-keepsakes svg{display:block;width:100%;height:100%}.habitat #care-status{bottom:3px;font-size:10px}.care svg g{transition:opacity .3s}.habitat .bird.eating svg,.habitat .bird.drinking svg{animation:peck .5s ease-in-out 2!important}

.habitat .bird-label{font-family:'Jua','Malgun Gothic',sans-serif;font-size:16px;font-weight:400;letter-spacing:.3px;color:#66745e}

#info{padding:28px;background:#fafbf7}#info h2{font-size:23px;line-height:1.6;letter-spacing:-.7px}#info>p{font-size:14px;line-height:1.95;margin:23px 0}#info .info-sign{margin-top:32px;color:#79816e;font-size:12px}

/* Name tags belong to the birds, rather than the page grid. */
.habitat .bird .bird-label{position:absolute;top:auto;bottom:12px;left:50%;right:auto;transform:translateX(-50%) rotate(-4deg);display:block;min-height:0;width:max-content;padding:3px 11px 4px;border:1px solid #cec4ac;border-radius:5px;background:#fff8e5;color:#6f725e;font-family:'Jua','Malgun Gothic',sans-serif;font-size:14px;line-height:1.2;letter-spacing:0;box-shadow:0 2px 0 #94887115;pointer-events:none}.habitat .bird:nth-child(2) .bird-label{transform:translateX(-50%) rotate(3deg);background:#eef5fa;border-color:#c5d0d5}.habitat .bird:nth-child(3) .bird-label{transform:translateX(-50%) rotate(-2deg);background:#fff0e5;border-color:#d8c5b3}.habitat .bird .bird-label:before{content:'';position:absolute;left:50%;top:-7px;width:1px;height:7px;background:#ab9c84}#visitor-name{display:block;text-align:center;font-family:'Jua','Malgun Gothic',sans-serif;font-size:18px;color:#fff8e5;margin:0 0 8px}

/* Two-letter pennants leave the feet and round bellies visible. */
.habitat .bird .bird-label{top:5px;bottom:auto;left:auto;right:0;transform:rotate(5deg);width:43px;padding:4px 3px;border-radius:2px 7px 7px 2px;font-size:13px;box-shadow:none;z-index:2}.habitat .bird .bird-label:before{left:-3px;top:0;width:2px;height:47px;background:#aa987c;border-radius:2px}.habitat .bird:nth-child(2) .bird-label{transform:rotate(-3deg)}.habitat .bird:nth-child(3) .bird-label{transform:rotate(4deg)}.habitat .bird:nth-child(2):not(.away):after{right:auto;left:12px;top:0}

#ready{max-width:320px;background:#f5f8ec;text-align:center}#ready .dialog-top{justify-content:flex-end}#launch-moa{display:block;width:210px;margin:4px auto 20px;border-radius:50%;padding:0}#ready-bird{display:block;position:relative}#ready-bird svg{display:block;width:100%}#ready-bird .leg-note{font-size:36px;bottom:4%;left:58%}#edit-bound-note{font-size:12px;color:var(--muted);min-height:44px}#address{max-width:320px;padding:22px}#address h2{font-size:16px;margin:8px 0 14px}#address .recipient{padding-bottom:4px}

/* A loose little flock; pennant poles sit behind the bodies. */
.habitat .birds{display:block;top:44%;height:205px;left:0;right:0}.habitat .bird{position:absolute;width:31%;min-height:125px;isolation:isolate}.habitat .bird:nth-child(1){left:3%;top:18px;transform:rotate(-5deg)}.habitat .bird:nth-child(2){left:36%;top:60px;transform:rotate(5deg)}.habitat .bird:nth-child(3){right:1%;top:0;transform:rotate(-2deg)}.habitat .bird:nth-child(2) svg{transform:scaleY(.88);transform-origin:center bottom}.habitat .bird:nth-child(3) svg{transform:rotate(7deg);transform-origin:center bottom}.habitat .bird svg{position:relative;z-index:1}.habitat .bird .bird-label{left:0;right:auto;top:0;z-index:0;transform:rotate(-8deg);width:41px}.habitat .bird:nth-child(2) .bird-label{transform:rotate(4deg)}.habitat .bird:nth-child(3) .bird-label{transform:rotate(-4deg)}.habitat .bird .bird-label:before{left:2px;top:18px;height:65px;width:2px}.habitat .bird:nth-child(2):not(.away):after{left:auto;right:6px;top:14px}.habitat .bird:hover{filter:brightness(1.025)}.habitat .care{bottom:20px}.arrival-perch .leg-note{left:43%;bottom:5%}@media(max-width:360px){.habitat .birds{top:40%}.habitat .bird:nth-child(2){top:53px}.habitat .bird .bird-label{font-size:12px;width:38px}}

.habitat .bird .bird-label{left:14%;top:5px}.habitat .bird .bird-label:before{transform:rotate(-8deg);transform-origin:top;height:66px}

#ready{position:relative;background:#f8f6ed;padding:18px 22px 28px;isolation:isolate}#ready .dialog-top{position:relative;z-index:3;justify-content:space-between}#edit-bound-note,#back-to-note{font-size:23px;width:40px;height:40px;min-height:40px;margin:0;padding:0;color:#777f6c;border-radius:50%}#back-to-note{margin-top:12px}#edit-bound-note:hover,#back-to-note:hover{background:#e9edde}.departure-window{position:absolute;left:36px;right:36px;top:78px;bottom:39px;border:7px solid #d6cbb4;border-bottom:10px solid #c5b79d;background:linear-gradient(#e4eff0,#f1f6e8);border-radius:70px 70px 2px 2px;box-shadow:0 5px 0 #e9e2d2}.departure-window:before{content:'';position:absolute;left:-17px;top:28px;bottom:0;width:25px;border:4px solid #c7bba1;background:#f3efdf;transform:skewY(16deg);transform-origin:right bottom}.departure-window:after{content:'';position:absolute;right:-17px;top:28px;bottom:0;width:25px;border:4px solid #c7bba1;background:#f3efdf;transform:skewY(-16deg);transform-origin:left bottom}.departure-window span{position:absolute;right:25px;top:25px;width:26px;height:26px;border-radius:50%;background:#fff6d6}#launch-moa{position:relative;z-index:2;margin:65px auto 0;width:170px}#ready-bird{transform:rotate(-4deg)}#ready-bird .leg-note{font-size:28px}

/* Small, unhurried breathing; no attention-seeking movement. */
.visitor-avatar{isolation:isolate}.visitor-avatar svg{position:relative;z-index:1}.visitor-tag{position:absolute;left:7px;top:5px;width:40px;padding:4px 2px;font:13px/1.2 'Jua','Malgun Gothic',sans-serif;color:#6f725e;background:#fff0e5;border:1px solid #d8c5b3;border-radius:2px 7px 7px 2px;transform:rotate(-7deg);z-index:0}.visitor-tag:before{content:'';position:absolute;left:2px;top:20px;width:2px;height:48px;background:#aa987c}.habitat .bird:nth-child(1):not(.away){animation:quiet-moa 5.7s ease-in-out infinite}.habitat .bird:nth-child(2):not(.away){animation:quiet-cloud 7.1s ease-in-out infinite;animation-delay:-2.2s}.habitat .bird:nth-child(3):not(.away){animation:quiet-naru 6.4s ease-in-out infinite;animation-delay:-3.7s}.arrival-perch .visitor-avatar{animation:visitor-doze 7.8s ease-in-out infinite;transform-origin:50% 90%}@keyframes quiet-moa{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-2px) rotate(-5deg)}}@keyframes quiet-cloud{0%,100%{transform:translateY(0) rotate(5deg)}50%{transform:translateY(2px) rotate(5deg)}}@keyframes quiet-naru{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-2px) rotate(-2deg)}}@keyframes visitor-doze{0%,100%{transform:translateY(0) rotate(0)}60%{transform:translateY(2px) rotate(2deg)}}@media(prefers-reduced-motion:reduce){.habitat .bird:nth-child(n):not(.away),.arrival-perch .visitor-avatar{animation:none!important}}

/* Keep notes in front; animate artwork, not interactive hit areas. */
.visitor-avatar .leg-note{z-index:4}.habitat .bird:nth-child(n):not(.away){animation:none}.habitat .bird:nth-child(n):not(.away) svg{animation:moa-idle-visible 4.8s ease-in-out infinite!important}.habitat .bird:nth-child(2):not(.away) svg{animation-delay:-1.7s!important}.habitat .bird:nth-child(3):not(.away) svg{animation-delay:-3.1s!important}.arrival-perch .visitor-avatar{animation:visitor-idle-visible 6s ease-in-out infinite!important}@keyframes moa-idle-visible{0%,100%{translate:0 0}50%{translate:0 -4px}}@keyframes visitor-idle-visible{0%,100%{translate:0 0;rotate:0deg}60%{translate:0 3px;rotate:2deg}}@media(prefers-reduced-motion:reduce){.habitat .bird:nth-child(n):not(.away) svg,.arrival-perch .visitor-avatar{animation:none!important}}

#account-button{font-size:12px;max-width:140px;overflow-wrap:anywhere}
#account label:not(.place-consent){display:block;margin:14px 0}
#account input:not([type=checkbox]){display:block;width:100%;padding:12px;border:1px solid var(--line);border-radius:6px;background:#fffdf7;margin-top:7px}
#account button:not(.close){margin:8px 0;padding:10px;border-radius:6px}
#account-status,#location-status,#flight-quote{font-size:12px;line-height:1.8;overflow-wrap:anywhere}
#account [hidden]{display:none!important}
#account .place-consent{font-size:12px}
#account ul{padding-left:20px;overflow-wrap:anywhere}
#address #flight-quote{color:var(--green)}

#invite-banner,#incoming-status{margin:12px 20px;padding:14px;border-radius:16px;background:#f3eaf5;font-size:14px;line-height:1.6}#account details{margin-top:18px}#account summary{cursor:pointer;padding:8px 0}#phone-auth label,#profile-form label{display:block;margin:12px 0}#phone-auth input,#profile-form input{display:block;box-sizing:border-box;width:100%;padding:12px;border:1px solid #d8d0c4;border-radius:12px;font:inherit;background:#fffdf8}#phone-service-status:empty{display:none}#phone-service-status{font-size:14px}#block-sender,#report-sender{font-size:13px;margin-top:12px}
