@charset "UTF-8";
:root{--paper:#f8f5eb;--ink:#304b3d;--muted:#748073;--gold:#bb8b45;--line:#dddccd;--serif:Georgia,'Noto Serif KR','Yu Mincho',serif;--sans:system-ui,-apple-system,'Segoe UI',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.7}a{color:inherit;text-decoration:none}button,select{font:inherit;color:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #bf974d;outline-offset:5px}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}h1,h2{font-family:var(--serif);font-weight:500;line-height:1.3;word-break:keep-all}button{border:0}header{height:100px;display:flex;align-items:center;gap:40px;padding:0 clamp(20px,5vw,90px);background:var(--paper);position:relative;z-index:5;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;min-width:180px}.brand svg{width:32px;height:32px}.brand>span{font:26px/1 var(--serif);letter-spacing:-.7px}.brand small{display:block;font:10px/1.9 var(--sans);letter-spacing:5px;margin-left:3px}nav{display:flex;align-items:center;gap:36px;margin-left:auto;font-size:14px;font-weight:600}nav a{position:relative;padding:12px 0}nav a[aria-current],nav a:hover{color:var(--gold)}nav a[aria-current]:after{content:'';height:3px;width:14px;position:absolute;bottom:2px;left:50%;background:var(--gold);transform:translateX(-50%)}.language{display:flex;align-items:center;gap:4px;margin-left:20px;font-size:13px}.language select{border:0;background:transparent;max-width:145px;padding:10px 0;cursor:pointer}.skip{position:fixed;left:10px;top:-100px;z-index:100;background:white;padding:10px}.skip:focus{top:10px}.loading{text-align:center;padding:100px 20px}.hero{height:min(880px,calc(100svh - 100px));min-height:650px;position:relative;overflow:hidden;background:#253b43;color:#fff7e4;isolation:isolate}.hero-world{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.5) saturate(.72);z-index:-3}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,#142b3999,transparent 55%,#152c37bb),radial-gradient(ellipse at 50% 72%,transparent,#1e334f55);z-index:-2}.hero-copy{position:relative;max-width:860px;margin:auto;text-align:center;padding:65px 24px 0}.eyebrow{display:block;font-size:11px;text-transform:uppercase;letter-spacing:2.5px;font-weight:600;color:var(--gold);margin-bottom:20px}.hero .eyebrow{color:#f2dbab}.hero h1{font-size:clamp(32px,4.3vw,62px);text-wrap:balance}.hero p{margin-top:20px;color:#e3e6da;font-size:15px}.portal{position:absolute;bottom:52px;left:50%;transform:translateX(-50%);display:flex;align-items:center;flex-direction:column;width:max-content;max-width:90%;gap:20px}.portal-ring{display:block;height:270px;width:174px;border-radius:100% 100% 13% 13%/70% 70% 4% 4%;border:4px solid #f0ddb4;background:linear-gradient(180deg,#fff8d4,#fffaf1 60%,#f9d994);box-shadow:0 0 22px #f9dc9b,0 0 65px #f9dc9b88,0 0 150px #d7c58444;position:relative;transition:box-shadow .4s,transform .4s}.portal-ring:before,.portal-ring:after{content:'✦';position:absolute;color:#ffecb9;text-shadow:0 0 12px #ffdf91;font-size:23px;top:25%;left:-35px;animation:sparkle 3s infinite alternate}.portal-ring:after{left:auto;right:-35px;top:65%;animation-delay:-2s}.portal-light{position:absolute;inset:10px;border:1px solid #ccab6e;border-radius:inherit;background:radial-gradient(ellipse at 50% 95%,#e2ba6888,transparent 60%)}.portal:hover .portal-ring{box-shadow:0 0 40px #f9dc9b,0 0 100px #f9dc9b99;transform:translateY(-5px)}.portal-label{font-size:15px;letter-spacing:1px;font-weight:600;padding:10px 26px;border-bottom:1px solid #e4d3a770;text-align:center}.page{max-width:1180px;margin:auto;padding:80px 36px 100px}.section-heading{text-align:center;max-width:750px;margin:0 auto 65px}.section-heading h1{font-size:clamp(30px,4vw,48px)}.section-heading p{margin:22px auto 0;max-width:610px;color:var(--muted);font-size:15px}.friends-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:52px 32px}.friend-card{display:block}.friend-art{height:310px;border-radius:150px 150px 10px 10px;position:relative;display:flex;align-items:center;justify-content:center;background:var(--tint,#e9e5d6);overflow:hidden;transition:background .3s}.friend-momo{--tint:#ece3d1}.friend-rookie{--tint:#e4e7d2}.friend-dudu{--tint:#dcebe4}.friend-coco{--tint:#f0e0d9}.friend-mungchi{--tint:#e7e0ed}.friend-toto{--tint:#e0e9ee}.friend-pupu{--tint:#efe5c9}.friend-art img{width:91%;height:91%;object-fit:contain;transition:transform .5s}.friend-number{position:absolute;top:24px;left:25px;font:italic 12px var(--serif);opacity:.45}.friend-arrow{position:absolute;bottom:15px;right:20px;font-size:21px}.friend-card:hover img{transform:translateY(-6px) rotate(-2deg)}.friend-caption{padding:20px 8px 0}.friend-caption h2{font-size:27px}.friend-caption p{font-size:13px;margin-top:4px}.friend-caption small{display:block;font-size:11px;color:var(--muted);margin-top:8px}.friends-grid .friend-card:last-child{grid-column:2}.back-link{font-size:12px;color:var(--muted);display:inline-block;margin-bottom:45px}.profile{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.profile-art{border-radius:48% 48% 8px 8px;background:var(--tint);height:440px;display:flex;align-items:center;justify-content:center}.profile-art img{height:94%;width:94%;object-fit:contain}.profile h1{font-size:64px;margin-bottom:26px}.profile dl{display:grid;grid-template-columns:70px 1fr;gap:14px 16px;font-size:14px;margin:0}.profile dt{color:var(--muted)}.profile dd{margin:0}.greeting{margin-top:35px;font-family:var(--serif);font-size:19px}.village-overview{margin:95px 0;display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:50px 0}.village-overview h2{font-size:30px}.village-overview p{margin-top:20px;color:var(--muted);font-size:14px}.village-image{width:100%;height:380px;object-fit:contain}.compact{margin-bottom:35px}.compact h2{font-size:33px}.rooms-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:45px 30px}.room-card{overflow:hidden}.room-image{background:#e8e5da;padding:0;display:block;width:100%;border-radius:12px;overflow:hidden;aspect-ratio:4/3}.room-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.room-image:hover img{transform:scale(1.035)}.room-copy{padding:23px 3px}.room-copy h3{font-size:21px;font-family:var(--serif);font-weight:500}.room-copy p{margin:10px 0 18px;color:var(--muted);font-size:13px;max-width:95%}.text-button{font-size:13px;color:var(--ink);border-bottom:1px solid var(--gold);background:none;padding:0 0 6px;display:inline-block}.next-friend{display:block;text-align:right;border-top:1px solid var(--line);margin-top:45px;padding-top:30px;font-size:14px}.witch-hero{background:#e7e3ed;min-height:650px;display:grid;grid-template-columns:1.1fr 1fr;gap:50px;align-items:center;padding:65px max(6vw,24px);overflow:hidden}.witch-art{position:relative;max-width:640px;isolation:isolate}.witch-art img{width:100%;position:relative;transform:rotate(-5deg);animation:float 5s ease-in-out infinite}.witch-moon{position:absolute;width:75%;aspect-ratio:1;border-radius:50%;background:#f9f1d6;left:10%;top:8%;z-index:-1;box-shadow:0 0 80px #fef5d355}.witch-copy{max-width:470px}.witch-copy h1{font-size:clamp(32px,4vw,52px)}.witch-copy h2{font:16px var(--sans);margin-top:22px;color:#746b7c}.witch-copy p{font-size:15px;margin-top:24px;color:#655b6c}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:var(--paper);border-radius:40px;padding:15px 27px;font-size:14px;line-height:1.6}.witch-copy .button{margin-top:30px;background:#5b4868}.hope-section{display:grid;grid-template-columns:1fr 1.2fr;gap:60px;align-items:center;max-width:1000px;margin:auto;padding:80px 35px}.hope-section img{height:260px;width:100%;object-fit:contain}.hope-section h2{font-size:34px}.hope-section p{font-size:15px;margin:20px 0;color:var(--muted)}.story-cover{position:relative;overflow:hidden;border-radius:14px;background:#303e43}.story-cover>img{width:100%;height:470px;object-fit:cover;filter:brightness(.75)}.story-play{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);background:var(--paper);color:var(--ink);white-space:nowrap}.story-excerpt{max-width:660px;text-align:center;margin:70px auto 0}.story-excerpt p{font:21px/2 var(--serif);white-space:pre-line}.story-divider{margin:30px;color:var(--gold)}.story-excerpt .text-button{margin-top:35px}.privacy-page{max-width:850px}.privacy-page .section-heading{margin-bottom:25px}.effective{text-align:center;font-size:12px;color:var(--muted);margin-bottom:60px}.privacy-page section{margin-top:35px}.privacy-page section h2{font:600 19px/1.5 var(--sans);margin-bottom:12px}.privacy-page section p{font-size:14px;line-height:1.9;color:#5d6a5e}.policy-contact{border-top:1px solid var(--line);padding-top:30px}.policy-contact a{border-bottom:1px solid var(--gold)}footer{padding:45px clamp(24px,6vw,90px) 32px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:15px 30px;font-size:12px}.footer-brand{font:24px var(--serif)}.footer-note{grid-column:1;color:var(--muted)}footer>div{grid-column:2;grid-row:1 / span 2;display:flex;align-items:center;gap:30px}footer>small{grid-column:1/-1;color:var(--muted);font-size:10px;letter-spacing:.5px;margin-top:15px}dialog{border:0;border-radius:16px;padding:0;background:var(--paper);color:var(--ink);width:min(900px,94vw);max-height:92svh;box-shadow:0 20px 100px #0005}dialog::backdrop{background:#14271dcc;backdrop-filter:blur(8px)}.modal-open{overflow:hidden}.viewer-bar{display:flex;justify-content:space-between;align-items:center;padding:15px 22px;gap:20px;position:sticky;top:0;background:var(--paper);z-index:2;border-bottom:1px solid var(--line)}.viewer-bar h2{font:500 18px/1.4 var(--sans)}.icon-button{background:none;font-size:28px;width:44px;height:44px;flex-shrink:0}.room-full{margin:0}.room-full img{width:100%;max-height:72svh;object-fit:contain;background:#eae5d6}.room-full figcaption{padding:20px;font-size:13px;color:var(--muted)}.intro-stage{height:380px;position:relative;background:#233c46;overflow:hidden}.intro-landscape{width:100%;height:100%;object-fit:cover;transition:filter .8s}.phase-dark .intro-landscape,.phase-call .intro-landscape{filter:brightness(.3) saturate(.2)}.phase-hope .intro-landscape{filter:brightness(.7)}.intro-witch{position:absolute;top:0;right:10%;height:85%;object-fit:contain;animation:float 3s infinite}.intro-bomb{position:absolute;height:35%;bottom:0;left:20%;object-fit:contain;animation:float 2s infinite}.story-progress{position:absolute;bottom:15px;right:20px;background:#14271d99;color:#fff;padding:4px 14px;border-radius:20px;font-size:12px}.intro-speech{padding:24px 35px 10px;min-height:170px}.intro-speech strong{font-size:12px;color:var(--gold)}.intro-speech p{white-space:pre-line;font:19px/1.8 var(--serif);margin-top:10px}.intro-controls{display:flex;justify-content:space-between;gap:20px;padding:18px 30px 28px}.quiet-button{background:none;font-size:13px}@keyframes sparkle{to{opacity:.3;transform:scale(.6) translateY(-15px)}}@keyframes float{50%{transform:translateY(-12px) rotate(-2deg)}}@media(min-width:1400px){.hero-world{object-position:center 47%}}@media(max-width:800px){header{height:auto;min-height:110px;padding:16px 22px 12px;gap:10px;flex-wrap:wrap}.brand{min-width:0;margin-right:auto}.brand>span{font-size:23px}.brand svg{width:27px}.language{margin-left:0}.language select{max-width:125px;font-size:11px}nav{order:3;width:100%;justify-content:center;gap:40px;margin:4px 0 0;font-size:13px}nav a{padding:5px}.hero{min-height:640px;height:calc(100svh - 120px)}.hero-copy{padding-top:50px}.hero-world{object-position:48% center}.hero h1{font-size:36px}.hero p{font-size:13px}.portal{bottom:40px}.portal-ring{height:230px;width:150px}.page{padding:55px 22px 70px}.section-heading{margin-bottom:42px}.section-heading p{font-size:13px}.friends-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 18px}.friends-grid .friend-card:last-child{grid-column:auto}.friend-art{height:240px}.friend-caption h2{font-size:24px}.friend-caption p{font-size:12px}.profile{gap:35px}.profile-art{height:320px}.profile h1{font-size:45px}.profile dl{grid-template-columns:1fr;gap:4px}.profile dd{margin-bottom:12px}.greeting{font-size:16px}.village-overview{margin:65px 0;grid-template-columns:1fr;gap:10px;text-align:center}.village-image{height:330px}.witch-hero{grid-template-columns:1fr;gap:10px;padding:35px 25px 60px}.witch-art{width:min(90%,420px);margin:auto}.witch-copy{max-width:600px;margin:auto;text-align:center}.witch-copy p{font-size:14px}.hope-section{gap:20px;padding:50px 25px}.hope-section h2{font-size:26px}.hope-section p{font-size:13px}.story-cover>img{height:370px}footer{grid-template-columns:1fr;gap:12px}footer>div{grid-column:1;grid-row:auto;margin-top:12px}.intro-stage{height:300px}}
@media(max-width:480px){header{padding-left:18px;padding-right:18px}.brand>span{font-size:21px}.brand small{font-size:8px;letter-spacing:4px}.brand{gap:5px}.brand svg{width:23px}.language select{max-width:108px}.hero{min-height:620px}.hero h1{font-size:30px}.hero-copy{padding-top:40px}.hero .eyebrow{font-size:10px}.portal-ring{height:210px;width:135px}.portal-label{font-size:13px}.section-heading h1{font-size:30px}.eyebrow{font-size:10px;letter-spacing:1.6px;margin-bottom:14px}.page{padding-left:18px;padding-right:18px}.friends-grid{gap:32px 14px}.friend-art{height:195px;border-radius:95px 95px 8px 8px}.friend-number{top:18px;left:17px;font-size:10px}.friend-caption{padding:15px 2px 0}.friend-caption h2{font-size:22px}.friend-caption p{font-size:11px;line-height:1.5}.friend-caption small{font-size:10px;line-height:1.5}.friend-arrow{right:12px;bottom:10px;font-size:17px}.profile{grid-template-columns:1fr;gap:30px}.profile-art{height:330px;max-width:310px;width:100%;margin:auto}.profile-copy{padding:0 7px}.profile h1{font-size:44px;margin-bottom:20px}.profile dl{grid-template-columns:60px 1fr;gap:12px}.profile dd{margin-bottom:0}.greeting{margin-top:25px}.village-image{height:260px}.village-overview h2{font-size:26px}.rooms-grid{grid-template-columns:1fr;gap:20px}.room-copy p{max-width:100%}.compact h2{font-size:28px}.hope-section{grid-template-columns:1fr;text-align:center}.hope-section img{height:200px}.story-cover>img{height:300px}.story-excerpt p{font-size:18px}.intro-stage{height:240px}.intro-speech{padding:20px;min-height:180px}.intro-speech p{font-size:16px}.intro-controls{padding:12px 18px 24px;gap:12px}.intro-controls .button{padding:12px 20px;font-size:12px}.viewer-bar{padding:9px 15px}.viewer-bar h2{font-size:15px}.privacy-page section h2{font-size:18px}}
.download-buttons{grid-column:1/-1;display:flex;justify-content:center;flex-wrap:wrap;gap:16px;padding:0 0 36px;margin-bottom:20px;border-bottom:1px solid var(--line)}.download-buttons button{display:flex;align-items:center;gap:13px;background:#304b3d;color:#fff9ea;border-radius:12px;padding:12px 24px;min-width:178px;text-align:left;transition:background .2s,transform .2s}.download-buttons button:hover{background:#45614e;transform:translateY(-2px)}.download-buttons svg{width:30px;height:30px;flex-shrink:0}.download-buttons small{display:block;font-size:10px;line-height:1.5}.download-buttons strong{display:block;font-size:20px;line-height:1.3;font-weight:500}footer>div{grid-row:2 / span 2}#downloadToast{position:fixed;z-index:100;bottom:max(28px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%,12px);background:#243d30f5;color:#fff9ea;box-shadow:0 5px 30px #0002;padding:13px 25px;border-radius:30px;max-width:calc(100vw - 32px);text-align:center;font-size:14px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}#downloadToast.visible{opacity:1;transform:translate(-50%,0)}@media(max-width:800px){footer>div{grid-row:auto}}@media(max-width:480px){.download-buttons{gap:12px}.download-buttons button{min-width:0;flex:1;padding:12px 15px;gap:10px}.download-buttons strong{font-size:17px}.download-buttons svg{width:26px}.download-buttons small{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
