:root{--paper:#f4ede7;--ink:#271a2f;--plum:#7d4663;--muted:#746777;--line:#e4d6d3;--soft:#e1d6e8}
@font-face{font-family:SourceBrush;src:url('assets/title.woff');font-display:swap}
@font-face{font-family:SourceBody;src:url('assets/body.woff');font-display:swap}
@font-face{font-family:WholeKai;src:local('KaiTi'),local('STKaiti');font-display:swap}
body{font-family:WholeKai,'Kaiti SC',serif;font-size:17px;background:var(--paper);color:var(--ink)}
h1,h2,.brand,.scene-caption h3{font-family:WholeKai,'Kaiti SC',serif;font-weight:400;letter-spacing:.04em}
.source-brush{font-family:SourceBrush,WholeKai,serif!important}.source-body{font-family:SourceBody,WholeKai,serif!important}
button,input,summary,h3,.scene-tabs button,.scene-tabs button span,.hero-seal,.flow-annotation,.mini-desktop p,.desktop-note strong{font-family:WholeKai,'Kaiti SC',serif}
.nav-links,.small,.demo-note,.composition-caption,.window-bar,.desktop-clock,footer>span{font-family:SimSun,'Songti SC',serif}
p{color:#66576a}.navigation{background:#f4ede7ed;border-bottom:1px solid #e4d6d3}.brand{font-size:26px}.nav-links{font-size:14px}.button{background:var(--plum);color:#fffcfa}.hero{background:#eee8e8;min-height:590px;isolation:isolate}.hero-landscape{position:absolute;inset:0;width:100%;height:100%;background:none;object-fit:cover;object-position:center 51%;opacity:.62;mask-image:none;z-index:-2;filter:saturate(.45)}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#f4ede7ed 0%,#f4ede7b8 40%,#eee7ed26 80%),linear-gradient(0deg,#f4ede7,transparent 24%);z-index:-1}.hero:after{content:'';position:absolute;width:30%;height:62%;right:9%;top:10%;border:1px solid #9d7a9166;border-radius:50% 50% 0 0;box-shadow:20px 24px 55px #50314d16;z-index:-1;backdrop-filter:blur(2px);mask-image:linear-gradient(#000,transparent 92%)}.hero-copy{left:9%;top:17%;width:75%}.hero h1{font-size:clamp(62px,5.8vw,92px);line-height:1.36;letter-spacing:.04em}.hero h1 span{margin-left:0}.hero-copy p{font-size:20px}.hero-seal{left:4%;top:20%}.hero-bottom{background:#f4ede75c;border-top:1px solid #b6a3b133}.hero-links .button{outline:1px solid #c2a67a;outline-offset:-7px;padding:17px 34px}.hero-links a{font-size:17px}.hero-bottom{font-size:13px}.vertical-note{font-size:15px}#hero-dock{left:77%;top:67%}
.experience{position:relative;padding:0;margin:0;width:100%;max-width:none;background:#e1d6e8;scroll-margin-top:0;height:100dvh;min-height:590px}.experience>.section-heading{position:absolute;top:30px;left:3%;width:auto;z-index:7;margin:0;pointer-events:none}.experience h2{font-size:34px;text-shadow:0 2px 18px #fff}.experience .section-heading p{display:none}.stage{height:100%;width:100%;aspect-ratio:auto;max-height:none}.scene-image{height:100%;width:100%;mask-image:none;filter:saturate(.75);object-fit:cover;object-position:50% 66%}.scene-caption,.scene-instruction,.pet-response,.demo-note,#travel-message{display:none!important}.scene-controls{position:absolute;left:3%;top:108px;width:236px;z-index:8;padding:19px 18px 14px;background:#f4ede7d9;backdrop-filter:blur(18px);border:1px solid #fff9f0a1;box-shadow:8px 18px 40px #432a4520;border-radius:3px;color:var(--ink)}.control-heading{font-size:13px;letter-spacing:.16em;margin:0 0 10px;color:#746777}.scene-tabs{display:grid;gap:0;width:auto;max-width:none;margin:0;padding:0 0 13px;border-bottom:1px solid #cbbdc9}.scene-tabs button{font-size:21px;padding:8px 11px;display:flex;justify-content:space-between;color:#57415c;line-height:1.4;min-height:44px}.scene-tabs button span{display:none}.scene-tabs button[aria-selected=true]{background:var(--plum);color:#fffdfc}.scene-tabs button[aria-selected=true]:after{content:'·';position:static;background:none;width:auto;height:auto;font-size:24px}.pet-picker{margin-top:12px;border:0;justify-content:space-between}.pet-picker button{font-size:14px;padding:7px 10px}.pet-picker button[aria-pressed=true]{box-shadow:none;background:#e1d6e8}.action-bar{display:flex;flex-wrap:wrap;width:100%;padding:12px 0 9px;margin:0;gap:10px;border-bottom:1px solid #cbbdc9}.pet-status{min-width:0;width:100%;font-size:12px;gap:6px}.pet-status strong{font-size:14px}.actions{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:4px;margin:0}.actions button{font-size:16px;padding:6px 8px;min-height:36px;background:#fffcfa75}.actions button[aria-pressed=true]{background:#7d4663}.reset{font-size:12px;margin-left:auto;padding:0;min-height:26px}.scene-tools{position:static;display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.scene-tools button{font-size:12px;padding:5px 7px;border:0;background:#fffcfa8a}.stage .pet-anchor{width:32%}.scene-object{right:11%;top:15%;padding-top:0}.scene-object .object-label{margin-top:114px;font-size:13px;background:#f4ede7df;color:#50354b}.bell-string{height:50px;width:1px;background:#68524b}.bell{width:62px;height:62px;border:0;background:none;box-shadow:none;border-radius:0;transform-origin:50% -45px}.bell:before,.bell:after{display:none}.bell i{position:absolute;transform:none}.bell .bell-crown{width:14px;height:12px;left:24px;top:-6px;border:2px solid #776553;border-radius:50%;background:none}.bell .bell-body{width:58px;height:48px;left:2px;top:2px;background:linear-gradient(100deg,#817461,#c5b596 32%,#e1d1ad 46%,#a38a6e 77%,#6f5b4c);border:1px solid #685346;border-radius:48% 48% 15% 15%;box-shadow:inset 0 -6px 0 #5c44321a}.bell .bell-body:after{content:'';position:absolute;inset:16px 7px 9px;border-top:1px solid #786245;border-bottom:1px solid #786245;border-radius:50%;opacity:.65}.bell .bell-lip{left:0;top:43px;width:62px;height:9px;background:linear-gradient(#d1bc94,#82664e);border:1px solid #6d543f;border-radius:50%}.bell .bell-clapper{top:48px;left:28px;width:7px;height:15px;border-radius:50%;background:#8b6c4a}.bell .bell-cord{top:53px;left:31px;width:1px;height:34px;background:#77506a}.bell .bell-tag{left:21px;top:83px;width:23px;height:66px;background:linear-gradient(100deg,#e8d6de,#f5e6eb,#cab2c1);border:1px solid #b095a1;box-shadow:3px 5px 9px #412c4422;writing-mode:vertical-rl;font-style:normal;font-size:13px;letter-spacing:.24em;padding:10px 4px;color:#76556b;transform-origin:50% -30px}.ringing .bell-tag{animation:tag-sway .65s ease-in-out 4}.stage[data-scene=window] .bell-string,.stage[data-scene=lake] .bell-string{display:none}.stage[data-scene=window] .scene-object .object-label,.stage[data-scene=lake] .scene-object .object-label{margin:0}.travel-pause{background:#f4ede7d9;backdrop-filter:blur(12px);font-size:13px}
.flow{width:100%;max-width:none;padding:80px 7% 45px;isolation:isolate;position:relative;background:linear-gradient(180deg,#f4ede7,#eee8ed 73%,#e3d9e7)}.flow:before{content:'';position:absolute;inset:0;background:url('assets/window.webp') center/cover;filter:blur(10px) saturate(.4);opacity:.09;z-index:-1}.flow .section-heading{position:relative;z-index:1}.flow h2{font-size:42px}.flow-composition{height:340px;margin:18px 0 34px}.pet-print{background:#fffcfa;box-shadow:8px 18px 35px #44274320}.pet-print img{background:#e1d6e8}.mini-desktop{background:#e8e0e9;border-color:#b8a5b7}.mini-desktop p{font-size:32px}.flow-annotation{font-size:21px;color:#7d4663}.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;padding:0;background:#c7b6c440;border:1px solid #c7b6c477}.steps li{border:0;padding:0;min-width:0}.step-panel{position:relative;width:100%;min-height:235px;border:0;padding:32px 12px 24px;background:#f4ede7;overflow:hidden;isolation:isolate;text-align:center;display:flex;flex-direction:column;align-items:center;color:#412e43}.step-panel:before{content:'';position:absolute;inset:0;background:#7d4663;transform:translateY(101%);transition:transform .55s cubic-bezier(.16,1,.3,1);z-index:-1}.step-panel:after{content:'';position:absolute;inset:0;background:url('assets/roof.webp') center/cover;opacity:0;transition:opacity .5s;z-index:-1;mix-blend-mode:screen;filter:grayscale(1)}.step-panel:hover:before,.step-panel:focus-visible:before,.step-panel[aria-pressed=true]:before{transform:translateY(0)}.step-panel:hover:after,.step-panel:focus-visible:after,.step-panel[aria-pressed=true]:after{opacity:.12}.step-panel:hover,.step-panel:focus-visible,.step-panel[aria-pressed=true]{color:#fffcfa}.step-number{position:static;font-family:SourceBrush,WholeKai,serif;font-size:30px;line-height:1;opacity:1;color:#98708b;margin-bottom:10px}.step-panel:hover .step-number,.step-panel:focus-visible .step-number,.step-panel[aria-pressed=true] .step-number{color:#f0d7e6}.step-title{font-size:24px;line-height:1.5}.step-desc{font-size:17px;margin-top:5px}.step-detail{text-align:center;min-height:30px;font-size:16px;padding-top:15px;color:#624a60}.pricing{width:100%;max-width:none;padding:65px 7% 95px;background:#e3d9e7;gap:25px;position:relative;isolation:isolate}.pricing:after{content:'';position:absolute;bottom:0;left:0;right:0;height:100px;background:linear-gradient(transparent,#f4ede7);z-index:-1}.pricing h2{font-size:36px}.price-flower{display:none}.price{background:#f4ede75e;padding:23px;min-height:240px}.price.featured{background:#fffcfa;transform:translateY(-10px) rotate(-2deg);box-shadow:8px 19px 35px #51344d18}.price strong{font-family:WholeKai,serif;font-size:52px}.price h3{font-size:22px}.price p{font-size:15px}.download{position:relative;background:linear-gradient(90deg,#f4ede7ef,#f4ede7bc),url('assets/lake.webp') center 60%/cover;min-height:460px;padding:55px 7% 80px;overflow:visible}.landing-desktop{transform:rotate(3deg) translateY(-26px);background:#fffcfaaf;backdrop-filter:blur(14px);box-shadow:12px 23px 45px #67496224}.download h2{font-size:44px}.download-options button{font-size:16px}.desktop-note strong{font-size:34px}.questions{width:100%;max-width:none;padding:76px 7%;background:#fffcfa;border:0;position:relative;isolation:isolate}.questions:before{content:'';position:absolute;left:0;top:-60px;width:100%;height:80px;background:linear-gradient(transparent,#fffcfa);z-index:-1}.questions h2{font-size:36px}.faq-list summary{font-size:19px}.faq-list details p{font-size:17px}.feedback{width:100%;max-width:none;padding:60px 7%;background:linear-gradient(110deg,#e1d6e899,#f4ede7);border-top:1px solid #e4d6d3}.feedback h2{font-size:32px}footer{background:#f4ede7}
@keyframes tag-sway{0%,100%{transform:rotate(0)}30%{transform:rotate(-18deg)}70%{transform:rotate(14deg)}}
@media(max-height:720px){.experience{min-height:560px}.experience>.section-heading{top:18px}.experience h2{font-size:28px}.scene-controls{top:75px;padding:12px 15px;width:220px}.scene-tabs button{font-size:19px;padding:5px 10px;min-height:34px}.control-heading{margin-bottom:5px}.pet-picker{margin-top:6px}.action-bar{padding:6px 0;gap:6px}.actions button{min-height:30px;padding:3px 7px}.scene-tools{margin-top:6px}.hero h1{font-size:65px}}
@media(prefers-reduced-transparency:reduce){.scene-controls,.landing-desktop{background:#f4ede7;backdrop-filter:none}}
@media(prefers-reduced-motion:reduce){.step-panel:before{transition:none}}
html{scroll-padding-top:0}
/* Text controls are composed directly over the full scene. */
.experience>.section-heading{left:5%;top:30px}.scene-controls{display:contents;background:none!important;border:0;box-shadow:none;backdrop-filter:none;padding:0}.control-heading{display:none}
.scene-tabs{position:absolute;left:5%;top:98px;display:flex;gap:38px;width:auto;border:0;padding:0;z-index:8;margin:0}.scene-tabs button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:4px 0 12px;min-height:0;color:#4d3048;font-size:24px;background:none!important;text-shadow:0 1px 8px #f4ede780}.scene-tabs button span{display:block;font-size:13px;color:inherit}.scene-tabs button[aria-selected=true]{color:#6b294f}.scene-tabs button[aria-selected=true]:after{content:'';position:absolute;left:0;bottom:0;width:36px;height:1px;background:currentColor}.scene-tabs button:hover{color:#782b57}
.pet-picker{position:absolute;top:32px;right:5%;margin:0;gap:16px;z-index:8}.pet-picker button{padding:5px 0;font-size:16px;color:#4d3048;background:none!important;text-shadow:0 1px 8px #f4ede780}.pet-picker button[aria-pressed=true]{color:#6b294f;box-shadow:0 1px currentColor}
.action-bar{position:absolute;left:5%;right:5%;bottom:28px;width:auto;display:flex;flex-wrap:nowrap;gap:24px;border:0;margin:0;padding:0;z-index:8;color:#fff8f0;text-shadow:0 1px 5px #211424,0 1px 12px #211424}.pet-status{width:auto;min-width:205px;color:inherit}.pet-status strong{font-size:17px}.status-dot{background:currentColor}.actions{display:flex;gap:24px;width:auto;margin:auto}.actions button{background:none!important;border:0;min-height:38px;padding:5px 0;font-size:18px;color:inherit;text-shadow:inherit;position:relative}.actions button[aria-pressed=true]{color:#fff8f0;box-shadow:0 1px currentColor}.actions button:hover{box-shadow:0 1px currentColor}.reset{font-size:14px;color:inherit;text-shadow:inherit;min-height:38px;padding:4px 0;white-space:nowrap}.scene-tools{position:absolute;right:5%;bottom:90px;top:auto;display:flex;gap:24px;z-index:8;margin:0}.scene-tools button{padding:5px 0;min-height:34px;background:none!important;border:0;color:#fff8f0;font-size:14px;text-shadow:0 1px 5px #211424,0 1px 12px #211424}.scene-tools button:hover,.scene-tools button[aria-pressed=true]{color:#fff8f0;box-shadow:0 1px currentColor}.scene-controls button:focus-visible{outline-color:currentColor}.scene-object .object-label{background:none;color:#4d3048;text-shadow:0 1px 8px #f4ede7}
.stage[data-scene=window] .scene-tabs button,.stage[data-scene=window] .pet-picker button,.stage.moonlit .scene-tabs button,.stage.moonlit .pet-picker button{color:#fff8f0;text-shadow:0 1px 6px #211424}.experience:has(.stage[data-scene=window]) h2,.experience:has(.stage.moonlit) h2{color:#fff8f0;text-shadow:0 1px 6px #211424}.stage[data-scene=window] .object-label{color:#fff8f0;text-shadow:0 1px 6px #211424}.traveler{visibility:visible!important}.traveler button{will-change:transform}
@media(max-height:720px){.experience>.section-heading{top:24px}.scene-tabs{top:83px}.scene-tabs button{font-size:22px;min-height:0;padding:4px 0 10px}.action-bar{bottom:22px;padding:0;gap:20px}.scene-tools{bottom:75px;margin:0}.pet-picker{top:24px;margin:0}}
@media(max-width:1150px){.scene-tabs{gap:28px}.actions{gap:18px}.pet-status{min-width:165px}.action-bar{gap:16px}}
.travel-pause{bottom:160px;right:18px;background:none;border:0;box-shadow:none;backdrop-filter:none;color:#fff8f0;text-shadow:0 1px 5px #271a2f,0 1px 10px #271a2f;padding:6px;font-size:12px}
