:root{color-scheme:dark;--navy:#101d2b;--ivory:#f3f1e9;--gold:#e7c990;--muted:#c7cdd4;--serif:"Hiragino Mincho ProN","Yu Mincho","YuMincho",serif;--sans:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--navy);color:var(--ivory);font-family:var(--sans);font-size:16px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:7px}.skip-link{position:fixed;left:20px;top:-100px;background:var(--navy);padding:16px;z-index:10}.skip-link:focus{top:16px}
.garden{position:relative;isolation:isolate;min-height:100svh;overflow:hidden;background:radial-gradient(ellipse at 64% 37%,#3b5061 0,transparent 60%),linear-gradient(#101d2b,#263848 55%,#101d2b)}
.garden::before{content:"";position:absolute;z-index:-2;inset:0;background-image:url("garden-scene.png");background-position:center 58%;background-size:cover;opacity:.72}.garden::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,22,35,.65),transparent 75%),linear-gradient(0deg,#101d2b 0%,transparent 44%,rgba(10,22,35,.35) 100%)}
.garden-header{width:min(1440px,100%);margin:auto;padding:28px 5vw;display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;z-index:3;font-size:.875rem;line-height:1.6}.back-link{display:inline-flex;gap:12px;align-items:center;padding:8px 0}.back-link:hover{color:var(--gold)}.garden-mark{margin:0;font-family:var(--serif);letter-spacing:.12em}.garden-mark span{border-left:1px solid #d6bd8860;margin-left:12px;padding-left:14px;color:var(--gold)}
.garden-scene{position:relative;width:min(1360px,100%);margin:auto;min-height:720px;height:calc(100svh - 153px);max-height:1080px}.garden-intro{position:absolute;top:15%;left:10%;z-index:2;max-width:38%}.eyebrow{color:var(--gold);font-family:var(--serif);font-size:.875rem;letter-spacing:.28em;margin:0 0 24px}h1{font-family:var(--serif);font-weight:400;letter-spacing:.08em;font-size:clamp(3.4rem,5.3vw,5.4rem);line-height:1.55;margin:0 0 24px;color:#f1dfba}.garden-lede{font-family:var(--serif);font-size:1rem;line-height:2.2;letter-spacing:.04em;color:#e1e4e9;margin:0}
.garden-portrait{position:absolute;width:auto;height:82%;aspect-ratio:1;bottom:13%;left:64%;transform:translateX(-50%);pointer-events:none;filter:drop-shadow(0 15px 16px #06111b70)}.portrait-breathe{width:100%;height:100%;position:relative;z-index:2;transform-origin:50% 88%;}.pose{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .38s ease-in-out;user-select:none;-webkit-user-drag:none}.pose{opacity:0}.garden[data-pose="back"] .pose-back,.garden[data-pose="turn"] .pose-turn,.garden[data-pose="down"] .pose-down,.garden[data-pose="reach"] .pose-reach,.garden[data-pose="hold"] .pose-hold{opacity:1}
.flower-stone{position:absolute;left:14%;top:77%;width:32%;height:auto;z-index:0;pointer-events:none;user-select:none;-webkit-user-drag:none}.flower-bed{position:absolute;inset:0;pointer-events:none;z-index:1}.offered-flower{position:absolute;width:13%;height:13%;object-fit:contain;left:30.9%;top:83.7%;transform-origin:68.5% 73.1%;transform:translate(-68.5%,-73.1%) rotate(-45deg);filter:drop-shadow(0 3px 3px #06111b70);animation:place-flower 1.2s ease-out both}.offered-flower.collected{animation:none;opacity:0;transition:opacity .25s ease-in;transform:translate(-68.5%,-76%) rotate(-45deg)}
.garden-action{position:absolute;bottom:0;left:10%;width:310px;z-index:3;text-align:left;scroll-margin:24px}.garden-status{min-height:2.8em;line-height:1.7;font-family:var(--serif);font-size:.9375rem;letter-spacing:.03em;color:#e2e5e9;margin:0 0 18px}.offer-button{display:flex;justify-content:space-between;align-items:center;gap:24px;width:100%;padding:19px 23px;border:1px solid #e7c990a8;border-radius:3px;color:var(--gold);background:#101d2bd9;cursor:pointer;letter-spacing:.07em;transition:background .3s,color .3s,transform .3s,opacity .3s}.offer-button:hover:not(:disabled):not([aria-disabled="true"]){background:var(--gold);color:var(--navy);transform:translateY(-2px)}.offer-button:disabled,.offer-button[aria-disabled="true"]{cursor:wait;opacity:.6}.button-arrow{font-size:1.15rem;transition:transform .3s}.offer-button:hover:not(:disabled):not([aria-disabled="true"]) .button-arrow{transform:translate(2px,-2px)}.flower-count{font-size:.875rem;line-height:1.6;color:var(--muted);margin:14px 0 0;letter-spacing:.05em}
.garden-footer{position:relative;z-index:3;width:min(1440px,100%);margin:0 auto;display:flex;gap:16px;justify-content:space-between;padding:27px 5vw;font-size:.8125rem;line-height:1.8;color:var(--muted)}.garden-footer p{margin:0}.garden-footer a:hover{color:var(--gold)}.noscript-note{position:fixed;z-index:8;bottom:0;left:0;right:0;margin:0;padding:20px;background:#101d2b;color:var(--ivory);text-align:center}.noscript-note a{text-decoration:underline}
@keyframes place-flower{0%{opacity:0;transform:translate(-68.5%,calc(-73.1% - 20px)) rotate(-49deg) scale(.9)}35%{opacity:1}100%{opacity:1;transform:translate(-68.5%,-73.1%) rotate(-45deg) scale(1)}}
@media(max-width:700px){.garden-header{padding:16px 22px;gap:12px}.garden-mark{font-size:.8125rem}.garden-mark span{margin-left:7px;padding-left:9px}.back-link{font-size:.8125rem;gap:7px}.garden::after{background:linear-gradient(0deg,#101d2b 0%,transparent 58%,#101d2b60)}.garden-scene{min-height:760px;height:calc(100svh - 185px);max-height:none}.garden-intro{left:20px;right:20px;top:18px;text-align:center;max-width:none}.eyebrow{font-size:.8125rem;margin-bottom:12px}h1{font-size:2.6rem;line-height:1.6;margin-bottom:10px}.desktop-break{display:none}.garden-lede{font-size:.875rem;line-height:1.8}.garden-portrait{height:430px;left:50%;bottom:164px}.garden-action{left:50%;transform:translateX(-50%);bottom:0;width:min(310px,calc(100% - 48px));text-align:center}.garden-status{min-height:2em;margin-bottom:12px}.offer-button{padding:17px 23px}.garden-footer{flex-direction:column;align-items:center;text-align:center;gap:10px;padding:24px 22px}.garden-footer p{max-width:28em}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.pose{transition:none!important}}

@media(max-width:700px){.garden-scene{height:auto;min-height:0;display:flex;flex-direction:column;padding-top:8px}.garden-intro{position:relative;inset:auto;padding:0 20px}.garden-portrait{position:relative;height:clamp(270px,43svh,430px);flex:none;bottom:auto;margin:10px 0 0}.garden-action{position:relative;inset:auto;transform:none;margin:0 auto;width:min(310px,calc(100% - 48px))}.garden-status{min-height:2.8em}.garden-footer{padding-top:24px}}
@media(min-width:701px) and (max-height:820px){.garden-scene{min-height:580px}.garden-intro{top:5%}h1{font-size:3.25rem;line-height:1.35;margin-bottom:15px}.garden-intro .eyebrow{margin-bottom:15px}.garden-portrait{height:86%;bottom:8%}}





.flower-counter{margin-top:20px}.counter-label{font-size:.8125rem;color:var(--muted);letter-spacing:.08em;margin:0 0 7px}.counter-reading{display:flex;gap:10px;align-items:baseline;margin:0;color:var(--gold)}.counter-reading>span{font-family:var(--serif);font-size:.875rem}.counter-digits{display:inline-block;font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-variant-numeric:tabular-nums;font-size:1.75rem;letter-spacing:.16em;line-height:1.3;padding:5px 10px;border:1px solid #e7c99045;border-radius:3px;background:#0b1623a8}.counter-note{font-size:.8125rem;line-height:1.6;margin:7px 0 0;color:var(--muted);min-height:1.6em}.counter-retry{color:var(--gold);font-size:.875rem;border:0;background:none;text-decoration:underline;text-underline-offset:4px;padding:8px 0;cursor:pointer}.counter-retry[hidden]{display:none}@media(max-width:700px){.counter-reading{justify-content:center}.flower-counter{margin-top:16px}.counter-digits{font-size:1.5rem}}

/* A quiet second choice; the gold flower button stays the main invitation. */
.offer-amaboshi{display:flex;align-items:center;justify-content:center;gap:12px;margin:5px auto 0;padding:10px 7px;min-height:44px;border:0;background:transparent;color:var(--muted);font-family:var(--serif);font-size:.8125rem;line-height:1.7;cursor:pointer;text-underline-offset:5px;transition:color .25s,opacity .25s}.offer-amaboshi:hover:not(:disabled):not([aria-disabled="true"]){color:var(--gold);text-decoration:underline}.offer-amaboshi:disabled,.offer-amaboshi[aria-disabled="true"]{opacity:.5;cursor:wait}.offer-amaboshi>span:last-child{font-size:.85rem}.amaboshi-status{margin:0 0 8px;font-size:.8125rem;line-height:1.7;color:var(--muted)}.amaboshi-counter{margin-top:14px;padding-top:13px;border-top:1px solid #c7cdd426;font-size:.75rem;line-height:1.8;color:var(--muted)}.amaboshi-counter>p:first-child{margin:0}.amaboshi-counter output{margin-left:8px;font-variant-numeric:tabular-nums;color:#e1e4e9}.amaboshi-counter .counter-note{font-size:.75rem}.amaboshi-story{position:relative;z-index:3;width:min(620px,calc(100% - 44px));margin:0 auto 30px;font-size:.8125rem;line-height:1.9;color:var(--muted)}.amaboshi-story summary{width:fit-content;margin:auto;padding:10px 4px;cursor:pointer}.amaboshi-story summary:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.amaboshi-story p{margin:10px 0}.amaboshi-story a{text-decoration:underline;text-underline-offset:4px}.amaboshi-story a:hover{color:var(--gold)}
.garden[data-pose="decline-left"] .pose-decline-left,.garden[data-pose="decline-right"] .pose-decline-right{opacity:1}.offered-amaboshi{position:absolute;left:30.9%;top:86.3%;width:12%;height:8%;object-fit:fill;transform:translate(-50%,-91.8%);filter:drop-shadow(0 3px 3px #06111b70);animation:place-amaboshi .8s ease-out both}.offered-amaboshi.withdrawn{animation:withdraw-amaboshi .65s ease-in both}@keyframes place-amaboshi{from{opacity:0;transform:translate(-50%,calc(-91.8% - 12px))}to{opacity:1;transform:translate(-50%,-91.8%)}}@keyframes withdraw-amaboshi{from{opacity:1;transform:translate(-50%,-91.8%)}to{opacity:0;transform:translate(-60%,calc(-91.8% + 10px))}}
@media(min-width:701px){.garden-scene{height:auto;min-height:max(840px,calc(100svh - 153px));max-height:none;display:grid;grid-template-columns:minmax(310px,38%) 1fr;align-content:center;row-gap:44px;padding:48px 0 12px 10%}.garden-intro{position:relative;inset:auto;max-width:none;grid-column:1}.garden-action{position:relative;inset:auto;grid-column:1}.garden-portrait{max-height:880px}.flower-counter{margin-top:15px}}
@media(min-width:701px) and (max-height:820px){.garden-scene{min-height:760px;row-gap:32px}.garden-intro{top:auto}}
@media(max-width:700px){.amaboshi-counter{margin-top:13px}.amaboshi-story{margin-bottom:22px}}

/* Shared flowers grow behind Mitsunari and the offering stone, along the two garden edges. */
.garden-blooms{position:absolute;inset:0;z-index:-1;pointer-events:none;user-select:none}
.garden-bloom{position:absolute;left:var(--bloom-x);width:var(--bloom-width);height:auto;max-width:none;transform:translate(-50%,-100%) scaleX(var(--bloom-flip,1));transform-origin:50% 100%;filter:brightness(var(--bloom-light,.8)) saturate(.75);animation:garden-bloom-in 1.8s ease-out var(--bloom-delay,0ms) both;-webkit-user-drag:none}
@keyframes garden-bloom-in{from{opacity:0}to{opacity:.9}}
@media(prefers-reduced-motion:reduce){.garden-bloom{animation:none;opacity:.9}}

@media(max-width:700px){.garden-bloom{left:var(--bloom-mobile-x);width:var(--bloom-mobile-width)}}

/* The shared sky warms gradually; the reading area keeps its navy contrast. */
.garden::before{filter:brightness(calc(1 + var(--dawn-progress,0) * .35));transition:filter 14s ease}
.garden-dawn{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:var(--dawn-progress,0);background:radial-gradient(ellipse at 73% 25%,#ffe0ac9c 0,transparent 48%),linear-gradient(180deg,#7894b9c9 0,#d8aca167 29%,#d7b99738 43%,transparent 66%);mix-blend-mode:screen;transition:opacity 14s ease}
.garden-celebration{position:fixed;inset:0;z-index:8;pointer-events:none;overflow:hidden}
.garden-celebration[hidden]{display:none}
.garden-petals{position:absolute;inset:0;overflow:hidden}
.garden-petal{position:absolute;top:-30px;width:var(--petal-size);height:calc(var(--petal-size) * 1.9);border-radius:85% 15% 80% 20%;background:linear-gradient(115deg,#fff7e5,#e9d3a4);box-shadow:inset 1px 0 1px #fffefa8c,0 1px 3px #08132020;opacity:0;animation:garden-petal-fall var(--petal-duration) linear var(--petal-delay) both}
.garden-petal:nth-child(3n){background:linear-gradient(115deg,#fffdf4,#e2e1d9);border-radius:20% 80% 15% 85%}
.milestone-card{position:absolute;top:max(24px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);padding:18px 56px 20px 30px;border:1px solid #e7c99070;border-radius:4px;background:#101d2be8;box-shadow:0 10px 38px #07111d30;color:#f1dfba;text-align:center;animation:garden-milestone-in 1.2s ease both}
.milestone-eyebrow{font-size:.6875rem;letter-spacing:.18em;color:var(--muted);margin:0 0 7px}
.milestone-message{font-family:var(--serif);font-size:clamp(1rem,2.1vw,1.35rem);letter-spacing:.06em;line-height:1.7;margin:0}
.milestone-close{position:absolute;right:2px;top:2px;width:44px;height:44px;border:0;background:none;color:var(--muted);font-size:1.25rem;cursor:pointer;pointer-events:auto}
.milestone-close:hover{color:var(--gold)}
.garden-announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;margin:0}
@keyframes garden-petal-fall{0%{opacity:0;transform:translate3d(0,-3vh,0) rotate(-25deg)}10%{opacity:.85}40%{transform:translate3d(calc(var(--petal-drift) * -.25),42vh,0) rotate(110deg)}85%{opacity:.75}100%{opacity:0;transform:translate3d(var(--petal-drift),calc(100vh + 60px),0) rotate(var(--petal-turn))}}
@keyframes garden-milestone-in{from{opacity:0;translate:0 -8px}to{opacity:1;translate:0 0}}
@media(max-width:700px){.milestone-card{top:max(14px,env(safe-area-inset-top));padding:16px 48px 17px 23px}.garden-dawn{background:radial-gradient(ellipse at 68% 26%,#ffdeb885,transparent 44%),linear-gradient(180deg,#7894b990,#d8aca154 27%,transparent 61%)}}
@media(prefers-reduced-motion:reduce){.garden-petals{display:none}.garden-dawn,.garden::before{transition:none}.milestone-card{animation:none}}
.garden-header,.garden-intro{text-shadow:0 2px 12px #071422b3}
@media(max-width:700px){.garden::after{background:linear-gradient(180deg,rgba(10,22,35,calc(.38 + var(--dawn-progress,0) * .28)),rgba(10,22,35,calc(var(--dawn-progress,0) * .42)) 21%,transparent 42%),linear-gradient(0deg,#101d2b 0%,transparent 58%)}}
