/* SOCIOLA 10th Anniversary — original styles */
:root{--gold:#c9a84c;--gold-light:#e8c96a;--gold-pale:#f5e6b8;--navy:#080f1a;--navy-mid:#0f1e30;--navy-light:#162b45;--white:#faf8f3;--muted:#7a90a8}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--navy);color:var(--white);font-family:'Noto Sans JP',sans-serif;overflow-x:hidden;cursor:none}.cursor{width:8px;height:8px;background:var(--gold);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9999;mix-blend-mode:difference}.cursor-ring{width:36px;height:36px;border:1px solid rgba(201,168,76,.5);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9998;transition:transform .18s cubic-bezier(.25,.46,.45,.94)}.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 2rem;position:relative;overflow:hidden}.hero-bg{position:absolute;inset:-50%;width:200%;height:200%;background:radial-gradient(ellipse 40% 40% at 20% 30%,rgba(201,168,76,.12) 0%,transparent 60%) , radial-gradient(ellipse 60% 60% at 50% 50%,rgba(15,30,48,1) 0%,transparent 80%);animation:meshMove 12s ease-in-out infinite alternate}@keyframes meshMove{0%{transform:translate(0,0) rotate(0deg);}100%{transform:translate(3%,2%) rotate(1deg);}}.orb{position:absolute;border-radius:50%;filter:blur(80px);pointer-events:none}.orb-1{width:500px;height:500px;background:rgba(201,168,76,.07);top:-100px;left:-100px;animation:orbFloat 8s ease-in-out infinite alternate}.orb-2{width:400px;height:400px;background:rgba(201,168,76,.05);bottom:-80px;right:-80px;animation:orbFloat 10s ease-in-out infinite alternate-reverse}@keyframes orbFloat{0%{transform:translate(0,0) scale(1);}100%{transform:translate(40px,30px) scale(1.1);}}.hero-content{position:relative;z-index:2}.hero-eyebrow{font-family:'Bebas Neue',sans-serif;font-size:clamp(.7rem,1.4vw,.85rem);letter-spacing:.5em;color:var(--gold);margin-bottom:2.5rem;opacity:0;animation:fadeUp 1s .4s forwards;display:flex;align-items:center;justify-content:center;gap:1.5rem}.hero-eyebrow::before,.hero-eyebrow::after{content:'';width:40px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}.hero-eyebrow::after{transform:scaleX(-1)}.hero-10{font-family:'Cormorant Garamond',serif;font-size:clamp(12rem,30vw,24rem);font-weight:300;line-height:.8;position:relative;opacity:0;animation:fadeUp 1.4s .6s forwards}.hero-10-text{background:linear-gradient(145deg,#fff5d0 0%,var(--gold-light) 25%,var(--gold) 50%,#7a5a1a 75%,var(--gold-pale) 100%);background-size:200% 200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 4s ease-in-out infinite}@keyframes shimmer{0%,100%{background-position:0% 50%;}50%{background-position:100% 50%;}}.hero-10-shadow{position:absolute;top:0;left:0;right:0;font-family:'Cormorant Garamond',serif;font-size:clamp(12rem,30vw,24rem);font-weight:300;line-height:.8;-webkit-text-stroke:1px rgba(201,168,76,.1);-webkit-text-fill-color:transparent;transform:translate(4px,8px);filter:blur(2px)}.hero-years{font-family:'Bebas Neue',sans-serif;font-size:clamp(1.5rem,4vw,3rem);letter-spacing:.6em;color:var(--gold);margin-top:-.5rem;opacity:0;animation:fadeUp 1s 1s forwards}.gold-line{width:1px;height:60px;background:linear-gradient(180deg,var(--gold),transparent);margin:2.5rem auto;opacity:0;animation:fadeIn 1s 1.2s forwards}.hero-copy{font-family:'Noto Serif JP',serif;font-size:clamp(1rem,2.5vw,1.5rem);font-weight:300;letter-spacing:.12em;line-height:2;opacity:0;animation:fadeUp 1s 1.4s forwards}.hero-sub{margin-top:1rem;font-size:.75rem;letter-spacing:.3em;color:var(--muted);opacity:0;animation:fadeUp 1s 1.6s forwards}.scroll-indicator{position:absolute;bottom:3rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.75rem;opacity:0;animation:fadeIn 1s 2.2s forwards}.scroll-indicator span{font-family:'Bebas Neue',sans-serif;font-size:.65rem;letter-spacing:.4em;color:var(--muted)}.scroll-line{width:1px;height:60px;background:linear-gradient(180deg,var(--gold),transparent);animation:scrollDrop 1.8s ease-in-out infinite}@keyframes scrollDrop{0%{transform:scaleY(0);transform-origin:top;opacity:1;}50%{transform:scaleY(1);transform-origin:top;opacity:1;}51%{transform:scaleY(1);transform-origin:bottom;}100%{transform:scaleY(0);transform-origin:bottom;opacity:0;}}.marquee-strip{padding:1.5rem 0;background:rgba(201,168,76,.05);border-top:1px solid rgba(201,168,76,.15);border-bottom:1px solid rgba(201,168,76,.15);overflow:hidden;position:relative;z-index:1}.marquee-inner{display:flex;white-space:nowrap;animation:marqueeScroll 30s linear infinite}.marquee-inner.reverse{animation-direction:reverse}.marquee-item{display:inline-flex;align-items:center;gap:2rem;padding:0 2rem;font-family:'Bebas Neue',sans-serif;font-size:clamp(.8rem,1.5vw,1rem);letter-spacing:.25em;color:var(--gold);opacity:.7}.marquee-item .dot{color:var(--gold-pale);opacity:.5}@keyframes marqueeScroll{to{transform:translateX(-50%);}}.section{position:relative;z-index:1}.section-head{padding:0 clamp(2rem,8vw,8rem);margin-bottom:4rem}.section-badge{display:inline-flex;align-items:center;gap:1rem;font-family:'Bebas Neue',sans-serif;font-size:.7rem;letter-spacing:.45em;color:var(--gold);margin-bottom:1.2rem}.section-badge::before{content:'';width:30px;height:1px;background:var(--gold)}.section-title{font-family:'Cormorant Garamond',serif;font-size:clamp(2.5rem,6vw,5rem);font-weight:300;line-height:1;letter-spacing:-.01em}.section-title em{font-style:italic;color:var(--gold)}.section-subtitle{font-family:'Noto Serif JP',serif;font-size:clamp(.85rem,1.8vw,1rem);font-weight:300;color:var(--muted);letter-spacing:.12em;margin-top:.75rem}.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s ease , transform .8s ease}.reveal.visible{opacity:1;transform:translateY(0)}.reveal-left{opacity:0;transform:translateX(-40px);transition:opacity .8s ease , transform .8s ease}.reveal-left.visible{opacity:1;transform:translateX(0)}.intro{padding:8rem clamp(2rem,8vw,8rem);display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:center}@media (max-width:768px){.intro{grid-template-columns:1fr;gap:3rem}}.intro-text{font-family:'Noto Serif JP',serif;font-size:clamp(1rem,2.2vw,1.35rem);font-weight:300;line-height:2.2;letter-spacing:.05em}.intro-text strong{color:var(--gold-light);font-weight:600}.intro-text p{margin-bottom:1.5rem}.section-badge-sm{display:inline-flex;align-items:center;gap:.75rem;font-family:'Bebas Neue',sans-serif;font-size:.68rem;letter-spacing:.45em;color:var(--gold);margin-bottom:1.5rem}.section-badge-sm::before{content:'';width:25px;height:1px;background:var(--gold)}.intro-visual{position:relative;aspect-ratio:1;max-width:480px}.intro-visual-inner{width:100%;height:100%;border:1px solid rgba(201,168,76,.2);position:relative;overflow:hidden}.intro-visual-img{width:100%;height:100%;object-fit:cover;filter:brightness(.7) saturate(.8);transition:transform 6s ease}.intro-visual-inner:hover .intro-visual-img{transform:scale(1.08)}.intro-visual-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(201,168,76,.1) 0%,transparent 60%)}.corner-bl{position:absolute;bottom:-1px;left:-1px;width:60px;height:60px;border-left:2px solid var(--gold);border-bottom:2px solid var(--gold)}.corner-tr{position:absolute;top:-1px;right:-1px;width:60px;height:60px;border-right:2px solid var(--gold);border-top:2px solid var(--gold)}.gallery-strip{overflow:hidden;padding:0}.gallery-row{display:flex;gap:1rem;padding:.5rem 0;white-space:nowrap}.gallery-row.r1{animation:galleryScroll 28s linear infinite}.gallery-row.r2{animation:galleryScroll 32s linear infinite reverse}@keyframes galleryScroll{to{transform:translateX(-50%);}}.gallery-item{flex-shrink:0;width:320px;height:220px;overflow:hidden;position:relative}.gallery-item img{width:100%;height:100%;object-fit:cover;filter:brightness(.6) saturate(.7) sepia(.1);transition:filter .4s , transform .6s}.gallery-item:hover img{filter:brightness(.85) saturate(1);transform:scale(1.05)}.gallery-item-label{position:absolute;bottom:.75rem;left:.75rem;font-family:'Bebas Neue',sans-serif;font-size:.7rem;letter-spacing:.3em;color:var(--gold);opacity:0;transition:opacity .3s}.gallery-item:hover .gallery-item-label{opacity:1}.stats{padding:8rem clamp(2rem,8vw,8rem);background:var(--navy-mid);position:relative}.stats::before{content:'DATA';position:absolute;font-family:'Bebas Neue',sans-serif;font-size:20rem;color:rgba(201,168,76,.025);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;white-space:nowrap}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(201,168,76,.1);margin-top:4rem}@media (max-width:768px){.stats-grid{grid-template-columns:repeat(2,1fr)}}.stat-card{background:var(--navy-mid);padding:3.5rem 2rem;text-align:center;position:relative;overflow:hidden;transition:background .4s}.stat-card:hover{background:var(--navy-light)}.stat-card::after{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);transform:scaleX(0);transition:transform .5s}.stat-card:hover::after{transform:scaleX(1)}.stat-num{font-family:'Cormorant Garamond',serif;font-size:clamp(3.5rem,7vw,5.5rem);font-weight:300;line-height:1;background:linear-gradient(135deg,var(--gold-pale),var(--gold),#8a6010);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-unit{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:2rem;color:var(--gold)}.stat-label{margin-top:1rem;font-size:.78rem;color:var(--muted);letter-spacing:.1em;line-height:1.6}.story{padding:8rem 0}.story-inner{padding:0 clamp(2rem,8vw,8rem)}.timeline{margin-top:5rem;position:relative;display:grid;grid-template-columns:1fr 60px 1fr;gap:0}@media (max-width:768px){.timeline{grid-template-columns:30px 1fr}.tl-left{display:none}}.tl-axis{display:flex;flex-direction:column;align-items:center;position:relative}.tl-axis-line{position:absolute;top:0;bottom:0;width:1px;background:linear-gradient(180deg,var(--gold),rgba(201,168,76,.1))}.tl-item-left,.tl-item-right{padding-bottom:5rem;opacity:0;transition:all .8s ease}.tl-item-left{text-align:right;padding-right:2.5rem;transform:translateX(-20px)}.tl-item-right{padding-left:2.5rem;transform:translateX(20px)}.tl-item-left.visible,.tl-item-right.visible{opacity:1;transform:translateX(0)}.tl-dot{width:12px;height:12px;background:var(--navy);border:2px solid var(--gold);border-radius:50%;margin:.3rem auto 0;position:relative;z-index:2;box-shadow:0 0 16px rgba(201,168,76,.4);transition:background .3s}.tl-dot.lit{background:var(--gold)}.tl-year{font-family:'Bebas Neue',sans-serif;font-size:.7rem;letter-spacing:.4em;color:var(--gold);margin-bottom:.5rem}.tl-event{font-family:'Noto Serif JP',serif;font-size:clamp(1rem,2vw,1.15rem);font-weight:400;margin-bottom:.5rem;line-height:1.5}.tl-desc{font-size:.82rem;color:var(--muted);line-height:1.8}.services{padding:8rem clamp(2rem,8vw,8rem);background:var(--navy-mid)}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(201,168,76,.08);margin-top:4rem}@media (max-width:900px){.services-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.services-grid{grid-template-columns:1fr}}.svc-card{background:var(--navy-mid);padding:3rem 2.5rem;position:relative;overflow:hidden;transition:background .4s}.svc-card:hover{background:var(--navy-light)}.svc-card::before{content:attr(data-num);position:absolute;top:-1rem;right:1rem;font-family:'Cormorant Garamond',serif;font-size:6rem;font-weight:300;line-height:1;color:rgba(201,168,76,.05);transition:color .4s , transform .4s}.svc-card:hover::before{color:rgba(201,168,76,.1);transform:scale(1.05)}.svc-card::after{content:'';position:absolute;top:0;left:0;width:3px;height:0;background:linear-gradient(180deg,var(--gold),transparent);transition:height .5s}.svc-card:hover::after{height:100%}.svc-icon{font-size:2.2rem;margin-bottom:1.2rem}.svc-num{font-family:'Bebas Neue',sans-serif;font-size:.65rem;letter-spacing:.4em;color:var(--gold);margin-bottom:.75rem}.svc-name{font-family:'Noto Serif JP',serif;font-size:1.05rem;font-weight:600;margin-bottom:.75rem}.svc-desc{font-size:.8rem;color:var(--muted);line-height:1.9}.clients{padding:8rem clamp(2rem,8vw,8rem)}.clients-logos{margin-top:4rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1px;background:rgba(201,168,76,.08)}.client-item{background:var(--navy);padding:2rem;display:flex;align-items:center;justify-content:center;font-size:.8rem;letter-spacing:.08em;color:var(--muted);text-align:center;line-height:1.5;transition:all .3s;min-height:80px}.client-item:hover{background:var(--navy-mid);color:var(--gold-light)}.vision{padding:10rem clamp(2rem,8vw,8rem);position:relative;text-align:center;overflow:hidden}.vision-bg-text{position:absolute;font-family:'Bebas Neue',sans-serif;font-size:clamp(10rem,30vw,22rem);color:rgba(201,168,76,.025);top:50%;left:50%;transform:translate(-50%,-50%);white-space:nowrap;pointer-events:none;letter-spacing:.05em}.vision-label{font-family:'Bebas Neue',sans-serif;font-size:.75rem;letter-spacing:.5em;color:var(--gold);margin-bottom:2.5rem}.vision-headline{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,6vw,5rem);font-weight:300;line-height:1.3;margin-bottom:2rem}.vision-headline em{font-style:italic;color:var(--gold)}.vision-body{font-family:'Noto Serif JP',serif;font-size:clamp(1rem,2.2vw,1.3rem);font-weight:300;line-height:2.3;letter-spacing:.05em;max-width:680px;margin:0 auto 4rem;color:rgba(250,248,243,.85)}.vision-body strong{color:var(--gold-light);font-weight:600}.vision-pillars{display:flex;justify-content:center;gap:4rem;flex-wrap:wrap;margin-top:4rem}.vision-pillar{max-width:180px}.pillar-circle{width:80px;height:80px;border:1px solid rgba(201,168,76,.3);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.8rem;margin:0 auto 1rem;transition:border-color .3s , box-shadow .3s}.vision-pillar:hover .pillar-circle{border-color:var(--gold);box-shadow:0 0 20px rgba(201,168,76,.2)}.pillar-en{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--gold);font-size:1rem;margin-bottom:.3rem}.pillar-ja{font-size:.75rem;color:var(--muted);letter-spacing:.1em}.message{padding:8rem clamp(2rem,8vw,8rem);background:var(--navy-mid);display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:center}@media (max-width:768px){.message{grid-template-columns:1fr;gap:3rem}}.message-visual{position:relative;aspect-ratio:4/3}.message-visual img{width:100%;height:100%;object-fit:cover;filter:brightness(.65) saturate(.7)}.message-visual::before{content:'"';position:absolute;top:-2rem;left:-1rem;font-family:'Cormorant Garamond',serif;font-size:12rem;line-height:1;color:var(--gold);opacity:.15;z-index:2;pointer-events:none}.message-visual-frame{position:absolute;inset:-8px;border:1px solid rgba(201,168,76,.2);pointer-events:none}.message-body{font-family:'Noto Serif JP',serif;font-size:clamp(.95rem,1.8vw,1.1rem);font-weight:300;line-height:2.3;letter-spacing:.04em}.message-body p{margin-bottom:1.5rem}.message-sig{margin-top:2.5rem;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.1rem;color:var(--gold);display:flex;align-items:center;gap:1rem}.message-sig::before{content:'—'}.cta{padding:10rem clamp(2rem,8vw,8rem);text-align:center;position:relative;overflow:hidden}.cta::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 50% 50%,rgba(201,168,76,.07) 0%,transparent 70%)}.cta-inner{position:relative;z-index:1}.cta-headline{font-family:'Cormorant Garamond',serif;font-size:clamp(2.5rem,7vw,6rem);font-weight:300;line-height:1.15;margin-bottom:1.5rem}.cta-headline em{font-style:italic;color:var(--gold);display:block}.cta-body{font-size:.9rem;color:var(--muted);letter-spacing:.1em;margin-bottom:3.5rem}.btn-gold{display:inline-flex;align-items:center;gap:.75rem;padding:1.1rem 3rem;background:linear-gradient(135deg,var(--gold-pale),var(--gold) 60%);color:var(--navy);font-family:'Noto Sans JP',sans-serif;font-size:.82rem;font-weight:500;letter-spacing:.15em;text-decoration:none;transition:all .3s;position:relative;overflow:hidden}.btn-gold::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.btn-gold:hover::before{left:100%}.btn-gold:hover{transform:translateY(-3px);box-shadow:0 12px 40px rgba(201,168,76,.3)}.btn-outline{display:inline-flex;align-items:center;gap:.75rem;padding:1.1rem 3rem;border:1px solid rgba(201,168,76,.4);color:var(--gold-light);font-family:'Noto Sans JP',sans-serif;font-size:.82rem;font-weight:400;letter-spacing:.15em;text-decoration:none;transition:all .3s;margin-left:1.5rem}.btn-outline:hover{border-color:var(--gold);background:rgba(201,168,76,.06);transform:translateY(-3px)}.cta-tel{margin-top:3rem;font-size:.78rem;color:var(--muted);letter-spacing:.15em}footer{border-top:1px solid rgba(201,168,76,.12);padding:3rem clamp(2rem,8vw,8rem);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.footer-logo{font-family:'Cormorant Garamond',serif;font-size:1.8rem;letter-spacing:.15em;background:linear-gradient(135deg,var(--gold-pale),var(--gold));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.footer-addr{font-size:.72rem;color:var(--muted);letter-spacing:.08em;line-height:1.8;text-align:right}.footer-copy{font-size:.7rem;color:rgba(122,144,168,.6);letter-spacing:.08em;margin-top:.5rem;text-align:right}@keyframes fadeUp{from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:translateY(0);}}@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}@media (max-width:640px){.btn-outline{margin-left:0;margin-top:1rem}.cta .btn-wrap{display:flex;flex-direction:column;align-items:center;gap:1rem}footer{flex-direction:column;text-align:center}.footer-addr,.footer-copy{text-align:center}}#loading{position:fixed;inset:0;z-index:99999;background:#030810;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}#loading.hide{animation:loadingHide .8s .3s cubic-bezier(.76,0,.24,1) forwards}@keyframes loadingHide {
  0%   { clip-path: inset(0 0 0 0); }
  100% { clip-path: inset(0 0 100% 0); }
}#count-display{position:relative;z-index:2;font-family:'Cormorant Garamond',serif;font-size:clamp(8rem,25vw,20rem);font-weight:300;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(201,168,76,.5);user-select:none;transition:none}#count-display.pop{animation:numPop .38s cubic-bezier(.34,1.56,.64,1) forwards;-webkit-text-stroke:none}#count-display.pop-final{animation:numFinal .5s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes numPop {
  0%   { transform: scale(0.4) translateY(30px); opacity: 0; -webkit-text-fill-color: transparent; -webkit-text-stroke: 1px rgba(201,168,76,0.5); }
  60%  { transform: scale(1.15) translateY(-5px); }
  100% { transform: scale(1) translateY(0); opacity: 1;
         background: linear-gradient(145deg,#fff5d0,#E8C96A,#C9A84C,#7A5A1A);
         -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
}@keyframes numFinal {
  0%   { transform: scale(0.3); opacity: 0; }
  50%  { transform: scale(1.3); opacity: 1; }
  70%  { transform: scale(0.9); }
  100% { transform: scale(1.1); opacity: 1;
         background: linear-gradient(145deg,#fff5d0,#E8C96A,#C9A84C);
         -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
}#loading-bar-wrap{position:absolute;bottom:0;left:0;right:0;height:2px;background:rgba(201,168,76,.1)}#loading-bar{height:100%;background:linear-gradient(90deg,transparent,var(--gold),var(--gold-light));width:0%;transition:width .3s ease}#loading-label{position:absolute;bottom:2.5rem;font-family:'Bebas Neue',sans-serif;font-size:.72rem;letter-spacing:.5em;color:rgba(201,168,76,.4)}#flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none;z-index:10}#flash.bang{animation:flashBang .5s ease-out forwards}@keyframes flashBang {
  0%  { opacity: 0.95; }
  100%{ opacity: 0; }
}#confetti-canvas{position:fixed;inset:0;z-index:99998;pointer-events:none}#congrats-text{position:absolute;z-index:5;font-family:'Bebas Neue',sans-serif;font-size:clamp(1.2rem,3vw,2rem);letter-spacing:.5em;color:var(--gold);opacity:0;text-align:center;margin-top:1.5rem}#congrats-text.show{animation:congratsShow .6s .3s ease forwards}@keyframes congratsShow {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}.burst-ring{position:absolute;border-radius:50%;border:2px solid rgba(201,168,76,.6);top:50%;left:50%;transform:translate(-50%,-50%) scale(0);pointer-events:none}.svc-svg{width:48px;height:48px;color:var(--gold);display:block;margin-bottom:1.2rem;opacity:.85;transition:opacity .3s , transform .4s , filter .4s;filter:drop-shadow(0 0 0 rgba(201,168,76,0))}.svc-card:hover .svc-svg{opacity:1;transform:translateY(-4px) scale(1.08);filter:drop-shadow(0 0 10px rgba(201,168,76,.5))}.pillar-svg{width:36px;height:36px;color:var(--gold);display:block;transition:transform .4s , filter .4s;filter:drop-shadow(0 0 0 rgba(201,168,76,0))}.vision-pillar:hover .pillar-svg{transform:scale(1.15);filter:drop-shadow(0 0 10px rgba(201,168,76,.6))}body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:9000;background:radial-gradient(ellipse 100% 100% at 50% 50%,transparent 55%,rgba(0,0,0,.35) 80%,rgba(0,0,0,.65) 100%)}.grain{position:fixed;inset:-200%;width:400%;height:400%;pointer-events:none;z-index:8999;opacity:.032;animation:grainShift .08s steps(1) infinite;background-image:url(data:image/svg+xml,%3Csvg\ xmlns=\'http://www.w3.org/2000/svg\'\ width=\'200\'\ height=\'200\'%3E%3Cfilter\ id=\'g\'%3E%3CfeTurbulence\ type=\'fractalNoise\'\ baseFrequency=\'0.75\'\ numOctaves=\'4\'\ stitchTiles=\'stitch\'/%3E%3C/filter%3E%3Crect\ width=\'100%25\'\ height=\'100%25\'\ filter=\'url\(%23g\)\'/%3E%3C/svg%3E)}@keyframes grainShift {
  0%{transform:translate(0,0);}10%{transform:translate(-5%,-10%);}20%{transform:translate(-15%,5%);}30%{transform:translate(7%,-25%);}40%{transform:translate(-5%,25%);}50%{transform:translate(-15%,10%);}60%{transform:translate(15%,0%);}70%{transform:translate(0,15%);}80%{transform:translate(3%,35%);}90%{transform:translate(-10%,10%);}100%{transform:translate(9%,18%);}
}.cta{overflow:hidden}#cta-canvas{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;transition:opacity 1.2s ease}#cta-canvas.active{opacity:1}.cta-horizon{position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,var(--gold) 30%,var(--gold-light) 50%,var(--gold) 70%,transparent 100%);transform:scaleX(0);transition:transform 1.4s cubic-bezier(.16,1,.3,1);transform-origin:center}.cta-horizon.active{transform:scaleX(1)}.cta-col-l,.cta-col-r{position:absolute;top:0;width:1px;height:0;background:linear-gradient(180deg,transparent,rgba(201,168,76,.3),transparent);transition:height 1.2s cubic-bezier(.16,1,.3,1) .3s}.cta-col-l{left:clamp(2rem,8vw,8rem)}.cta-col-r{right:clamp(2rem,8vw,8rem)}.cta-col-l.active,.cta-col-r.active{height:100%}.cta-orb{position:absolute;border-radius:50%;filter:blur(60px);pointer-events:none;opacity:0;transform:scale(.5);transition:opacity 1.5s ease , transform 1.5s ease}.cta-orb.active{opacity:1;transform:scale(1)}.cta-future-tag{display:inline-block;font-family:'Bebas Neue',sans-serif;font-size:.7rem;letter-spacing:.6em;color:rgba(201,168,76,.6);border:1px solid rgba(201,168,76,.2);padding:.4rem 1.5rem;margin-bottom:2rem;clip-path:inset(0 100% 0 0);transition:clip-path 1s cubic-bezier(.16,1,.3,1) .2s}.cta-future-tag.active{clip-path:inset(0 0% 0 0)}.cta-headline .word{display:inline-block;overflow:hidden}.cta-headline .word span{display:inline-block;transform:translateY(110%);transition:transform .9s cubic-bezier(.16,1,.3,1)}.cta-headline.active .word span{transform:translateY(0)}.cta-headline .word:nth-child(2) span {transition-delay:.1s}.cta-headline .word:nth-child(3) span {transition-delay:.2s}.cta-timeline{display:flex;align-items:center;justify-content:center;gap:0;margin:3rem 0 2.5rem;opacity:0;transform:translateY(20px);transition:opacity .8s ease .6s , transform .8s ease .6s}.cta-timeline.active{opacity:1;transform:translateY(0)}.cta-tl-node{width:10px;height:10px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px rgba(201,168,76,.6);flex-shrink:0;position:relative}.cta-tl-node .node-label{position:absolute;top:-2rem;left:50%;transform:translateX(-50%);font-family:'Bebas Neue',sans-serif;font-size:.62rem;letter-spacing:.3em;color:var(--gold);white-space:nowrap}.cta-tl-line{height:1px;flex:1;background:linear-gradient(90deg,rgba(201,168,76,.8),rgba(201,168,76,.3));transform:scaleX(0);transform-origin:left;transition:transform .8s cubic-bezier(.16,1,.3,1)}.cta-tl-line.active{transform:scaleX(1)}.cta-tl-line-future{height:1px;flex:2;background:linear-gradient(90deg,rgba(201,168,76,.3),rgba(201,168,76,.05));position:relative;overflow:visible;transform:scaleX(0);transform-origin:left;transition:transform 1s cubic-bezier(.16,1,.3,1) .4s}.cta-tl-line-future.active{transform:scaleX(1)}.cta-tl-arrow{width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:8px solid rgba(201,168,76,.5);flex-shrink:0;opacity:0;transition:opacity .4s ease 1.2s}.cta-tl-arrow.active{opacity:1}.cta-tl-node-future{width:8px;height:8px;border-radius:50%;border:1px solid rgba(201,168,76,.4);flex-shrink:0;animation:futurePulse 2s ease-in-out infinite}@keyframes futurePulse {
  0%,100% { box-shadow: 0 0 0 0 rgba(201,168,76,0); }
  50% { box-shadow: 0 0 0 8px rgba(201,168,76,0.15); }
}

/* Anniversary improvements and scroll motion */
:root{--muted:#a8b6c6;--gold:#cfb369;--gold-light:#ecd899;--surface-light:#eee6cd;--header-height:76px;--page-pad:clamp(24px,7vw,112px)}
html{scroll-padding-top:90px}body{cursor:auto;font-size:16px}.skip-link{position:fixed;top:10px;left:20px;z-index:110;background:var(--gold-light);color:var(--navy);padding:12px;transform:translateY(-150%)}.skip-link:focus{transform:none}a:focus-visible,button:focus-visible{outline:2px solid currentColor;outline-offset:6px}button,a{-webkit-tap-highlight-color:transparent}.anniv-header{position:absolute;top:0;left:0;right:0;z-index:100;height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 var(--page-pad);border-bottom:1px solid #cfb36924;background:#080f1add;color:var(--gold-pale)}.anniv-brand{font-size:22px;letter-spacing:.12em;font-weight:600;text-decoration:none;color:inherit;display:flex;gap:20px;align-items:center}.anniv-brand span{font:12px 'Bebas Neue',sans-serif;letter-spacing:.18em;border-left:1px solid #cfb36960;padding-left:20px}.anniv-header nav{display:flex;gap:28px}.anniv-header nav a{font-size:14px;text-decoration:none;color:#e1e4e8}.anniv-header nav a:hover{color:var(--gold-light)}.motion-toggle{background:none;border:0;color:#b9c3d0;font:12px 'Noto Sans JP',sans-serif;cursor:pointer;min-height:44px;padding:8px 0 8px 18px;display:flex;align-items:center;gap:8px}.motion-toggle span{font-size:17px;color:var(--gold-light)}
.reveal,.reveal-left{opacity:1;transform:none}.hero{min-height:100svh;padding:9rem 1.5rem 7rem}.hero-eyebrow{font-size:14px;margin-bottom:3.5rem}.hero-10{font-size:clamp(12rem,25vw,21rem)}.hero-10-shadow{font-size:inherit}.hero-years{letter-spacing:.35em;font-size:clamp(1.4rem,3vw,2.4rem);margin-top:.3rem}.gold-line{height:40px;margin:1.8rem auto}.hero-copy{font-size:clamp(1.2rem,2.2vw,1.6rem);line-height:1.85}.hero-sub{font-size:12px;letter-spacing:.18em}.scroll-indicator{bottom:1.25rem}.scroll-indicator span{font-size:12px}.scroll-line{height:28px}.hero-content>*,.hero-eyebrow,.hero-10,.hero-years{animation-delay:.1s}.hero-sub{animation-delay:.4s}.hero-bg{animation-duration:20s}.marquee-strip{padding:1rem 0}.marquee-item{font-size:14px}.section-head{padding:0;margin-bottom:3rem}.section-badge,.section-badge-sm{font-size:14px;line-height:1.5}.section-subtitle{font-size:16px;line-height:1.8}.section-title{font-size:clamp(3rem,7.5vw,7rem)}.stats,.story,.clients{padding:clamp(5rem,10vw,9rem) var(--page-pad)}.story-inner{max-width:1280px;margin:auto}.stats .section-head,.clients .section-head{padding:0}.tl-desc,.client-item,.svc-desc,.message-body{font-size:16px;line-height:1.95}.tl-year{font-size:23px}.tl-event{line-height:1.6}.client-item{min-width:0;padding:1.5rem 1rem}.stats-grid{margin-top:4rem}.stat-label{font-size:16px}.stat-num{font-size:clamp(3.2rem,7vw,6.5rem)}
/* 01: Native text layout is held while character opacity follows the scroll. */
.intro{display:block;padding:0 var(--page-pad);position:relative;overflow:visible}.intro-sticky{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(0,1fr);gap:clamp(2rem,5vw,6rem);align-items:center;min-height:90svh;padding:5rem 0}.intro-text{font-family:'Noto Sans JP',sans-serif;font-size:clamp(22px,2.65vw,38px);line-height:1.85;letter-spacing:-.015em;font-weight:500}.intro-text p{margin:0 0 1.2em}.intro-text strong{font-weight:600}.intro-text br{display:none}.intro-text .section-badge-sm{display:flex;font-weight:400;letter-spacing:.18em;font-family:'Bebas Neue',sans-serif;margin-bottom:36px;justify-content:flex-start;gap:12px}.chapter-marker{margin-left:auto;color:var(--muted);font-size:12px;letter-spacing:.12em;white-space:nowrap}.intro-visual{width:100%;max-width:none;aspect-ratio:3/4;margin-top:50px}.intro-visual-inner{border:0}.intro-visual-img{filter:brightness(.8) saturate(.65)}.intro-char{opacity:1}.motion-ready:not(.motion-paused) .intro{min-height:190svh}.motion-ready:not(.motion-paused) .intro-sticky{position:sticky;top:0;height:100svh;padding-block:3rem}.motion-ready:not(.motion-paused) .intro-char{opacity:var(--char-alpha,.4)}.motion-ready:not(.motion-paused) .intro-visual{transform:translateY(var(--photo-offset,0px))}.gallery-item{width:240px;height:150px}.gallery-row{gap:8px;padding:4px 0}.gallery-item img{filter:brightness(.7) saturate(.55)}
/* 02: Three editorial panels, measured through untransformed slots. */
.services{padding:7rem var(--page-pad) 6rem;background:var(--navy)}.craft-stack{display:flex;flex-direction:column;gap:42px;margin-top:64px;max-width:1440px;margin-inline:auto}.craft-slot{width:100%;position:relative}.craft-panel{padding:36px clamp(28px,4.2vw,70px);border-radius:4px;position:relative;transform-origin:center center;background:var(--surface-light);color:var(--navy);border:1px solid transparent;min-height:520px;display:flex;flex-direction:column}.motion-ready:not(.motion-paused) .craft-panel{transform:scale(var(--card-scale,1));will-change:transform}.craft-panel-2{background:#172a3d;color:#e9e9e1;border-color:#536576}.craft-panel-3{background:#a8bec6;color:#0b2335}.craft-top,.craft-bottom{display:flex;align-items:center;justify-content:space-between;font:14px 'Bebas Neue',sans-serif;letter-spacing:.16em}.craft-top{border-bottom:1px solid currentColor;padding-bottom:20px}.craft-main{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(32px,6vw,90px);padding:44px 0;align-items:center;flex:1}.craft-english{font:500 clamp(64px,7.5vw,120px)/.85 'Cormorant Garamond',Georgia,serif;letter-spacing:-.06em}.craft-lead h3{font:500 clamp(18px,1.8vw,24px)/1.7 'Noto Serif JP',serif;margin-top:30px}.craft-services{display:flex;flex-direction:column;gap:30px}.craft-service+ .craft-service{border-top:1px solid #172a3d40;padding-top:28px}.craft-panel-2 .craft-service+ .craft-service{border-color:#ffffff33}.craft-service h4{font-size:clamp(18px,1.7vw,23px);font-weight:600;line-height:1.6;margin-bottom:12px}.craft-service p{font-size:16px;line-height:1.9;opacity:.84}.craft-bottom{margin-top:auto;font-size:12px;opacity:.65}.craft-bottom span:last-child{font-size:28px;line-height:1}.vision{padding:7rem var(--page-pad)}.vision-label{font-size:14px}.vision-headline{font-size:clamp(2.5rem,5vw,5rem);line-height:1.6}.vision-headline em{font-style:normal}.pillar-en{font-size:20px}.pillar-ja{font-size:14px}.message{padding:7rem var(--page-pad);gap:5rem}.message-visual{aspect-ratio:3/4}.message-body{font-family:'Noto Sans JP',sans-serif;font-weight:400;line-height:2.1}.message-sig{font-size:17px}.message-visual img{filter:brightness(.85) saturate(.6)}
/* 03: The zero in our tenth year becomes the portal to the next chapter. */
.handoff-track{position:relative;background:var(--navy);isolation:isolate}.handoff-stage{position:relative;overflow:hidden}.closing-message{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:5rem 24px;position:relative;z-index:2}.closing-eyebrow,.contact-eyebrow{font:14px 'Bebas Neue',sans-serif;letter-spacing:.3em}.closing-eyebrow{color:var(--gold);margin-bottom:28px}.closing-message h2{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(50px,8.4vw,135px);font-weight:500;line-height:1;letter-spacing:-.04em;display:flex;flex-direction:column;align-items:center;gap:22px}.closing-line{white-space:nowrap}.kinetic-char{display:inline-block;transform-origin:center;animation:letterBreathe 3.5s ease-in-out infinite;animation-delay:var(--delay);color:var(--gold-pale)}@keyframes letterBreathe{0%,100%{transform:scale(1) rotate(0deg);color:var(--gold-pale)}45%{transform:scale(var(--stretch-x),var(--stretch-y)) rotate(var(--tilt));color:var(--tone)}}.closing-ten{display:grid;place-items:center;font-size:60px;width:112px;height:112px;border-radius:50%;color:var(--navy);background:var(--gold-light);letter-spacing:-.07em;font-weight:400}.closing-note{font:400 clamp(18px,2vw,24px) 'Noto Serif JP',serif;margin-top:32px}.closing-scroll{font:12px 'Bebas Neue',sans-serif;letter-spacing:.2em;color:var(--muted);margin-top:32px}.portal-surface,.portal-mark{display:none}.next-contact{background:var(--surface-light);color:var(--navy);min-height:100svh;padding:5rem var(--page-pad);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;isolation:isolate;overflow:hidden}.next-contact h2{font-family:'Noto Serif JP',serif;font-weight:500;font-size:clamp(48px,7vw,104px);line-height:1.5;letter-spacing:-.04em;margin:24px 0}.next-contact h2 em{font-style:normal}.contact-copy{font-size:16px;line-height:1.9}.contact-links{display:flex;gap:16px;align-items:stretch;justify-content:center;margin-top:32px}.contact-links a{text-decoration:none;font-size:16px;padding:21px 30px;min-height:64px;display:flex;align-items:center;gap:34px;transition:background .25s,transform .25s}.contact-links a:hover{transform:translateY(-3px)}.contact-primary{color:var(--surface-light);background:var(--navy)}.contact-primary:hover{background:#1a344c}.contact-secondary{color:var(--navy);border:1px solid #10243460;background:transparent}.contact-secondary:hover{background:#fff5}.contact-phone{display:flex;gap:20px;align-items:center;margin-top:24px;font-size:14px}.contact-phone a{font-size:20px;letter-spacing:.04em;color:inherit;text-decoration:none}.contact-sign{font:12px 'Bebas Neue',sans-serif;letter-spacing:.3em;margin-top:40px;opacity:.7}.contact-ring{position:absolute;width:min(65vw,740px);height:min(65vw,740px);border:1px solid #8e713622;border-radius:50%;z-index:-1;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.contact-ring:before{content:'';position:absolute;inset:-45px;border:1px solid #8e713615;border-radius:inherit}.motion-ready:not(.motion-paused) .handoff-track{height:280svh}.motion-ready:not(.motion-paused) .handoff-stage{position:sticky;top:0;height:100svh}.motion-ready:not(.motion-paused) .closing-message{height:100%;min-height:0;opacity:var(--closing-opacity,1)}.motion-ready:not(.motion-paused) .closing-ten{visibility:hidden}.motion-ready:not(.motion-paused) .portal-surface{display:block;position:absolute;inset:0;z-index:3;background:var(--surface-light);clip-path:circle(var(--portal-radius,56px) at 50% var(--portal-y,50%));pointer-events:none}.motion-ready:not(.motion-paused) .portal-mark{display:grid;place-items:center;position:absolute;z-index:4;left:50%;top:var(--portal-y,50%);transform:translate(-50%,-50%) scale(var(--mark-scale,1));width:112px;height:112px;border-radius:50%;font:400 60px/1 'Cormorant Garamond',Georgia,serif;color:var(--navy);letter-spacing:-.07em;opacity:var(--mark-opacity,1);pointer-events:none}.motion-ready:not(.motion-paused) .next-contact{position:absolute;inset:0;min-height:0;z-index:5;background:transparent;opacity:var(--contact-opacity,0);transform:translateY(var(--contact-offset,24px));visibility:hidden;pointer-events:none}.motion-ready:not(.motion-paused) .handoff-track.contact-visible .next-contact{visibility:visible;pointer-events:auto}.contact-visible .kinetic-char{animation-play-state:paused}footer{padding:3rem var(--page-pad);align-items:center}.footer-logo{color:var(--gold-light);text-decoration:none}.footer-addr{font-size:14px;line-height:1.8}.footer-copy{font-size:12px}
.motion-paused *{animation-play-state:paused!important}.motion-paused .hero-content>*{opacity:1;transform:none}.motion-paused .kinetic-char{transform:none!important;color:var(--gold-pale)!important}.motion-paused .scroll-indicator{opacity:1}.motion-paused .intro-visual,.motion-paused .craft-panel{transform:none!important}
@media(min-width:1800px){.intro-text{font-size:42px}.intro-sticky{max-width:1550px;margin:auto}}
@media(max-width:900px){.anniv-header nav{gap:18px}.anniv-brand span{display:none}.craft-main{gap:36px}.craft-english{font-size:80px}.intro-sticky{grid-template-columns:1fr}.intro-visual{display:none}.intro-text{max-width:800px;font-size:clamp(24px,3.7vw,34px)}.intro-text br{display:none}.message{gap:40px}.section-head{padding:0}.vision-pillars{gap:2rem}.closing-message h2{font-size:11vw}.next-contact h2{font-size:clamp(48px,7vw,72px)}}
@media(max-width:719px){:root{--header-height:68px;--page-pad:24px}.anniv-header{padding-inline:20px}.anniv-brand{font-size:18px}.anniv-header nav{gap:14px}.anniv-header nav a{font-size:12px}.motion-toggle{position:fixed;right:12px;bottom:12px;z-index:110;padding:8px 12px;min-height:40px;border:1px solid #cfb36955;border-radius:24px;background:#080f1aeb;color:#e5e8eb;font-size:12px}.hero{padding:8rem 24px 6rem;min-height:100svh}.hero-eyebrow{letter-spacing:.22em;font-size:12px;gap:12px;margin-bottom:3rem}.hero-eyebrow:before,.hero-eyebrow:after{width:20px}.hero-10{font-size:15rem}.hero-years{font-size:1.5rem;letter-spacing:.25em}.hero-copy{font-size:17px;letter-spacing:.04em}.hero-sub{font-size:12px;line-height:1.8;max-width:300px;margin:18px auto 0}.intro-sticky{padding:70px 0;min-height:90svh}.intro-text{font-size:clamp(20px,5.5vw,30px);line-height:1.85}.intro-text .section-badge-sm{margin-bottom:30px;font-size:14px}.chapter-marker{font-size:12px}.motion-ready:not(.motion-paused) .intro{min-height:155svh}.motion-ready:not(.motion-paused) .intro-sticky{padding:36px 0}.intro-text p:last-child{margin-bottom:0}.gallery-item{width:180px;height:120px}.stats,.story,.clients{padding:5rem var(--page-pad)}.stats-grid{grid-template-columns:repeat(2,1fr)}.stat-card{padding:2rem 1rem}.stat-num{font-size:54px}.stat-label{font-size:14px}.section-title{font-size:52px}.section-subtitle{letter-spacing:.04em}.services{padding:5rem var(--page-pad)}.craft-stack{gap:24px;margin-top:40px}.craft-panel{padding:24px;min-height:0;border-radius:2px;transform:none!important}.craft-top{font-size:12px;padding-bottom:16px}.craft-main{grid-template-columns:1fr;gap:28px;padding:32px 0}.craft-english{font-size:72px;line-height:.9}.craft-english br{display:none}.craft-lead h3{font-size:18px;margin-top:20px}.craft-service h4{font-size:18px}.craft-service p{font-size:16px}.craft-services{gap:24px}.craft-service+.craft-service{padding-top:24px}.clients-logos{grid-template-columns:repeat(2,minmax(0,1fr))}.client-item{font-size:14px;letter-spacing:0}.vision{padding:5rem 24px}.vision-body{font-size:16px;text-align:left;line-height:2}.vision-headline{font-size:36px}.vision-pillars{flex-direction:column;gap:28px;align-items:center}.vision-pillar{display:grid;grid-template-columns:60px 1fr;column-gap:20px;text-align:left;min-width:260px}.pillar-circle{grid-row:span 2;width:60px;height:60px;margin:0}.pillar-en{align-self:end;font-size:20px}.pillar-ja{align-self:start;margin-top:4px}.message{display:flex;flex-direction:column-reverse;padding:5rem 24px}.message-visual{width:100%;max-height:240px;aspect-ratio:16/9}.message-visual:before{display:none}.message-body{font-size:16px}.closing-message{padding:60px 20px}.closing-message h2{font-size:clamp(42px,10.5vw,78px);gap:26px}.closing-eyebrow{font-size:12px;margin-bottom:32px}.closing-ten{width:92px;height:92px;font-size:54px}.closing-note{font-size:18px;margin-top:30px}.motion-ready:not(.motion-paused) .portal-mark{width:92px;height:92px;font-size:54px}.motion-ready:not(.motion-paused) .handoff-track{height:260svh}.next-contact{padding:48px 24px}.contact-eyebrow{font-size:12px;letter-spacing:.16em}.next-contact h2{font-size:46px;line-height:1.6;margin:18px 0}.contact-copy{font-size:15px;line-height:1.9}.contact-copy br{display:none}.contact-links{flex-direction:column;width:100%;max-width:380px;gap:12px;margin-top:24px}.contact-links a{justify-content:space-between;padding:18px 24px;min-height:58px;font-size:15px}.contact-phone{flex-direction:column;gap:6px;margin-top:20px}.contact-sign{margin-top:26px}.contact-ring{width:90vw;height:90vw}footer{flex-direction:column;gap:24px;align-items:flex-start;padding-bottom:80px}.footer-addr{font-size:12px}.footer-copy{font-size:12px}}
@media(max-height:640px){.motion-ready:not(.motion-paused) .intro{min-height:0}.motion-ready:not(.motion-paused) .intro-sticky{height:auto;position:relative;padding:70px 0}.motion-ready:not(.motion-paused) .handoff-track{height:auto}.motion-ready:not(.motion-paused) .handoff-stage{height:auto;position:relative}.motion-ready:not(.motion-paused) .closing-message{min-height:640px;opacity:1}.motion-ready:not(.motion-paused) .closing-ten{visibility:visible}.motion-ready:not(.motion-paused) .portal-surface,.motion-ready:not(.motion-paused) .portal-mark{display:none}.motion-ready:not(.motion-paused) .next-contact{position:relative;min-height:640px;visibility:visible;pointer-events:auto;opacity:1;transform:none;background:var(--surface-light)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-content>*,.scroll-indicator{opacity:1;transform:none}.kinetic-char{transform:none!important}.intro-char{opacity:1!important}}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.animation-suspended *{animation-play-state:paused!important}.motion-ready .motion-toggle{visibility:visible}

.motion-toggle{visibility:hidden}.motion-ready .motion-toggle{visibility:visible}
/* Keep every contact action within the pinned viewport. */
.next-contact{padding-block:clamp(24px,5svh,64px)}.next-contact h2{font-size:clamp(44px,6vw,84px);line-height:1.4;margin:18px 0}.contact-sign{margin-top:24px}
@media(max-width:719px){.next-contact{padding-block:24px}.next-contact h2{font-size:42px;line-height:1.45;margin:12px 0}.contact-links{margin-top:20px}.contact-sign{margin-top:16px}}
/* Restore the source site's countdown and confetti without blocking no-JS readers. */
#loading[hidden]{display:none}.opening-active .hero-content>*,.opening-active .scroll-indicator{animation-play-state:paused!important}.opening-skip{position:absolute;right:28px;top:24px;z-index:20;background:none;border:1px solid #cfb36966;border-radius:24px;color:var(--gold-pale);padding:10px 20px;min-height:44px;font:14px 'Noto Sans JP',sans-serif;cursor:pointer}.opening-skip:hover{background:#cfb36922}.opening-active .motion-toggle{visibility:hidden}
/* Natural-flow character reveals: preserve each line, weight and highlighted words. */
.flow-char{opacity:1}.motion-ready:not(.motion-paused) .flow-char{opacity:var(--char-alpha,.4)}.vision-headline,.vision-body,.message-body{line-break:strict}.motion-paused .flow-char{opacity:1!important}
/* The original chronology becomes eight independently scaling narrative cards. */
.history-stack{display:flex;flex-direction:column;gap:28px;margin-top:64px}.history-slot{position:relative}.history-card{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1.7fr);gap:clamp(32px,6vw,80px);min-height:280px;padding:clamp(28px,4.2vw,60px);background:#102033;border:1px solid #cfb36940;border-radius:4px;transform-origin:center;align-items:center}.history-slot:nth-child(even) .history-card{background:#172a3d}.history-slot:last-child .history-card{background:var(--surface-light);color:var(--navy);border-color:transparent}.history-index{display:block;font:12px 'Bebas Neue',sans-serif;letter-spacing:.18em;color:var(--muted);margin-bottom:22px}.history-year{font:400 clamp(32px,3.5vw,56px)/1.15 'Cormorant Garamond',Georgia,serif;color:var(--gold-light);letter-spacing:-.02em}.history-copy h3{font:500 clamp(22px,2.5vw,34px)/1.6 'Noto Serif JP',serif;margin-bottom:18px}.history-copy p{font-size:16px;line-height:2;color:var(--muted)}.history-slot:last-child .history-year,.history-slot:last-child .history-index{color:#65501f}.history-slot:last-child .history-copy p{color:#33414d}.motion-ready:not(.motion-paused) .history-card{transform:scale(var(--card-scale,1));will-change:transform}
/* Sequential company entries keep the grid dimensions stable. */
.partners-ready .client-item{transition:opacity .8s cubic-bezier(.16,1,.3,1),translate .8s cubic-bezier(.16,1,.3,1),filter .8s ease,background .3s,color .3s;transition-delay:0s}.partners-ready:not(.motion-paused) .client-item:not(.client-visible){opacity:0;translate:0 24px;filter:blur(3px)}.partners-ready .client-visible,.motion-paused .client-item{opacity:1;translate:0 0;filter:none}
@media(max-width:719px){.history-stack{gap:20px;margin-top:40px}.history-card{grid-template-columns:1fr;gap:24px;padding:28px 24px;min-height:0;transform:none!important}.history-date{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:22px;border-bottom:1px solid #cfb36940}.history-index{margin:0;white-space:nowrap;font-size:12px}.history-year{font-size:30px;text-align:right}.history-copy h3{font-size:23px}.history-copy p{font-size:16px}.opening-skip{right:18px;top:18px}}
@media(prefers-reduced-motion:reduce){.flow-char{opacity:1!important}.history-card{transform:none!important}.partners-ready .client-item{opacity:1!important;translate:none!important;filter:none!important}#loading,#confetti-canvas{display:none!important}}
/* Match the greeting to the opening philosophy at every breakpoint. */
:root{--narrative-font-size:clamp(22px,2.65vw,38px)}
.intro-text,.message-body{font-size:var(--narrative-font-size);line-height:1.85;font-weight:500;letter-spacing:-.015em}
.message{grid-template-columns:minmax(0,1fr) minmax(0,1.85fr);align-items:start}
.message-body p{margin-bottom:1.2em}.message-visual{position:sticky;top:5rem}
/* The supplied photos keep their original color data and transition only their filter. */
.intro-visual-img,.gallery-item img,.message-visual img{filter:grayscale(1);transition:filter .75s ease,transform 1.2s cubic-bezier(.2,.7,.3,1)}
.intro-visual-overlay{background:none}
.intro-visual:hover .intro-visual-img,.gallery-item:hover img,.message-visual:hover img{filter:grayscale(0)}
/* Reveal natural inline text, then pass a short gold-white gleam across it. */
.heading-char{opacity:1}
.heading-motion-ready:not(.heading-entered) .heading-char{opacity:0}
.heading-motion-ready.heading-entered .heading-char{animation:headingCharIn .65s cubic-bezier(.22,1,.36,1) calc(var(--heading-index)*.035s) both}
.heading-motion-ready.heading-complete .heading-char{opacity:1;animation:headingShine .9s ease-in-out calc(var(--heading-index)*.016s) both}
@keyframes headingCharIn{from{opacity:0}to{opacity:1}}
@keyframes headingShine{0%,100%{color:inherit;text-shadow:none}42%{color:#fffbea;text-shadow:0 0 4px #fff9,0 0 14px #ecd899bb,0 0 26px #cfb36988}}
.motion-paused .heading-motion-ready .heading-char,.heading-motion-static .heading-char{opacity:1!important;animation:none!important;text-shadow:none!important}
@media(min-width:1800px){:root{--narrative-font-size:42px}}
@media(max-width:900px){:root{--narrative-font-size:clamp(24px,3.7vw,34px)}.message{grid-template-columns:1fr}.message-visual{position:relative;top:auto;max-height:320px;aspect-ratio:16/9}}
@media(max-width:719px){:root{--narrative-font-size:clamp(20px,5.5vw,30px)}.message-visual{max-height:240px}}
@media(prefers-reduced-motion:reduce){.heading-motion-ready .heading-char{opacity:1!important;animation:none!important;text-shadow:none!important}.intro-visual-img,.gallery-item img,.message-visual img{transition:none}}
.next-contact > :not(.launch-scene):not(.contact-ring){position:relative;z-index:1}
.launch-scene{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;contain:layout paint}
.launch-rocket{position:absolute;left:76%;bottom:-420px;width:210px;height:420px;object-fit:contain;opacity:0;transform:translateX(-50%);filter:drop-shadow(0 0 18px #cfb36945)}
.launch-light{position:absolute;inset:0;opacity:0;background:radial-gradient(ellipse at 76% 110%,#fff9deaa 0%,#e0be633d 25%,transparent 62%)}
.launch-started:not(.launch-finished) h2{animation:contactTitleFlash 1.1s ease-out both}
.launch-started:not(.launch-finished) .launch-rocket{animation:contactRocketLift 6s cubic-bezier(.55,.02,.8,.56) .45s both;will-change:transform,opacity}
.launch-started:not(.launch-finished) .launch-light{animation:contactLaunchLight 5s ease-in-out .35s both}
.next-contact:not(.launch-playing) h2,.next-contact:not(.launch-playing) .launch-scene *{animation-play-state:paused}
.launch-finished .launch-scene{display:none}
@keyframes contactTitleFlash{0%,100%{color:var(--navy);text-shadow:none}32%{color:#a47e26;text-shadow:0 0 2px #fff,0 0 14px #fff7d1,0 0 36px #dcb650}48%{color:#fffaf0;text-shadow:0 0 3px #977329,0 0 18px #ffe59b,0 0 48px #cfb369}72%{color:#82621e;text-shadow:0 0 18px #e8c96a77}}
@keyframes contactRocketLift{0%{opacity:0;transform:translate(-50%,0)}8%{opacity:.82}85%{opacity:.82}100%{opacity:0;transform:translate(-50%,calc(-100svh - 920px))}}
@keyframes contactLaunchLight{0%,100%{opacity:0}22%{opacity:1}60%{opacity:.65}}
@media(max-width:719px){.launch-rocket{left:84%;width:140px;height:280px;bottom:-280px}.launch-light{background:radial-gradient(ellipse at 84% 110%,#fff9deaa 0%,#e0be633d 25%,transparent 62%)}}
@media(max-height:640px){@keyframes contactRocketLift{0%{opacity:0;transform:translate(-50%,0)}8%,85%{opacity:.82}100%{opacity:0;transform:translate(-50%,calc(-100% - 1200px))}}}
.motion-paused .launch-scene{display:none}.motion-paused .launch-started h2{animation:none!important;text-shadow:none!important;color:var(--navy)}
@media(prefers-reduced-motion:reduce){.launch-scene{display:none}.launch-started h2{animation:none!important}}
