/* v3: guided visits, tactile scenes, and an always-visible mobile bloom. */
:root{--serif:'Zen Old Mincho','Yu Mincho','Hiragino Mincho ProN',serif;--sans:'Noto Sans JP','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif}
.hero-scene{padding-top:132px;min-height:max(820px,100svh)}
.hero-copy .eyebrow{margin-bottom:14px;font-size:12px}
.hero-business{font:500 clamp(15px,1.4vw,19px)/1.85 var(--sans);color:#fff6e8;letter-spacing:.035em;margin-bottom:25px!important}
.mobile-break{display:none}
.hero-copy h1{font-size:clamp(44px,4.8vw,69px)}
.hero-description{margin-top:24px;font-size:14px}
.hero-location{font-size:12px;letter-spacing:0;line-height:1.8;color:#f3e6d2}
.hero-card{cursor:pointer}
.hero-card:hover{box-shadow:0 0 35px #e5c68f66,8px 15px 35px #06172852;border-color:#fff0cb}
.hero-card:focus-visible{outline:3px solid #f9d8ed;outline-offset:5px}
.hero-card.control-arrive{animation:card-arrive 1.1s var(--ease) both,card-float 7s ease-in-out 1.1s infinite alternate}
.hero-handwriting{font:500 13px/1.6 var(--serif);left:25px;letter-spacing:.1em;transform:none}
.scroll-cue{font-size:11px;letter-spacing:.12em}
.entrance .section-heading{max-width:770px}
.door-tabs{max-width:920px;margin-inline:auto}
.door-tabs button{box-shadow:0 5px 0 #203c4e12,0 12px 35px #182d4108}
.door-tabs button[aria-selected=true]{background:linear-gradient(145deg,#213c53,#0d2338);color:#fff5e6;box-shadow:0 6px 0 #091a2b40,0 18px 35px #142c4420}
.door-tabs button[aria-selected=true] .door-symbol{color:#f2c9de}
.door-tabs button[aria-selected=true]>span:last-child{color:#e1d6c1}
.door-photo{position:relative;overflow:hidden}
.door-photo>img{animation:photo-reveal .75s var(--ease)}
.door-panel--card .door-photo>img{animation:card-photo-unfold .9s var(--ease)}
.door-panel--flower .door-photo img{animation:petal-photo-open 1s var(--ease)}
.door-panel--chart .door-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,#dabc8580,transparent);translate:-110% 0;animation:chart-light 1s var(--ease);pointer-events:none}
.door-copy{min-width:0}
.door-copy .eyebrow{font-size:12px;letter-spacing:.04em}
.door-copy h3{font-size:clamp(26px,2.6vw,35px)}
.topic-deck{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:25px;perspective:950px}
.topic-card{display:block;position:relative;min-width:0;padding:0;height:142px;background:transparent;border-radius:55px 55px 4px 4px;box-shadow:0 5px 0 #182c4220;perspective:700px}
.topic-card-inner{display:block;position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .75s cubic-bezier(.18,.7,.18,1)}
.topic-card[aria-pressed=true] .topic-card-inner{transform:rotateY(180deg)}
.topic-front,.topic-back{display:flex;position:absolute;inset:0;align-items:center;justify-content:center;flex-direction:column;gap:10px;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:1px solid #a58b6099;border-radius:55px 55px 4px 4px}
.topic-front{background:radial-gradient(at 50% 5%,#4e6679,#162d43 80%);color:#f9e9c9}
.topic-front:before,.topic-back:before{content:'';position:absolute;inset:5px;border:1px solid #cdb28855;border-radius:inherit}
.topic-front .icon,.topic-front .flower-mark{width:27px;height:27px;color:#ecd2a3}
.topic-front strong{font:500 14px var(--serif)}
.topic-front small{font-size:10px;color:#ede0cb}
.topic-back{transform:rotateY(180deg);background:radial-gradient(at top,#fffaf0,#efcddd);color:var(--ink);font:500 15px/1.9 var(--serif);padding:10px}
.door-copy .topic-note{font-size:12px;line-height:1.85;min-height:70px;margin-top:20px;padding-left:14px;border-left:2px solid #b79764;color:var(--muted)}
.chart-glimpse{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#b7976440;border:1px solid #b7976470;margin:25px 0;overflow:hidden}
.chart-glimpse span{display:grid;place-items:center;aspect-ratio:1;background:linear-gradient(145deg,#fffaf1,#f1e8db);font:500 16px var(--serif);animation:chart-cell .6s var(--ease) both}
.chart-glimpse span:nth-child(2){animation-delay:.1s}.chart-glimpse span:nth-child(3){animation-delay:.2s}.chart-glimpse span:nth-child(4){animation-delay:.3s}
.flower-preview>div{height:100%;min-height:430px}
.flower-preview img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}
.flower-choices{display:flex;gap:20px;margin-top:25px}
.flower-choices button{display:flex;align-items:center;gap:10px;min-height:60px;padding:8px 14px;background:linear-gradient(145deg,#fffdf7,#f2e8df);border:1px solid #baa58166;border-radius:36px;font-size:12px;box-shadow:0 4px 0 #142c4410}
.flower-choices button[aria-pressed=true]{border-color:var(--rose-deep);box-shadow:0 4px 0 #94607844,0 0 0 3px #dbabc52a}
.flower-swatch{width:36px;height:36px;border-radius:50%;display:grid;place-items:center}
.flower-swatch .flower-mark{width:32px;height:32px}
.flower-swatch--soft{background:#b6cbd9;color:#fbf8ed}.flower-swatch--warm{background:#e3b9ba;color:#fff1ad}
.flower-choices button[aria-pressed=true] .flower-mark{animation:flower-celebrate .65s var(--ease)}
.door-flower-links{display:flex;gap:20px;flex-wrap:wrap}
.guide-shelf{display:grid;grid-template-columns:1.1fr 1fr;gap:35px;align-items:center;margin-top:0;padding:25px 30px;background:linear-gradient(115deg,#efe1da,#f6eee0);border:1px solid #c5ab782e;border-top:0;border-radius:0 0 5px 30px}
.guide-kicker{display:block;font-size:11px;color:var(--rose-deep);margin-bottom:6px;font-weight:600}
.guide-shelf p{font-size:13px;line-height:1.9}
.guide-links{display:grid;gap:6px}.guide-links a{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #b7976444;padding:9px 0;font-size:12px}
.guide-links .icon{width:17px}
.entrance-next{display:flex;justify-content:center;gap:12px;align-items:center;margin:35px 0 0;font-size:13px}
.entrance-next a{display:inline-flex;gap:8px;align-items:center;border-bottom:1px solid var(--gold);padding-block:6px}
.entrance-next .icon{width:16px}
.experience{overflow:visible}
.experience:before{width:min(550px,80vw);height:550px;left:0;clip-path:inset(0 0 0 0)}
.experience-layout{position:relative}
.experience-intro .eyebrow{font-size:12px;letter-spacing:.04em}
.experience-intro .quiz-note{color:#dde4e5;font-size:12px}
.quiz-result{scroll-margin-top:155px}
.result-reasons{margin:22px 0;padding-left:18px;list-style:disc;font-size:12px;line-height:1.9}
.result-reasons li+li{margin-top:10px}
#result-links{display:grid;gap:16px;margin:25px 0}
.result-menu{padding:22px 20px;background:linear-gradient(135deg,#fffdf8,#f6eadf);border:1px solid #b79b6f5e;border-radius:3px 24px 3px 3px;box-shadow:0 7px 20px #142c4408}
.result-menu h4{font:500 19px/1.6 var(--serif);margin:0 0 6px}
.result-menu .result-price{font-size:12px;color:#4d5d68;margin:0 0 14px}
.result-option{min-height:44px;background:linear-gradient(140deg,#35556e,#142c44);padding:12px 16px}
.result-context-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:15px;font-size:11px}
.result-context-links a{display:inline-block;border-bottom:1px solid #b7976488;padding:7px 0}
.quiz-dock{display:none}
.bloom-dialog{padding:0;max-height:calc(100svh - 36px);width:min(520px,calc(100% - 32px));max-width:520px;overflow:auto;border:1px solid #d5b681;border-radius:8px 70px 8px 8px;background:radial-gradient(ellipse at 50% 25%,#365568,#101f31 76%);color:#fff7e9;box-shadow:0 30px 140px #0009}
.bloom-dialog::backdrop{background:#071624d9;backdrop-filter:blur(10px)}
.bloom-dialog[open]{animation:bloom-dialog-arrive .55s var(--ease)}
.bloom-dialog-inner{position:relative;padding:45px 30px 30px;text-align:center;overflow:hidden}
.bloom-dialog .eyebrow{color:#ebcd96;font-size:12px;letter-spacing:.04em;margin-bottom:0}
.bloom-dialog h2{font-size:29px;line-height:1.6}
.bloom-dialog p:not(.eyebrow){font-size:13px;line-height:1.9;color:#efe4d4;margin:17px 0 23px}
.completion-flower{width:180px;margin:13px auto;isolation:isolate}
.completion-flower:before,.completion-flower:after{content:'';position:absolute;inset:-12px;border:1px solid #dfc28577;border-radius:50%;z-index:-1}
.completion-flower:after{inset:-25px;border-style:dashed;opacity:.5}
.bloom-dialog[open] .completion-flower:before{animation:completion-orbit 1.6s var(--ease)}
.bloom-dialog .btn{min-height:54px;width:100%;font-size:13px;gap:10px;padding-inline:12px}
.bloom-dialog #bloom-back{display:flex;justify-content:center;background:none;color:#e8d9c1;margin:15px auto 0;padding:7px 0;font-size:12px}
.bloom-dialog-close{position:absolute;right:18px;top:12px;display:grid;place-items:center;width:40px;height:40px;border:1px solid #fff5;background:#fff1;border-radius:50%;color:#fff}
.story-photo img{object-position:50% 28%}
.story-photo .photo-note{font-size:12px;white-space:normal;max-width:90%;padding:10px 16px}
.service-support{margin:22px 0;padding:16px 18px;background:linear-gradient(145deg,#eadad84a,#fffdf655);border:1px solid #b29d7733;border-radius:4px 25px 4px 4px}
.service-support>p{font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--rose-deep)}
.service-support .faq-item summary{padding:13px 0;font-size:14px;gap:10px}
.service-support .faq-item summary:before{font-size:19px}
.service-support .faq-answer{padding:0 0 15px;font-size:12px}
.service-support>div{display:flex;gap:15px;flex-wrap:wrap}
.service-support .text-link{font-size:11px;gap:5px;min-height:40px;padding:8px 0}
.service-support .text-link .icon{width:14px}
.service.is-recommended,.workshop-card.is-recommended{position:relative}
.service.is-recommended:before,.workshop-card.is-recommended:before{content:'選んだメニュー';position:absolute;top:0;right:0;color:var(--rose-deep);background:#f3e2ea;padding:5px 15px;border:1px solid #d2a4b7;font-size:11px;z-index:3;border-radius:2px 15px 2px 2px}
.workshop-card .service-support{background:#ffffff0c;border-color:#ffffff25}
.workshop-card .service-support>p,.workshop-card .faq-item summary:before{color:#e3c792}
.workshop-card .service-support .faq-answer{color:#e5e9e1}
.service-visual-label{font-family:var(--sans);letter-spacing:.04em;font-size:11px}
.take-home{position:relative;min-height:590px;display:flex;align-items:center;isolation:isolate;color:#fff6e8;overflow:hidden}
.take-home-photo{position:absolute;inset:0;z-index:-2}
.take-home-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 60%}
.take-home:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0b2238ec 0%,#142c44aa 48%,#142c440d);z-index:-1}
.take-home-copy{width:min(1200px,calc(100% - 100px));margin:0 auto;padding:90px 0}
.take-home .eyebrow{color:#edd5a9;font-size:12px;letter-spacing:.06em}
.take-home h2{font-size:clamp(34px,4.5vw,60px);line-height:1.5}
.take-home p:not(.eyebrow){font-size:15px;line-height:2;margin:25px 0}
.take-home .text-link{border-color:#dbc399;color:#fff6e8}
.topic-filters{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 20px}
.topic-filters button{padding:10px 19px;font-size:13px;min-height:46px;border:1px solid #b7976466;border-radius:4px 22px 4px 22px;box-shadow:0 4px 0 #142c4412;background:linear-gradient(140deg,#fffdf8,#efe4d4)}
.topic-filters button[aria-pressed=true]{background:linear-gradient(135deg,#324f67,#142c44);color:#fff5e6;box-shadow:0 4px 0 #142c4444}
.filter-status{font-size:13px;color:var(--muted);margin:0 0 28px}
.topic-filters~.faq-item{scroll-margin-top:115px}
.contact-inner .contact-hint{font-size:12px;margin-top:20px}
.tap-petal--card{border-radius:2px;width:11px;height:17px;background:linear-gradient(145deg,#d7b16d,#fff1c6);border:1px solid #967147}
.tap-petal--chart{border-radius:1px;width:11px;height:11px;background:linear-gradient(130deg,#fff6de,#cda258)}
.tap-petal--contact{border-radius:50%;width:7px;height:7px;background:#e5c684;box-shadow:0 0 12px #ffe7a9}
button.is-held:not(:disabled),a.is-held,summary.is-held{transform:translateY(3px) scale(.98);filter:brightness(.97)}
.btn.is-held,.header-consult.is-held,.result-option.is-held,.flower-choices button.is-held,.topic-filters button.is-held,.door-tabs button.is-held{box-shadow:0 1px 0 #142c4430,inset 0 2px 6px #142c442b}
.topic-card.is-held{box-shadow:0 1px 0 #142c4440;transform:translateY(3px)}
.answer-options label.is-held>span{transform:translateY(3px);box-shadow:inset 0 2px 6px #142c4430}
.service--card .service-visual.reveal{transform-origin:5% 50%;transition:opacity .75s,transform 1.15s var(--ease)}
.js .service--card .service-visual.reveal:not(.is-visible){transform:perspective(1100px) rotateY(16deg) translateY(20px)}
.js .service--flower .service-visual.reveal:not(.is-visible),.js [data-reveal=petal]:not(.is-visible){transform:scale(.94);clip-path:inset(8% 6% 8% 6% round 45% 45% 0 0)}
.js .service--flower .service-visual.reveal,.js [data-reveal=petal]{transition:opacity 1s,transform 1.2s var(--ease),clip-path 1.2s var(--ease);clip-path:inset(0 round 0)}
.js [data-reveal=quiet]{transition:opacity 1.1s ease;transform:none!important}
@keyframes card-photo-unfold{from{opacity:.5;transform:perspective(1100px) rotateY(-12deg) scale(1.05)}to{opacity:1;transform:none}}
@keyframes petal-photo-open{from{opacity:.6;transform:scale(1.09);clip-path:circle(20%)}to{opacity:1;transform:scale(1);clip-path:circle(80%)}}
@keyframes chart-light{to{translate:110% 0}}
@keyframes chart-cell{from{opacity:.3;transform:scale(.7)}to{opacity:1;transform:scale(1)}}
@keyframes bloom-dialog-arrive{from{opacity:0;transform:translateY(20px) scale(.92)}to{opacity:1;transform:none}}
@keyframes completion-orbit{from{opacity:0;transform:scale(.5) rotate(-60deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@media(max-width:1080px){.hero-copy h1{font-size:53px}.door-panel{grid-template-columns:.85fr 1.15fr}.guide-shelf{gap:20px;padding:22px}.topic-deck{gap:8px}.topic-front strong{font-size:12px}.take-home-copy{width:calc(100% - 70px)}}
@media(max-width:760px){
 .hero-scene{min-height:max(740px,100svh);padding:104px 0 75px}
 .hero-copy .eyebrow{font-size:11px;letter-spacing:.025em;margin-bottom:11px}
 .hero-business{font-size:15px;line-height:1.8;margin-bottom:20px!important;letter-spacing:.015em}
 .mobile-break{display:block}.business-divider{display:none}
 .hero-copy h1{font-size:clamp(37px,9.6vw,62px);line-height:1.34}
 .hero-description{font-size:13px;line-height:1.95;margin-top:20px;max-width:350px}
 .hero-art{display:none}
 .hero-shade{background:linear-gradient(90deg,#071e36e6,#0b2741b8 70%,#0b1e3160),linear-gradient(0deg,#0b1e31b3,transparent 80%)}
 .hero-actions{margin-top:24px;gap:14px;width:100%;max-width:370px}
 .hero-actions .btn{width:100%;font-size:13px;padding:15px 14px;gap:10px}
 .hero-location{font-size:11px;max-width:310px;margin-top:19px;line-height:1.7}
 .hero-text-link{font-size:12px;min-height:42px}
 .scroll-cue{bottom:15px;font-size:10px}
 .door-tabs{gap:9px}
 .door-tabs button{min-height:146px;padding:18px 12px 14px}
 .door-tabs strong{font-size:16px;min-height:0}
 .door-tabs button>span:last-child{font-size:10px}
 .door-tabs small{font-size:19px}
 .door-panel{grid-template-columns:1fr}
 .door-photo{height:220px}
 .door-copy{padding:28px 22px}
 .door-copy h3{font-size:28px;line-height:1.55}
 .door-copy .eyebrow{font-size:11px;letter-spacing:0}
 .topic-deck{gap:10px;margin-top:22px}
 .topic-card{height:142px}
 .topic-front strong{font-size:13px}
 .topic-back{font-size:13px;padding:5px}
 .door-copy .topic-note{min-height:76px;font-size:12px}
 .chart-glimpse{max-width:360px}
 .flower-preview>div{min-height:0;height:220px}
 .flower-choices{gap:10px;flex-wrap:wrap}
 .flower-choices button{font-size:12px;padding:8px 10px;gap:7px;flex:1;min-width:130px}
 .guide-shelf{grid-template-columns:1fr;padding:22px;gap:15px}
 .guide-links a{font-size:12px;min-height:45px}
 .guide-shelf p{font-size:12px}
 .entrance-next{flex-wrap:wrap;gap:5px 10px;font-size:12px}
 .experience-intro .eyebrow{font-size:11px;letter-spacing:.03em}
 .experience-intro .quiz-note{font-size:11px;color:#dde4e5}
 .question{scroll-margin-top:155px}
 .quiz-dock:not([hidden]){display:flex;align-items:center;gap:10px;position:fixed;top:68px;inset-inline:0;z-index:77;min-height:64px;background:linear-gradient(120deg,#203d52f7,#10263cf7);backdrop-filter:blur(12px);color:#fff6e8;border-bottom:1px solid #c7aa715c;padding:7px 18px;box-shadow:0 10px 25px #0a1c3420}
 .dock-flower{display:block;width:47px;height:47px;flex:none}
 .dock-flower .bloom-flower{width:47px;height:47px}
 .quiz-dock>div{display:flex;flex-direction:column;gap:0}
 .quiz-dock strong{font:500 17px/1.3 var(--latin)}
 .quiz-dock>div>span{font-size:10px;line-height:1.6;color:#ecddc1}
 .quiz-dock button{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:11px;color:var(--ink);background:linear-gradient(135deg,#f3d3e3,#d8acc6);border-radius:3px 14px 3px 14px;min-height:40px;padding:8px 12px;box-shadow:0 3px 0 #997488}
 .quiz-dock .icon{width:16px;height:16px}
 .quiz-result{padding:26px 20px}
 .result-menu{padding:18px 16px}
 .result-menu h4{font-size:18px}
 .result-context-links{gap:6px 15px;font-size:11px}
 .bloom-dialog-inner{padding:43px 23px 23px}
 .completion-flower{width:150px;margin:13px auto 20px}
 .bloom-dialog h2{font-size:25px}
 .bloom-dialog .eyebrow{font-size:11px}
 .bloom-dialog p:not(.eyebrow){font-size:12px;margin-top:12px;margin-bottom:18px}
 .story-photo{width:80%;max-width:360px;margin-inline:auto}
 .story-photo img{aspect-ratio:4/5;object-position:50% 20%}
 .story-photo .photo-note{left:5px;bottom:18px;font-size:11px;max-width:100%}
 .service-support{padding:15px}
 .service-support .faq-item summary{font-size:13px}
 .service-support>div{gap:4px 14px}
 .service-support .text-link{font-size:11px}
 .service.is-recommended:before{top:-6px;font-size:10px}
 .take-home{min-height:500px}
 .take-home:after{background:linear-gradient(90deg,#0b2238df,#142c4490),linear-gradient(0deg,#091d31a8,transparent)}
 .take-home-copy{width:calc(100% - 40px);padding:75px 0}
 .take-home .eyebrow{font-size:10px;letter-spacing:.02em}
 .take-home h2{font-size:37px}
 .take-home p:not(.eyebrow){font-size:13px}
 .topic-filters{gap:9px}
 .topic-filters button{font-size:12px;padding:10px 16px;min-height:44px}
 .filter-status{font-size:12px}
 .contact-inner .contact-hint{font-size:11px}
 .sound-toggle{font-size:11px;min-width:55px}
 .menu-toggle{min-width:44px}
}
@media(max-width:380px){.hero-scene{min-height:760px}.hero-business{font-size:14px}.hero-copy h1{font-size:clamp(31px,9.2vw,35px)}.door-tabs button{padding-inline:9px}.door-tabs strong{font-size:14px}.door-tabs button>span:last-child{font-size:9px}.door-copy{padding:25px 18px}.topic-deck{gap:8px}.topic-front strong{font-size:11px}.bloom-dialog h2{font-size:23px}.quiz-dock{padding-inline:12px}.quiz-dock button{padding-inline:9px}.brand strong{font-size:15px}}
@media(max-height:680px){.bloom-dialog-inner{padding-top:38px}.completion-flower{width:115px;margin-block:10px 16px}.bloom-dialog h2{font-size:24px}.bloom-dialog p:not(.eyebrow){margin-block:10px 15px}}
@media(prefers-reduced-motion:reduce){
 .hero-card.control-arrive{animation:none}
 .topic-card-inner{transition:none}
 .js [data-reveal],.js .service--card .service-visual.reveal,.js .service--flower .service-visual.reveal{transform:none!important;clip-path:none!important;opacity:1!important}
 .bloom-dialog[open],.completion-flower,.door-photo img{animation:none!important}
}

.dialog-effects{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden;border-radius:inherit}
