/* v5 — readable mobile pages, distinct material feedback and a direct result. */
.hero-photo-swap{position:absolute;inset:0;z-index:-3;overflow:hidden;pointer-events:none}
.hero-scene-image{width:100%;height:100%;object-fit:cover;object-position:65% 50%;animation:scene-photo-enter .85s ease both}
.hero-photo-swap:empty{display:none}
.hero-scene[data-scene=chart] .hero-scene-image{object-position:64% 50%}
.hero-scene[data-scene=flower] .hero-scene-image{object-position:70% 50%}
.hero-scene[data-scene=card] .hero-shade{background:linear-gradient(90deg,#0b1d31f5,#0c243cdb 45%,#15243455),linear-gradient(0deg,#102235c9,transparent 80%)}
.hero-scene[data-scene=chart] .hero-shade{background:linear-gradient(90deg,#152a3af5,#172c3bda 43%,#3c332342),linear-gradient(0deg,#152334b9,transparent 80%)}
.hero-scene[data-scene=flower] .hero-shade{background:linear-gradient(90deg,#172a3cf5,#19283bd9 43%,#3b21384d),linear-gradient(0deg,#142135aa,transparent 80%)}
.hero-card{cursor:pointer}
.hero-card[aria-pressed=true]{outline-color:#ffecd0;border-color:#ffeacb;box-shadow:0 0 0 3px #ead4b445,0 15px 38px #06172880}
.hero-card[aria-pressed=true]:after{content:'選択中';position:absolute;bottom:17px;font:500 11px var(--sans);letter-spacing:.06em}
.hero-handwriting{max-width:320px;font-size:13px;top:355px;left:12px}
.hero-copy .eyebrow{font-size:13px}
.hero-description{max-width:32em;min-height:4.1em;font-size:16px;line-height:1.9}
.hero-selection{margin-top:24px;padding-left:15px;border-left:2px solid #dfbf86;font-size:14px;line-height:1.7;color:#f6eadb}
.hero-selection p+p{margin-top:3px}
.hero-selection p:first-child{font-weight:500}
.hero-actions .btn{font-size:15px}
.hero-actions [hidden]{display:none!important}
.hero-line{animation-duration:.85s}
.hero-line:nth-child(2){animation-delay:.12s}.hero-line:nth-child(3){animation-delay:.24s}
.hero-photo{animation:hero-photo-arrive 1.05s ease both,flower-drift 18s ease-in-out 1.05s infinite alternate}
.hero-copy .hero-business{animation-delay:.18s}
.hero-description.hero-enter{animation-delay:.48s}
.hero-actions.hero-enter{animation-delay:.72s}
.menu-journey{border-inline:1px solid #b7976440;background:linear-gradient(120deg,#faf5eb,#f0e8dc);padding:30px}
.menu-journey>.eyebrow{font-size:13px;margin-bottom:22px;letter-spacing:.06em}
.menu-journey ol{display:grid;grid-template-columns:repeat(3,1fr);gap:27px;list-style:none}
.menu-journey li{position:relative;padding:0 18px 0 0;border-right:1px solid #b7976444;min-width:0}
.menu-journey li:last-child{border:0;padding-right:0}
.menu-journey li>span{display:block;color:#967042;font:italic 25px/1.2 var(--latin);margin-bottom:9px}
.menu-journey li>strong{font:500 18px/1.6 var(--serif);display:block}
.menu-journey li>p{font-size:14px;line-height:1.85;color:var(--muted);margin-top:10px}
.menu-journey[data-tone=chart]{background:linear-gradient(115deg,#fbf7eb,#ede6d6);border-color:#bfa57570}
.menu-journey[data-tone=flower]{background:linear-gradient(115deg,#faf4f4,#ede5f0)}
.journey-voice{margin-top:27px;border-top:1px solid #b7976440;padding-top:22px}
.journey-voice>span{font-size:12px;color:var(--rose-deep);font-weight:600}
.journey-voice blockquote{font:500 19px/1.8 var(--serif);margin:9px 0}
.journey-voice>a{display:inline-block;font-size:13px;border-bottom:1px solid var(--gold);min-height:44px;padding-block:10px}
.journey-voice>small{display:block;font-size:12px;line-height:1.8;color:var(--muted);margin-top:8px}
.guide-shelf{padding-block:22px;background:linear-gradient(110deg,#eee1d5,#f8f2e5)}
.guide-kicker{font-size:13px}.guide-shelf p,.guide-links a{font-size:14px}
.guide-shelf p{line-height:1.85}.guide-links a{min-height:44px}
.door-copy>p:not(.eyebrow),.door-copy .topic-note{font-size:15px;line-height:1.85}
.door-copy .topic-note{min-height:0}
.door-tabs button>span:last-child{font-size:13px}
.door-copy .eyebrow{font-size:14px}
.required-note,.small-note{font-size:14px;line-height:1.9}
.service-copy>p:not(.eyebrow),.workshop-copy>p:not(.eyebrow){font-size:16px;line-height:1.9}
.service-details summary,.service-details p,.price-table{font-size:14px}
.service-support>p{font-size:13px}.service-support .faq-answer{font-size:14px}
.service-support .text-link{font-size:13px;min-height:44px}
.service-support .faq-item summary{font-size:15px}
.service-visual-label,.image-caption{font-size:13px;line-height:1.7}
.service--card .service-visual>img{border-radius:6px 6px 70px 6px}
#chart-service .service-visual>img{border-radius:5px}
#chart-service .service-visual:after{content:'';position:absolute;inset:14px;border:1px solid #f4dfb577;pointer-events:none}
.service--flower .service-visual>img{border-radius:110px 8px 8px 8px}
.service--flower .service-seal{border-radius:50%}
.workshop-card{border-radius:5px 5px 65px 5px}
.story-copy>p:not(.eyebrow),.maker-note>p:not(.eyebrow){font-size:15px;line-height:1.9}
.story-photo{max-width:450px;justify-self:center}
.story-photo img{object-fit:contain;aspect-ratio:auto;border-radius:160px 160px 5px 5px}
.maker-note .eyebrow{font-size:13px}
.inline-completion{display:flex;align-items:center;gap:20px;margin-bottom:22px;border-bottom:1px solid #ba956e44;padding-bottom:20px}
.inline-completion .completion-flower{width:76px;height:76px;min-width:76px;margin:0}
.inline-completion .eyebrow{font-size:13px;line-height:1.8;margin:0;letter-spacing:.03em;color:#704564}
.inline-completion .bloom-flower{width:100%;height:100%}
.quiz-result{scroll-margin-top:94px}
.quiz-result:focus{outline:2px solid #c6a778;outline-offset:5px}
.quiz-result>p,.quiz-result .result-choice-hint{font-size:14px!important;line-height:1.85}
.quiz-result .result-footnote{font-size:13px!important}
.result-choices button{font-size:14px;min-height:60px}
#result-links{display:block;margin:22px 0 15px}
.result-menu{padding:0;overflow:hidden;border-radius:5px 36px 5px 5px}
.result-photo{position:relative;background:#e1d9cc;margin:0;min-height:150px}
.result-photo img{width:100%;height:auto;aspect-ratio:16/8;object-fit:cover;object-position:50% 45%}
.result-photo figcaption{position:absolute;bottom:0;left:0;right:0;padding:9px 15px;background:linear-gradient(transparent,#10263aeb);color:#fffaf1;font-size:12px;line-height:1.7;padding-top:30px}
.result-menu-copy{padding:24px}
.result-menu h4{font:500 24px/1.6 var(--serif);margin:0 0 7px}
.result-menu .result-price{font-size:16px;margin:0 0 14px;color:#714262;font-weight:500}
.result-menu-note{font-size:15px;line-height:1.85}
.result-consult{display:flex;align-items:center;justify-content:center;width:100%;margin:18px 0 12px;padding:16px;font-size:15px;line-height:1.6;min-height:56px;text-align:center;border:1px solid #f5dfe8;border-radius:4px 24px 4px 24px;box-shadow:0 5px 0 #ba8ba35e;background:linear-gradient(135deg,#f5d7e4,#d6a6c0);color:var(--ink)}
.result-option{background:none;color:var(--ink);box-shadow:none;border-radius:0;font-size:14px;padding:8px 0;min-height:44px;border-bottom:1px solid var(--gold)}
.result-preparation,.result-reason-details,.consult-preparation{border-top:1px solid #ba956e4d;margin-top:18px}
.result-preparation summary,.result-reason-details summary,.consult-preparation summary{cursor:pointer;font-size:14px;line-height:1.8;padding:14px 0;min-height:48px}
.result-preparation p,.result-reasons,.consult-preparation p{font-size:14px;line-height:1.85;color:var(--muted);margin:0 0 14px}
.result-reasons{padding-left:20px}
.result-context-links{font-size:13px;gap:10px 22px}
.result-context-links a{min-height:44px;display:flex;align-items:center}
.quiz-result .text-link{font-size:14px}
.consult-inner #consult-description{font-size:15px;line-height:1.85}
.consult-label,.consult-price{font-size:14px!important}
.consult-note,.copy-status{font-size:13px;line-height:1.85}
.copy-button{font-size:15px;min-height:56px}
.consult-preparation{margin:12px 0 18px}
.consult-preparation summary{display:flex;align-items:center;justify-content:space-between;gap:10px}
.consult-direct{display:flex;align-items:center;justify-content:center;gap:10px;font-size:14px;color:var(--ink);border-bottom:1px solid #ac8b57;padding:12px 0;min-height:48px;line-height:1.6}
.consult-back{font-size:14px;min-height:44px}
.consult-inner .eyebrow{font-size:13px}
.tap-petal--card{width:13px;height:20px;border-radius:2px;background:linear-gradient(130deg,#fff3d6,#c09c69);border:1px solid #f8e9cb;box-shadow:2px 3px 0 #182c4266;animation-name:paper-scatter}
.tap-petal--card:after{content:'';position:absolute;inset:3px;border:1px solid #92674388}
.tap-ring--card{border-radius:3px;transform:rotate(-12deg)}
.tap-petal--chart{width:5px;height:23px;border-radius:0;background:linear-gradient(#fff6d1,#cda762,transparent);box-shadow:0 0 7px #ffe8a7;animation-name:chart-scatter}
.tap-ring--chart{border-radius:0;background:repeating-linear-gradient(0deg,transparent 0 9px,#f8dda444 9px 10px),repeating-linear-gradient(90deg,transparent 0 9px,#f8dda444 9px 10px);border-color:#f5da99}
.tap-petal--flower{background:linear-gradient(135deg,var(--bloom-edge),var(--bloom-petal));box-shadow:0 0 7px var(--bloom-accent)}
.tap-petal--contact{width:7px;height:7px;border-radius:50%;background:#f2d5b1}
.tap-ring--contact{border-color:#f5e3bf}
.control-arrive{animation-duration:.34s}
.btn.is-held,.copy-button.is-held,.result-consult.is-held{box-shadow:0 1px 0 #9163785c,inset 0 3px 8px #142c4438;translate:0 3px}
.btn,.copy-button,.result-consult,.hero-mini button{transition:box-shadow .12s,scale .12s,translate .12s,background .2s}
@keyframes scene-photo-enter{from{opacity:0;transform:scale(1.045)}to{opacity:1;transform:scale(1)}}
@keyframes hero-photo-arrive{from{opacity:.3;scale:1.035}to{opacity:1;scale:1}}
@keyframes paper-scatter{from{opacity:1;transform:translate(0,0) rotateY(0)}to{opacity:0;transform:translate(var(--x),var(--y)) rotateY(180deg) rotate(var(--angle))}}
@keyframes chart-scatter{from{opacity:1;transform:translate(0,0) scaleY(.2)}to{opacity:0;transform:translate(var(--x),var(--y)) rotate(var(--angle)) scaleY(1.4)}}
@media(min-width:761px){
 .hero-business{font-size:17px}
 .hero-selection{max-width:450px}
 .hero-description{max-width:33em}
}
@media(max-width:1080px) and (min-width:761px){
 .menu-journey ol{gap:18px}.menu-journey{padding:24px}
 .hero-copy h1{font-size:49px}
}
@media(max-width:760px){
 .wrap{width:calc(100% - 40px)}
 .hero-scene{padding:101px 0 64px;min-height:100svh;align-items:center}
 .hero-layout{width:calc(100% - 40px)}
 .hero-copy .eyebrow{font-size:12px;line-height:1.6;max-width:none;margin-bottom:10px;letter-spacing:.02em}
 .hero-business{font-size:14px;line-height:1.75;margin-bottom:17px!important}
 .hero-copy h1{font-size:clamp(31px,9vw,43px);line-height:1.35;letter-spacing:.01em}
 .hero-description{font-size:14px;line-height:1.85;margin-top:17px;min-height:0;max-width:29em}
 .hero-photo{object-position:72% 50%}
 .hero-shade{background:linear-gradient(90deg,#10263af2,#10263ab8 70%,#10263a60),linear-gradient(0deg,#10263a9c,transparent)}
 .hero-mini{margin-top:22px;gap:9px;max-width:none}
 .hero-mini button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;min-width:0;min-height:78px;padding:11px 5px;font:500 14px/1.4 var(--serif);border:1px solid #d0b681b3;border-radius:24px 24px 3px 3px;background:linear-gradient(145deg,#304b61f0,#10273be6);color:#fff4de;box-shadow:0 4px 0 #061a2b70;animation:mini-card-arrive .5s var(--ease) .38s both}
 .hero-mini button:nth-child(2){animation-delay:.48s;border-radius:4px}
 .hero-mini button:nth-child(3){animation-delay:.58s;border-radius:24px 5px 24px 5px}
 .hero-mini button[aria-pressed=true]{color:#38273a;background:linear-gradient(135deg,#fae8ef,#deb9ce);border-color:#ffe3ed;box-shadow:0 3px 0 #876576,inset 0 0 0 2px #fff4}
 .hero-mini button .icon,.hero-mini button .flower-mark{width:24px;height:24px}
 .hero-actions{margin-top:23px;max-width:none;gap:8px}
 .hero-actions .btn{font-size:14px;min-height:55px;padding:14px 10px}
 .hero-actions .hero-text-link:not([hidden]){display:inline-flex;align-self:center;font-size:13px;min-height:44px;line-height:1.6;padding-block:8px}
 .hero-selection{font-size:13px;line-height:1.75;letter-spacing:0;margin-top:19px;padding-left:12px}
 .scroll-cue{font-size:12px;bottom:15px;letter-spacing:.05em}
 .section-pad{padding-block:58px}
 .section-heading{margin-bottom:30px}
 .section-heading .section-lead{font-size:15px;line-height:1.85}
 .section-heading .eyebrow,.eyebrow{font-size:13px;letter-spacing:.05em}
 .door-tabs button{padding:16px 7px;min-height:142px}
 .door-tabs strong{font-size:16px;line-height:1.6}
 .door-tabs button>span:last-child{font-size:12px;line-height:1.6}
 .door-tabs small{font-size:18px}
 .door-copy{padding:27px 21px}
 .door-copy .eyebrow{font-size:13px;line-height:1.85}
 .door-copy h3{font-size:26px;line-height:1.6}
 .door-copy>p:not(.eyebrow),.door-copy .topic-note{font-size:15px}
 .topic-card{height:128px}.topic-front strong,.topic-back{font-size:13px}.topic-front small{font-size:12px}
 .flower-choices button{font-size:14px;min-height:54px}
 .menu-journey{padding:26px 21px}
 .menu-journey ol{grid-template-columns:1fr;gap:0}
 .menu-journey li{display:grid;grid-template-columns:27px 1fr;gap:5px 13px;padding:17px 0;border-right:0;border-bottom:1px solid #b7976438}
 .menu-journey li:first-child{padding-top:0}.menu-journey li:last-child{padding-top:17px;padding-bottom:0}
 .menu-journey li>span{grid-row:1/3;margin:2px 0 0;font-size:23px}
 .menu-journey li>strong{font-size:18px}.menu-journey li>p{font-size:14px;margin:0;line-height:1.85}
 .menu-journey>.eyebrow{font-size:13px;margin-bottom:18px}
 .journey-voice blockquote{font-size:18px}
 .guide-shelf{padding:22px 21px;gap:13px}.guide-shelf p,.guide-links a{font-size:14px}
 .entrance-next{font-size:14px;line-height:1.8;margin-top:26px}
 .experience-intro>p:not(.eyebrow){font-size:15px}.experience-intro .quiz-note{font-size:13px}
 .quiz-progress span{font-size:13px}
 .question{margin-bottom:25px;padding-bottom:23px}.question legend{font-size:19px;line-height:1.8;gap:13px}
 .answer-options{padding-left:0;gap:11px}.answer-options label>span{font-size:15px;min-height:55px}
 .reset-button{font-size:14px;min-height:44px;margin-top:15px}
 .quiz-dock>div>span{font-size:12px}.quiz-dock button{font-size:13px;min-height:44px}
 .quiz-result{padding:24px 18px;scroll-margin-top:143px;border-radius:4px 34px 4px 4px}
 .quiz-result h3{font-size:26px;line-height:1.6}
 .inline-completion{gap:13px}.inline-completion .eyebrow{font-size:12px}.inline-completion .completion-flower{width:62px;height:62px;min-width:62px}
 .result-choices{grid-template-columns:1fr;gap:9px;margin-top:12px}
 .result-choices button{font-size:14px;min-height:50px;padding:10px 13px}
 .result-choices button:before{width:16px;min-width:16px;height:23px}
 .result-menu-copy{padding:22px 18px}
 .result-menu h4{font-size:22px}.result-menu .result-price{font-size:16px}
 .result-menu-note{font-size:15px}.result-consult{font-size:14px;padding-inline:8px}
 .result-photo img{aspect-ratio:4/3}.result-photo figcaption{font-size:12px}
 .result-preparation summary,.result-reason-details summary,.result-reasons,.result-preparation p{font-size:14px}
 .service{padding-block:25px 45px;margin-bottom:38px;gap:24px}
 .service-copy h3,.workshop-copy h3{font-size:27px;line-height:1.65}
 .service-copy>p:not(.eyebrow),.workshop-copy>p:not(.eyebrow){font-size:16px}
 .service-visual-label,.image-caption{font-size:12px;max-width:100%}
 .service-details summary,.service-details p,.price-table{font-size:14px}
 .price-line>span{font-size:14px;line-height:1.6}.price-line strong small{font-size:15px}
 .service-support{padding:17px 15px}.service-support .faq-item summary{font-size:15px}
 .service-support .faq-answer{font-size:14px}.service-support .text-link{font-size:13px}
 .service-copy .btn,.workshop-copy .btn{font-size:14px;padding-inline:13px}
 .workshop-copy{padding:28px 22px}.service-points{font-size:15px}
 .story-grid{gap:30px}.story-photo{width:min(76%,300px);padding:0 12px 27px 0}
 .story-photo .photo-note{font-size:12px;bottom:0}
 .story-copy>p:not(.eyebrow),.maker-note>p:not(.eyebrow){font-size:15px}
 .maker-note .eyebrow{font-size:13px}.maker-note h3{font-size:26px}
 .take-home{min-height:480px}.take-home-copy{padding:68px 0}
 .take-home .eyebrow{font-size:13px}.take-home p:not(.eyebrow){font-size:16px}
 .voices.section-pad,.gallery.section-pad,.faq.section-pad{padding-block:55px}
 .voice blockquote{font-size:15px;line-height:1.9}.voice-number{font-size:13px}
 .gallery-grid{grid-template-columns:1fr;grid-template-rows:auto;gap:18px}
 .gallery-grid .gallery-item{aspect-ratio:3/2}.gallery-item>span{font-size:13px;line-height:1.7}
 .faq-item summary{font-size:16px;line-height:1.8}.faq-answer{font-size:15px;line-height:1.9}
 .access-info{font-size:15px}.access-links a{font-size:14px}
 .contact-inner>p:not(.eyebrow){font-size:15px;line-height:1.9}
 .contact-inner .contact-hint{font-size:13px}.contact-receipt>small{font-size:14px}.contact-receipt>span{font-size:13px}
 .contact-inner .btn{font-size:14px}
 .topic-filters button,.filter-status{font-size:14px}
 .sub-hero p:last-child{font-size:15px}.sub-links .text-link{font-size:14px}
 .consult-inner{padding:35px 23px 24px}.consult-inner #consult-description{font-size:15px}
 .consult-label,.consult-price,.consult-preparation summary,.consult-preparation p{font-size:14px!important}
 .consult-note,.copy-status{font-size:13px}.copy-button{font-size:14px;min-height:56px}
 .consult-direct,.consult-back{font-size:14px}
 .mobile-dock>a{font-size:14px;min-height:64px;padding:15px 8px;gap:7px}
 footer p,footer nav a{font-size:14px;line-height:1.9}.footer-bottom small{font-size:12px}
}
@media(max-width:380px){
 .wrap,.hero-layout{width:calc(100% - 32px)}
 .hero-copy h1{font-size:clamp(28px,8.6vw,33px)}
 .hero-mini button{font-size:13px;min-height:76px}
 .hero-description{font-size:14px}.hero-actions .btn{font-size:14px}
 .hero-scene{min-height:100svh;padding-block:98px 60px}
 .hero-selection{font-size:13px}.door-tabs button>span:last-child{font-size:11px}
 .door-copy,.menu-journey{padding-inline:18px}.quiz-result{padding-inline:15px}
 .result-menu-copy{padding-inline:15px}.mobile-dock>a{font-size:13px}
}
@media(prefers-reduced-motion:reduce){
 .hero-photo,.hero-scene-image,.hero-mini button,.hero-mini button.control-arrive{animation:none!important;transform:none;scale:none}
 .inline-completion .bloom-flower,.inline-completion .petal{animation:none!important;transition:none!important}
 .hero-card,.btn,.copy-button,.result-consult,.hero-mini button{transition:none}
}
