
:root{--cream:#fcf7e9;--green:#365b38;--ink:#29482d;--leaf:#638453;--pale:#e8edce;--coral:#ce654d;--soft:#e4dcc4;--paper:#fffdf4;--yellow:#f4c661}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:30px}
body{margin:0;color:var(--ink);background:var(--cream);font-family:"Microsoft YaHei","PingFang SC",sans-serif;font-size:16px;line-height:1.8}
a{color:inherit;text-decoration:none}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit;cursor:pointer}
button:focus-visible,a:focus-visible{outline:3px solid var(--coral);outline-offset:5px}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-family:"STKaiti","KaiTi","Microsoft YaHei",sans-serif;text-wrap:balance}
button{border:0}
header{position:relative;z-index:5;width:min(1280px,calc(100% - 88px));height:100px;margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #48633b26}
.brand{font-size:26px;letter-spacing:2px;font-weight:800;white-space:nowrap}
.brand small{font-family:"Microsoft YaHei",sans-serif;display:block;font-size:12px;letter-spacing:3px;line-height:1.5;font-weight:400}
nav{display:flex;gap:34px;align-items:center;font-size:14px}
nav>a:hover{color:var(--coral)}
.news-link{padding:9px 23px;border:1px solid #496940;border-radius:100px;background:transparent;color:var(--green)}
.hero{position:relative;isolation:isolate;min-height:750px;overflow:hidden;background:var(--pale)}
.hero:before{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(ellipse at 20% 10%,#fffcdfcc,transparent 65%),repeating-linear-gradient(0deg,#56714404 0,#56714404 1px,transparent 1px,transparent 5px)}
.hero:after{content:"";height:60px;position:absolute;bottom:-32px;left:-2%;width:104%;background:var(--cream);border-radius:50% 50% 0 0}
.hero-inner{width:min(1200px,calc(100% - 100px));margin:0 auto;display:grid;grid-template-columns:1.02fr 1fr;align-items:center;min-height:605px;gap:30px}
.eyebrow{font-size:13px;letter-spacing:4px;font-weight:600;color:var(--leaf)}
.hero h1{font-size:clamp(40px,4.4vw,64px);line-height:1.3;letter-spacing:2px;margin:22px 0 24px;position:relative}
.hero h1 span{color:var(--coral)}
.intro{font-size:17px;line-height:1.95;max-width:450px;color:#5e6d4e}
.hero-actions{display:flex;gap:14px;align-items:center;margin-top:31px}
.button{display:inline-flex;justify-content:center;align-items:center;gap:24px;border-radius:50px;background:var(--green);color:var(--paper);padding:13px 28px;font-size:15px;box-shadow:0 4px 0 #244525;transition:transform .2s,box-shadow .2s}
.button:hover{transform:translateY(-2px);box-shadow:0 6px 0 #244525}
.button.outline{background:transparent;color:var(--green);border:1px solid #709461;box-shadow:none}
.hero-note{margin-top:22px;font-size:12px;letter-spacing:1px;color:#6b7756}
.hero-art{position:relative;min-width:0;height:530px;display:flex;align-items:center;justify-content:center}
.game-board{width:370px;position:relative;transform:rotate(7deg);background:#f9f2d9;border:12px solid #fffbee;border-radius:40px;padding:20px;box-shadow:0 17px 0 #b3c38a,0 25px 40px #4b653322;outline:1px solid #869e5f40}
.board-head{display:flex;align-items:center;justify-content:space-between;padding:0 4px 12px;border-bottom:1px dashed #c9c6a7;margin-bottom:13px;font-size:14px;font-weight:bold}
.board-head span{color:var(--coral);font-size:12px;font-weight:normal}
.cells{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.tile{aspect-ratio:1;background:#e7e9c4;border-radius:18px;box-shadow:inset 0 -4px 0 #d8ddab;display:flex;align-items:center;justify-content:center}
.tile img{width:88%;height:88%;object-fit:contain}
.tile.match{background:#f4d47b;box-shadow:inset 0 -4px 0 #e7ba58}
.floral{position:absolute;pointer-events:none;z-index:2;filter:drop-shadow(0 15px 9px #465a3620);object-fit:contain}
.floral.one{width:210px;bottom:-14px;right:-18px;transform:rotate(13deg)}
.floral.two{width:96px;top:15px;right:0;transform:rotate(-20deg)}
.floral.three{width:86px;bottom:30px;left:-12px;transform:rotate(24deg)}
.art-label{position:absolute;left:2px;top:46px;background:var(--coral);color:#fff9ed;font-size:14px;line-height:1.4;padding:13px 22px;border-radius:50%;transform:rotate(-12deg);z-index:3;box-shadow:4px 5px 0 #bb583c20}
.art-caption{position:absolute;bottom:0;left:70px;font-size:12px;letter-spacing:1px;color:#5d7048;transform:rotate(-3deg)}
.ticker{display:flex;justify-content:center;gap:42px;padding:34px 24px 30px;color:#586a45;font-size:14px;letter-spacing:3px}
.ticker span:before{content:"•";padding-right:42px;color:var(--coral)}
.section{max-width:1160px;margin:auto;padding:65px 32px 85px}
.section-heading{text-align:center;margin-bottom:60px}
.section-heading h2{font-size:40px;margin:11px 0 15px;line-height:1.4}
.section-heading p{color:#6c7560;max-width:570px;margin:auto;font-size:15px}
.play-layout{display:grid;grid-template-columns:.92fr 1fr;align-items:center;gap:90px}
.photo-frame{position:relative;background:#fffdf4;padding:17px 17px 50px;transform:rotate(-4deg);box-shadow:0 10px 30px #56523913;max-width:430px;margin:auto;width:100%}
.photo-frame:before{content:"";position:absolute;top:-12px;left:35%;width:120px;height:30px;transform:rotate(4deg);background:#c8d4a8bb;z-index:2}
.photo-frame img{width:100%;height:355px;object-fit:cover;object-position:center}
.photo-frame figcaption{font-size:12px;position:absolute;bottom:14px;left:0;text-align:center;width:100%;color:#596347;letter-spacing:2px}
.step-number{display:inline-block;font-size:13px;letter-spacing:2px;background:#e3ebcf;padding:3px 13px;border-radius:99px;margin-bottom:15px}
.story h3{font-size:34px;line-height:1.4;margin-bottom:17px}
.story p{color:#586047;line-height:2;font-size:15px}
.pieces{display:flex;gap:14px;margin-top:28px}
.pieces img{width:55px;height:55px;object-fit:contain}
.flower-shop{background:#f0e8d6;position:relative;overflow:hidden}
.flower-shop:before{content:"";position:absolute;top:0;width:100%;height:12px;background:repeating-linear-gradient(90deg,#b1bc8f 0,#b1bc8f 40px,#e3e6cb 40px,#e3e6cb 80px)}
.shop-inner{max-width:1160px;margin:auto;padding:90px 32px;display:grid;grid-template-columns:.8fr 1.2fr;gap:75px;align-items:center}
.shop-art{position:relative;display:flex;align-items:flex-end;justify-content:center;min-height:330px;border-bottom:14px solid #a6a982}
.shop-art:after{content:"";position:absolute;height:11px;bottom:-25px;left:8%;right:8%;background:#c6c5a6}
.shop-art img{width:33%;max-height:310px;object-fit:contain;position:relative;z-index:1;filter:drop-shadow(0 12px 10px #605b4017)}
.shop-art img:nth-child(2){width:42%;margin:0 -8%;z-index:2;max-height:360px}
.shop-art .shelf-label{position:absolute;left:50%;top:-2px;transform:translateX(-50%) rotate(3deg);padding:5px 20px;font-size:13px;background:#fff9e9;white-space:nowrap;box-shadow:0 2px 4px #4b5e3020}
.collection{position:relative}
.collection-row{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;align-items:start}
.flower-sheet{margin:0;text-align:center;position:relative;background:#fffcf0;padding:18px 20px 25px;box-shadow:0 4px 15px #776a4810}
.flower-sheet:nth-child(1){transform:rotate(-3deg)}
.flower-sheet:nth-child(2){margin-top:24px;transform:rotate(2deg)}
.flower-sheet:nth-child(3){transform:rotate(-1deg)}
.flower-sheet img{height:240px;width:100%;object-fit:contain}
.flower-sheet figcaption{font-size:16px;font-family:"STKaiti","KaiTi",serif;letter-spacing:3px}
.flower-sheet small{font-family:"Microsoft YaHei",sans-serif;display:block;font-size:12px;color:#596347;letter-spacing:1px;margin-top:5px}
.message{max-width:920px;margin:30px auto 80px;padding:42px 65px;position:relative;display:flex;align-items:center;justify-content:space-between;gap:30px;border-top:1px dashed #a4b28c;border-bottom:1px dashed #a4b28c}
.message h2{font-size:29px;margin:7px 0 11px}
.message p{color:#586047;font-size:14px}
.status{display:flex;align-items:center;gap:10px;color:var(--leaf);font-size:12px;letter-spacing:2px}
.status:before{content:"";width:7px;height:7px;display:block;border-radius:50%;background:var(--leaf)}
.message .button{white-space:nowrap}
footer{text-align:center;background:#dfe6cc;padding:46px 24px 24px}
.footer-brand{font-size:25px;letter-spacing:3px;font-family:"STKaiti","KaiTi",serif;font-weight:bold}
footer p{font-size:13px;color:#536044;margin:8px 0 34px}
footer .icp{display:inline-flex;align-items:center;font-size:12px;color:#50603e;white-space:nowrap}
.icp:hover{text-decoration:underline}
@media(min-width:1500px){.hero{min-height:800px}
.hero-inner{min-height:655px}
.hero-art{transform:scale(1.08)}
}
@media(max-width:900px){header{width:calc(100% - 44px)}
nav{gap:18px}
.hero-inner{width:calc(100% - 64px);gap:10px}
.hero h1{font-size:43px}
.hero-art{transform:scale(.83);margin:0 -35px}
.hero{min-height:720px}
.play-layout{gap:50px}
.shop-inner{gap:30px}
.story h3{font-size:30px}
.message{margin-left:32px;margin-right:32px;padding:36px}
.collection-row{gap:18px}
}
@media(max-width:620px){header{height:86px;width:calc(100% - 40px)}
.brand{font-size:21px;letter-spacing:1px}
.brand small{font-size:12px;letter-spacing:1px}
nav>a:not(.news-link){display:none}
.news-link{font-size:12px;padding:7px 15px}
.hero{min-height:auto}
.hero-inner{display:flex;flex-direction:column;width:100%;padding:45px 24px 40px;gap:8px;min-height:0}
.hero-copy{text-align:center;width:100%}
.eyebrow{font-size:12px;letter-spacing:2px}
.hero h1{font-size:clamp(32px,10vw,39px);line-height:1.38;letter-spacing:0;margin:18px 0}
.intro{font-size:15px;max-width:310px;margin:auto}
.hero-actions{justify-content:center;gap:10px;margin-top:25px}
.button{padding:11px 22px;font-size:14px;gap:18px}
.hero-note{margin-top:18px;letter-spacing:0}
.hero-art{height:425px;transform:none;width:100%;max-width:350px;margin:0}
.game-board{width:280px;border-width:9px;padding:15px;border-radius:30px;transform:rotate(6deg)}
.cells{gap:5px}
.tile{border-radius:12px}
.board-head{font-size:12px;padding-bottom:8px;margin-bottom:10px}
.board-head span{font-size:12px}
.floral.one{width:135px;right:-6px;bottom:6px}
.floral.two{width:67px;right:0;top:33px}
.floral.three{width:65px;left:-8px;bottom:24px}
.art-label{font-size:12px;padding:10px 16px;left:0;top:30px}
.art-caption{left:20px;bottom:-6px;font-size:12px}
.ticker{font-size:12px;gap:18px;letter-spacing:1px;padding:29px 10px 8px}
.ticker span:before{padding-right:18px}
.ticker span:last-child{display:none}
.section{padding:48px 25px 60px}
.section-heading{margin-bottom:38px}
.section-heading h2{font-size:30px;margin:9px 0 12px}
.section-heading p{font-size:14px;line-height:1.9}
.play-layout{grid-template-columns:1fr;gap:48px}
.photo-frame{width:88%;padding:12px 12px 42px}
.photo-frame img{height:290px}
.photo-frame figcaption{font-size:12px;letter-spacing:0}
.story h3{font-size:29px}
.story p{font-size:14px}
.pieces{margin-top:20px}
.pieces img{width:45px;height:45px}
.shop-inner{padding:60px 25px 65px;grid-template-columns:1fr;gap:45px}
.shop-art{min-height:255px;max-width:390px;width:100%;margin:auto}
.shop-art img{max-height:240px}
.shop-art img:nth-child(2){max-height:280px}
.collection-row{grid-template-columns:1fr;gap:32px;max-width:260px;margin:auto}
.flower-sheet:nth-child(2){margin-top:0}
.flower-sheet img{height:220px}
.message{margin:0 24px 48px;padding:30px 0;display:block;text-align:center}
.status{justify-content:center}
.message h2{font-size:27px}
.message .button{margin-top:24px}
.message p{max-width:285px;margin:auto}
footer{padding-top:35px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*:before,*:after{transition:none!important}
}


/* Accessible navigation and stable touch targets. */
.skip-link{position:absolute;left:16px;top:-100px;z-index:20;padding:12px 20px;background:#fffdf4;color:#29482d;border:2px solid #365b38}

.skip-link:focus{top:12px}

.button{min-height:48px}

.news-link{min-height:44px;display:inline-flex;align-items:center;justify-content:center}

.icp{min-height:44px}

@media(max-width:360px){header{width:calc(100% - 32px)}
.brand{font-size:19px}
.brand small{font-size:12px;letter-spacing:0}
.news-link{padding:7px 12px}
.hero-inner{padding-left:20px;padding-right:20px}
}

/* Launch announcement and contact: an iteration of the approved garden design. */
.launch-badge{display:inline-flex;align-items:center;gap:14px;min-height:44px;margin-bottom:14px;padding:6px 16px;border:1px solid #a9bb8c;border-radius:50px;background:#fffdf4;color:#365b38;font-size:14px;font-weight:600;line-height:1.5}
.launch-badge:before{content:"";width:7px;height:7px;border-radius:50%;background:#638453;flex:none}
.launch-badge:hover{background:#f4f5dd}
.launch-message{gap:40px}
.wechat-entry{flex:0 0 220px;padding:20px 22px;background:#e8edce;border-radius:18px;text-align:center}
.wechat-entry-label,.wechat-entry-note{display:block;color:#536044;font-size:13px}
.wechat-entry strong{display:block;margin:4px 0;font-size:24px;letter-spacing:2px;font-family:"STKaiti","KaiTi","Microsoft YaHei",sans-serif}
.wechat-more{display:inline-flex;align-items:center;gap:12px;min-height:44px;margin-top:8px;color:#365b38;font-size:14px;text-decoration:underline;text-underline-offset:5px}
@media(max-width:620px){.launch-badge{margin-bottom:16px;font-size:13px}.wechat-entry{max-width:280px;margin:24px auto 0;padding:18px 20px}.launch-message{margin-bottom:48px}}
.wechat-entry{flex-basis:290px;min-width:0}
.wechat-link-label{display:block;text-align:left;font-size:12px;color:#536044;margin-top:14px}
.wechat-link{display:block;width:100%;min-width:0;min-height:44px;padding:8px 10px;border:1px solid #a9bb8c;border-radius:8px;background:#fffdf4;color:#29482d;font:12px/1.5 "Microsoft YaHei",sans-serif}
.wechat-link:focus-visible{outline:3px solid var(--coral);outline-offset:3px}
.copy-wechat{width:100%;margin-top:12px}
.copy-wechat:disabled{cursor:wait;opacity:.7}
.wechat-entry .copy-status{min-height:44px;margin:14px 0 0;font-size:12px;line-height:1.8;color:#536044}
.game-faq{max-width:920px;margin:0 auto 64px;padding:0 32px}
.game-faq h2{font-size:26px;margin-bottom:24px}
.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.faq-grid h3{font-family:"Microsoft YaHei",sans-serif;font-size:16px;margin-bottom:10px}
.faq-grid p{font-size:14px;color:#536044;line-height:1.9}
@media(max-width:620px){.wechat-entry{max-width:310px}.game-faq{padding:0 24px;margin-bottom:48px}.game-faq h2{font-size:24px}.faq-grid{grid-template-columns:1fr;gap:24px}}

/* Compact footer links and native modal contact card. */
.footer-links{display:flex;align-items:center;justify-content:center;gap:14px;border-top:1px solid #bfcaa8;padding-top:12px}
.contact-trigger{display:inline-flex;align-items:center;min-height:44px;padding:0;background:none;color:#50603e;font-size:12px;white-space:nowrap}
.contact-trigger:hover{text-decoration:underline;text-underline-offset:4px}
.footer-divider{color:#7e8f68;font-size:12px}
body.contact-open{overflow:hidden}
.contact-dialog{position:fixed;inset:0;margin:auto;width:min(420px,calc(100% - 40px));max-height:calc(100dvh - 40px);padding:38px 28px 32px;border:1px solid #bfcaa8;border-radius:22px;background:var(--paper);color:var(--ink);text-align:center;box-shadow:0 20px 70px #29482d26;overflow:auto}
.contact-dialog::backdrop{background:#263b2a70;backdrop-filter:blur(4px)}
.contact-close{position:absolute;top:8px;right:8px;width:44px;height:44px;padding:0;border-radius:50%;background:transparent;color:#536044;font:28px/1 sans-serif}
.contact-close:hover{background:var(--pale)}
.contact-eyebrow{margin:0 0 8px;font-size:12px;letter-spacing:3px;color:var(--leaf)}
.contact-dialog h2{margin:0 0 14px;font-size:30px;letter-spacing:2px}
.contact-dialog #contact-description{margin:0;font-size:14px;color:#536044;line-height:1.8}
.contact-email{display:inline-flex;align-items:center;min-height:44px;margin-top:18px;color:var(--green);font-size:17px;text-decoration:underline;text-underline-offset:5px;overflow-wrap:anywhere}
@media(max-width:360px){.footer-links{gap:10px}.contact-dialog{padding:38px 20px 28px}.contact-email{font-size:16px}}
