/* Keep all text-bearing boxes in normal flow on small screens. */
:root{--contact-height:104px}html{scroll-padding-bottom:calc(var(--contact-height) + 24px)}body{padding-bottom:var(--contact-height)}header,main,footer{min-width:0}.display-controls{display:flex;justify-content:flex-end;position:relative;z-index:4;background:#fffaf2;border-bottom:1px solid #edddbb;padding:8px 24px}.display-controls .motion-toggle{position:static;min-height:36px;margin:0;font-size:.875rem;box-shadow:none}.detail-steps{counter-reset:step;gap:20px;margin-top:36px}.detail-steps li{padding:24px!important;position:relative;min-width:0}.detail-steps li:before{position:static;display:inline-block;padding:6px 12px;margin:0 0 18px;font-size:.875rem}.detail-steps h3{font-size:1.125rem}.flow-photo-link{display:inline-block;margin-top:24px}.category-card>div,.illustrated-methods article>div,.illustrated-steps li>div,.guide-topic,.genre-hero-grid>div,.hero-copy{min-width:0}.sticky-contact a{min-width:0}.sticky-contact a>span:not(.contact-icon):not(.contact-arrow){min-width:0}.sticky-contact b,.sticky-contact small{white-space:normal;text-align:center;overflow-wrap:anywhere}.sticky-contact a:focus-visible{outline-offset:-5px}.illustrated-methods h3{display:block}.illustrated-methods .num{display:block}.illustrated-steps li:before{pointer-events:none}.welcome-gate[hidden]{display:none!important}.welcome-gate{position:fixed;inset:0;z-index:1000;background:#fff7e8;isolation:isolate;overflow:hidden;touch-action:none}.welcome-gate .gate-scene{position:absolute;inset:0;display:grid;place-items:center;transform-origin:50% 58%;will-change:transform,opacity}.gate-scene img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.curtain{position:absolute;top:0;bottom:0;width:50.2%;background-image:url('assets/curtain.webp');background-size:200% 100%;background-repeat:no-repeat;z-index:2;will-change:transform}.curtain-left{left:0;background-position:left center;transform-origin:left center;box-shadow:12px 0 24px #35000a70}.curtain-right{right:0;background-position:right center;transform-origin:right center;box-shadow:-12px 0 24px #35000a70}.welcome-title{position:absolute;top:40%;left:0;right:0;text-align:center;color:#fff0ba;z-index:3;text-shadow:0 3px 15px #4e000e}.welcome-title span{display:block;font-size:1rem;letter-spacing:.15em;margin-bottom:16px}.welcome-title strong{font:900 clamp(2.8rem,8vw,5.5rem)/1.3 'Yu Mincho',serif;letter-spacing:.14em}.welcome-skip{position:absolute;right:22px;bottom:max(24px,env(safe-area-inset-bottom));z-index:5;background:#fff;color:#82001b;border:1px solid #d4b160;border-radius:30px;padding:12px 20px;font-size:.9375rem;cursor:pointer;box-shadow:0 3px 18px #30020a30}.welcome-skip:focus-visible{outline:3px solid #d4b160;outline-offset:4px}.welcome-gate.is-playing .curtain-left{animation:curtain-open-left 1.25s .35s cubic-bezier(.45,0,.15,1) forwards}.welcome-gate.is-playing .curtain-right{animation:curtain-open-right 1.25s .35s cubic-bezier(.45,0,.15,1) forwards}.welcome-gate.is-playing .welcome-title{animation:welcome-word-out .6s .55s ease forwards}.welcome-gate.is-playing .gate-scene{animation:through-torii 1.65s 1.15s cubic-bezier(.6,.05,.5,1) forwards}.welcome-gate.is-playing{animation:entrance-fade .5s 2.55s ease forwards}.entrance-active{overflow:hidden}.entrance-active .sticky-contact{visibility:hidden}.entrance-active .hero-copy,.entrance-active .hero-visual{animation-play-state:paused}
@keyframes curtain-open-left{to{transform:translateX(-101%)}}@keyframes curtain-open-right{to{transform:translateX(101%)}}@keyframes welcome-word-out{to{opacity:0;transform:translateY(-12px)}}@keyframes through-torii{0%{transform:scale(1);opacity:1}80%{opacity:1}100%{transform:scale(3.7);opacity:0}}@keyframes entrance-fade{to{opacity:0}}
@media(max-width:1050px){.detail-steps{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.display-controls{padding:8px 18px}.display-controls .motion-toggle{font-size:.8125rem}.luxury-hero .hero-grid{display:flex;flex-direction:column;gap:24px}.luxury-hero .hero-copy{width:100%;margin:0;padding:24px 16px}.luxury-hero h1{line-height:1.5;letter-spacing:0}.luxury-hero h1 em{display:inline;font-size:1.4em}.luxury-hero .hero-kicker{transform:none;line-height:1.8}.luxury-hero .hero-service{font-size:1.125rem;line-height:1.8;margin:18px 0}.luxury-hero .hero-service span{white-space:nowrap}.luxury-hero .hero-actions{grid-template-columns:1fr;gap:14px}.luxury-hero .hero-actions .button{flex-direction:row;flex-wrap:wrap;column-gap:14px;padding:14px 12px}.hero-actions .button>b{font-size:1rem}.hero-actions .button>span{font-size:.875rem}.luxury-hero .portrait-stage{display:flex;flex-direction:column;align-items:center;height:auto!important;width:100%;max-width:430px;padding:0;overflow:visible;align-self:center}.portrait-stage .hero-speech{position:relative;left:auto;right:auto;top:auto;bottom:auto;order:0;transform:none;translate:none;animation:none;max-width:100%;margin:0 auto 26px;padding:18px 25px;line-height:1.75}.portrait-stage .host-portrait{position:relative;left:auto;right:auto;top:auto;bottom:auto;order:1;width:100%;max-width:430px;height:auto;max-height:none!important;object-fit:contain}.portrait-stage .host-label{position:relative;left:auto;right:auto;top:auto;bottom:auto;order:2;transform:none;animation:none;margin:18px auto 28px;max-width:90%;padding:12px 24px}.portrait-stage .host-label strong{font-size:2rem;line-height:1.5}.portrait-halo{inset:25% 7% 15%;max-height:440px}.hero-ribbon{padding:18px 16px;line-height:1.8}.hero-ribbon span{font-size:.875rem}.gold-dust{z-index:0}.luxury-hero .hero-grid{z-index:2}.section h2 br{display:none}.section h2{line-height:1.7}.photo-categories{grid-template-columns:1fr!important;gap:24px}.category-card{display:flex!important;flex-direction:column;width:100%}.category-card>img{height:auto!important;min-height:0!important;aspect-ratio:3/2;object-fit:cover}.category-card>div{padding:24px}.category-card h3{font-size:1.35rem;line-height:1.7}.category-card p{line-height:1.95}.illustrated-methods,.illustrated-steps{grid-template-columns:1fr!important;gap:30px}.illustrated-methods article,.illustrated-steps li{display:block!important}.illustrated-methods article>img,.illustrated-steps li>img{height:auto!important;min-height:0!important;aspect-ratio:3/2;object-fit:cover}.illustrated-methods article>div,.illustrated-steps li>div{padding:24px}.illustrated-methods .num{display:block;margin-bottom:10px}.illustrated-methods h3{display:block;font-size:1.25rem;margin-bottom:12px}.illustrated-steps li:before{position:static;display:block;width:max-content;max-width:100%;margin:0;padding:8px 16px;box-shadow:none;border-radius:4px 4px 0 0}.illustrated-steps li{overflow:hidden}.illustrated-steps h3{font-size:1.25rem;margin-bottom:12px}.illustrated-steps p{line-height:1.95}.invitation-grid{overflow:visible}.invitation-person{display:flex;flex-direction:column;align-items:center;width:min(100%,340px);height:auto!important;max-width:100%;margin:auto}.invitation-person .speech{position:relative;left:auto;right:auto;top:auto;bottom:auto;order:0;transform:none;translate:none;rotate:none;animation:none;margin:24px auto;padding:16px 22px}.invitation-person img{position:relative;left:auto;top:auto;bottom:auto;order:1;width:100%;max-width:100%;height:auto}.invitation-copy{padding:34px 22px 14px}.invitation-copy h2{line-height:1.7}.detail-steps{grid-template-columns:1fr}.detail-steps li{padding:24px!important}.sticky-contact a{animation:none;min-height:76px;gap:8px;padding:12px 8px}.sticky-contact b{font-size:.9375rem;line-height:1.5}.sticky-contact small{font-size:.8125rem;line-height:1.5;margin-bottom:3px}.contact-arrow{flex-shrink:0;font-size:1rem;animation:arrow-invite 2s ease-in-out infinite}.contact-icon{display:none}.sticky-contact{align-items:stretch}.welcome-title{top:39%;padding-inline:18px}.welcome-title span{font-size:.875rem;letter-spacing:.08em}.welcome-title strong{font-size:3rem}.welcome-skip{right:16px}.gate-scene img{width:150%;max-width:none;object-fit:cover}.genre-hero h1{line-height:1.6}.genre-hero h1>span{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){.welcome-gate{display:none!important}.entrance-active{overflow:auto}.entrance-active .sticky-contact{visibility:visible}.display-controls{display:none}.contact-arrow{animation:none}}
/* Keep the whole gateway visible before the camera moves through its opening. */
.gate-scene{background:radial-gradient(ellipse at center,#fffaf0,#f7e8cf)}.gate-scene img{object-fit:contain}
@media(max-width:700px){.gate-scene img{width:110%;max-width:none;height:auto;object-fit:contain}.welcome-title strong{letter-spacing:.08em}}
