:root{--blue:#698faf;--ink:#201d1b;--paper:#f7f8f9;--line:#d9dde1;--white:#fff}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Noto Sans JP",sans-serif;font-size:16px;line-height:1.8}
a{color:inherit;text-decoration:none}
.site-header{height:82px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10;background:var(--blue)}
.flower-mark{width:50px;height:54px;display:grid;place-items:center;flex:0 0 50px}
.flower-mark img{display:block;width:46px;height:auto}
.wordmark,.footer-logo{font-family:"DM Sans",sans-serif;font-weight:900;font-size:1.65rem;font-style:italic;letter-spacing:-.06em}
nav{width:100%;max-width:680px;display:flex;justify-content:flex-end;gap:44px;align-items:center;color:white;font-family:"DM Sans",sans-serif;font-weight:700;font-size:.92rem;letter-spacing:.08em}
nav a{padding:10px 4px;border-bottom:2px solid transparent;transition:border-color .2s ease}
nav a:hover{border-color:white}
.instagram-icon{display:grid;place-items:center}.instagram-icon svg,.instagram-follow svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8}.instagram-icon .dot,.instagram-follow .dot{fill:currentColor;stroke:none}
.hero{min-height:calc(100svh - 82px);display:grid;place-items:center;background:white;overflow:hidden}
.hero-lockup{display:grid;justify-items:center;width:min(86vw,900px);padding:7vh 20px 4vh}
.hero-flower-art{display:block;width:clamp(88px,11vw,138px);height:auto;overflow:hidden}
.flower-fade{opacity:0;will-change:opacity;animation:flower-fade-in .9s ease .18s forwards}
.hero-wordmark{margin-top:clamp(8px,1.4vh,18px);font-family:"DM Sans",sans-serif;font-size:clamp(4rem,10vw,8.4rem);font-style:italic;font-weight:900;line-height:.92;white-space:nowrap;color:var(--ink);overflow:visible}
.letter-slot{display:inline-block;position:relative;overflow:visible;margin-left:-.085em;vertical-align:baseline}
.letter-slot:first-child{margin-left:0}
.hero-wordmark .letter{display:inline-block;position:relative;overflow:visible;padding:.08em .15em;margin:-.08em -.15em;opacity:0;transform:translate3d(-110vw,0,0);will-change:transform,opacity;backface-visibility:hidden;animation:letter-slide .9s cubic-bezier(.16,.84,.3,1) forwards}
.letter-nmark{animation-delay:1.42s!important}.letter-i{animation-delay:1.55s!important}.letter-m{animation-delay:1.68s!important}.letter-o2{animation-delay:1.81s!important}.letter-o1{animation-delay:1.94s!important}.letter-l{animation-delay:2.07s!important}.letter-b{animation-delay:2.20s!important}
.hero-subtitle{margin:clamp(20px,3vh,32px) 0 0;color:var(--blue);font-family:"DM Sans",sans-serif;font-size:clamp(.82rem,1.7vw,1.45rem);font-weight:700;letter-spacing:.47em;line-height:1;text-transform:none;opacity:0;animation:subtitle-fade .75s ease 2.7s forwards}
@keyframes flower-fade-in{to{opacity:1}}
@keyframes letter-slide{0%{opacity:0;transform:translate3d(-110vw,0,0)}48%{opacity:0;transform:translate3d(-58vw,0,0)}55%{opacity:1}100%{opacity:1;transform:translate3d(0,0,0)}}
@keyframes subtitle-fade{to{opacity:1}}
.eyebrow{font-family:"DM Sans",sans-serif;font-weight:700;font-size:.78rem;letter-spacing:.2em;color:var(--blue);margin:0 0 22px}
h1,h2,h3{margin:0;line-height:1.13}
h1{font-size:clamp(3.4rem,7vw,7.5rem);font-weight:900;letter-spacing:-.08em}
h1 span{color:var(--blue)}
.lead{max-width:610px;margin:30px 0 38px;font-size:clamp(1rem,1.45vw,1.2rem);font-weight:500}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 28px;font-weight:700;transition:.2s ease}
.primary{background:var(--ink);color:white}.primary:hover{background:var(--blue);transform:translateY(-2px)}
.secondary{border:1px solid var(--ink)}.secondary:hover{background:white;transform:translateY(-2px)}
.marquee{overflow:hidden;background:var(--blue);color:white;padding:15px 0;white-space:nowrap;font-family:"DM Sans",sans-serif;font-size:1rem;font-weight:900;letter-spacing:.15em}
.marquee div{display:inline-block;width:max-content;animation:ticker 11s linear infinite}.marquee span{display:inline-block;white-space:nowrap}
@keyframes ticker{from{transform:translateX(100vw)}to{transform:translateX(-100%)}}
.about{padding:130px 6vw;display:grid;grid-template-columns:70px 1.2fr 1fr;gap:4vw;border-bottom:1px solid var(--line)}
.section-number{font-family:"DM Sans",sans-serif;color:var(--blue);font-weight:700}
h2{font-size:clamp(2.3rem,4.5vw,5rem);letter-spacing:-.06em}
.about-text{padding-top:46px}.about-text p{margin:0 0 20px}
.flow{display:grid;grid-template-columns:repeat(3,1fr);padding:0 6vw 130px;gap:1px;background:var(--line)}
.flow article{background:var(--paper);padding:44px 36px;min-height:250px}
.flow span{color:var(--blue);font-family:"DM Sans",sans-serif;font-weight:900}.flow h3{font-size:1.7rem;margin:28px 0 15px}.flow p{margin:0}
.shop{padding:120px 6vw 140px;background:white;scroll-margin-top:82px}.shop-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:54px}.shop-heading p{margin:0}.shop-heading>p{color:#666}.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:46px 24px}.product-card{display:block;margin:0;transition:transform .25s ease;cursor:pointer}.product-card:hover{transform:translateY(-6px)}.product-image{aspect-ratio:1;background:#eff3f6;overflow:hidden}.product-image img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .35s ease}.product-card:hover .product-image img{transform:scale(1.025)}.product-card>p{margin:12px 0 4px;font-weight:700;font-size:.9rem;line-height:1.55}.product-card>strong{color:var(--blue);font-family:"DM Sans",sans-serif;font-size:1rem}
.product-modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px}.product-modal[hidden]{display:none}.product-modal-backdrop{position:absolute;inset:0;background:rgba(20,20,20,.58);backdrop-filter:blur(4px)}.product-modal-panel{position:relative;z-index:1;width:min(920px,94vw);max-height:90vh;overflow:auto;background:white;display:grid;grid-template-columns:minmax(280px,1fr) 1fr;box-shadow:0 24px 70px rgba(0,0,0,.25)}.product-modal-close{position:absolute;right:14px;top:10px;z-index:2;width:42px;height:42px;border:0;background:white;color:var(--ink);font-size:2rem;line-height:1;cursor:pointer}.product-modal-image{min-height:520px;background:#eff3f6;display:grid;place-items:center}.product-modal-image img{width:100%;height:100%;display:block;object-fit:contain}.product-modal-info{padding:72px 48px 48px}.product-modal-info h2{font-size:clamp(1.7rem,3vw,2.7rem);line-height:1.25;letter-spacing:-.04em;margin:0 0 20px}.product-modal-price{font-family:"DM Sans",sans-serif;color:var(--blue);font-size:1.45rem;font-weight:900;margin:0 0 28px}.product-modal-note{color:#666;margin:0 0 32px}.product-modal-info .button{width:100%}.modal-open{overflow:hidden}
.request{margin:0 4vw 130px;background:var(--blue);color:white;padding:80px 7vw;display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:end}
.request .eyebrow{color:white;opacity:.75}.request p{max-width:520px}
.request-link{display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(255,255,255,.7);border-bottom:1px solid rgba(255,255,255,.7);padding:24px 4px;font-size:1.08rem;font-weight:700}.request-link b{font-size:2rem}
.instagram{text-align:center;padding:48px 6vw 70px;background:white}.instagram-brand{position:relative;width:min(100%,760px);height:155px;margin:0 auto;overflow:hidden}.instagram-brand img{position:absolute;width:760px;max-width:none;left:50%;top:-294px;transform:translateX(-50%)}.instagram-follow{display:inline-grid;place-items:center;margin-top:-8px;color:var(--blue);padding:8px;transition:transform .2s ease}.instagram-follow:hover{transform:scale(1.1)}.instagram-follow svg{width:31px;height:31px}
footer{background:var(--ink);color:white;padding:28px 6vw;text-align:center}footer p{margin:0;color:#aeb2b5}.copyright{font-size:.75rem}
@media(max-width:760px){.site-header{height:68px;padding:0 4vw}.flower-mark{width:42px;height:46px;flex-basis:42px}.flower-mark img{width:40px}nav{gap:12px;font-size:.67rem;letter-spacing:.02em}.instagram-icon svg{width:22px;height:22px}.hero{min-height:calc(100svh - 68px)}.hero-lockup{width:100%;padding:4vh 12px 2vh}.hero-flower-art{width:96px}.hero-wordmark{font-size:clamp(3.5rem,17vw,5rem)}.hero-subtitle{font-size:.78rem;letter-spacing:.4em;margin-top:22px}h1{font-size:clamp(3.25rem,16vw,5.3rem)}.about{padding:90px 7vw;grid-template-columns:1fr;gap:18px}.about-text{padding-top:10px}.flow{grid-template-columns:1fr;padding:0 7vw 90px}.flow article{min-height:0;padding:34px 26px}.shop{padding:80px 5vw 100px}.shop-heading{display:block}.shop-heading>p{margin-top:18px}.product-grid{grid-template-columns:repeat(2,1fr);gap:30px 12px}.product-modal{padding:12px}.product-modal-panel{display:block;max-height:94vh}.product-modal-image{height:52vh;min-height:320px}.product-modal-info{padding:32px 24px 26px}.product-modal-close{position:fixed;right:22px;top:20px}.request{margin:0 0 70px;padding:70px 7vw;grid-template-columns:1fr;gap:50px}.instagram{padding:28px 4vw 55px}.instagram-brand{width:100%;height:112px}.instagram-brand img{width:560px;top:-217px}.instagram-follow{margin-top:-7px}footer{padding:24px 5vw}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.marquee div,.flower-fade,.hero-wordmark .letter,.hero-subtitle{animation:none}.flower-fade,.hero-wordmark .letter,.hero-subtitle{opacity:1;transform:none}.button{transition:none}}
