
:root{--red:#db0c24;--red-dark:#730b18;--ink:#151c27;--muted:#566073;--soft:#f8f9fb;--stageh:100dvh}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden;}
body{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased;background:#eff0f2}
a{text-decoration:none;color:inherit}button{font:inherit;cursor:pointer}
#preview{height:var(--stageh);overflow-y:auto;overflow-x:hidden;scroll-behavior:auto;scrollbar-width:thin;scrollbar-color:#beafaf #f7f5f5;position:relative;isolation:isolate;overscroll-behavior-y:contain;background:#fff}
#scene{height:225dvh;position:relative;overflow:clip;}
#hero{height:var(--stageh);width:100%;position:sticky;top:0;overflow:hidden;background:linear-gradient(114deg,#fff 0%,#fff 35%,#fff8f8 68%,#faf3f2 100%);isolation:isolate;}
#hero:before{content:"";position:absolute;width:92vw;height:92vw;right:-34vw;top:-25vw;background:radial-gradient(circle,rgba(242,58,76,.1),rgba(255,255,255,0) 60%);pointer-events:none;z-index:0}
#hero:after{content:"";position:absolute;width:66vw;height:66vw;right:1vw;top:8vh;border:1px solid rgba(215,30,46,.035);border-radius:50%;box-shadow:0 0 0 90px rgba(235,44,56,.019),0 0 0 215px rgba(235,44,56,.016),0 0 0 360px rgba(235,44,56,.009);z-index:0;pointer-events:none;}
#nav{position:sticky;top:0;left:0;right:0;margin-bottom:-95px;z-index:100;height:95px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(25px,5.5vw,92px);gap:30px;border-bottom:1px solid rgba(20,27,40,.058);background:rgba(255,255,255,.93);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:box-shadow .25s,border-color .25s;}
.brandlink{display:flex;align-items:center;gap:12px;min-width:172px}
.brandlink img{display:block;width:144px;max-height:68px;object-fit:contain}
.nav-list{display:flex;align-items:center;gap:clamp(14px,2.5vw,36px);font-size:12px;font-weight:700;letter-spacing:.02em;white-space:nowrap}
.nav-list a{transition:color .2s}.nav-list a:hover{color:var(--red)}
.top-contact{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;gap:13px;border:0;padding:15px 24px;background:linear-gradient(114deg,#8e0c19,#e40b24);color:#fff;border-radius:100px;font-size:12px;font-weight:800;box-shadow:0 8px 26px rgba(166,8,26,.16);transition:transform .2s}
.top-contact:hover,.primary:hover{transform:translateY(-2px)}
#ambient{position:absolute;right:-7%;top:13%;width:64%;height:72%;z-index:1;pointer-events:none;opacity:.98;}
.grid-glow{position:absolute;inset:1% 0 0 0;background-image:linear-gradient(rgba(170,20,30,.075) 1px,transparent 1px),linear-gradient(90deg,rgba(170,20,30,.075) 1px,transparent 1px);background-size:54px 54px;mask-image:radial-gradient(ellipse at 56% 49%,#000 2%,transparent 73%);transform:perspective(400px) rotateX(27deg) rotateZ(-8deg)}
#ambient svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 12px 20px rgba(220,24,43,.09))}
#ambient .bar{transform-origin:bottom;animation:barUp 1.5s cubic-bezier(.16,1,.3,1) both;}
#ambient .bar:nth-child(2){animation-delay:.12s}#ambient .bar:nth-child(3){animation-delay:.24s}#ambient .bar:nth-child(4){animation-delay:.36s}#ambient .bar:nth-child(5){animation-delay:.48s}#ambient .bar:nth-child(6){animation-delay:.60s}
@keyframes barUp{from{transform:scaleY(.1);opacity:0}to{transform:scaleY(1);opacity:1}}
.path-growth{stroke-dasharray:1100;stroke-dashoffset:1100;animation:drawLine 2.7s ease-out .35s forwards}
@keyframes drawLine{to{stroke-dashoffset:0}}
.data-lights{position:absolute;inset:0;pointer-events:none}
.data-lights span{position:absolute;display:block;width:5px;height:5px;border-radius:50%;background:#de233c;box-shadow:0 0 12px 4px rgba(235,24,48,.25);animation:blip 3s ease-in-out infinite}
.data-lights span:nth-child(1){left:25%;top:72%;animation-delay:0s}.data-lights span:nth-child(2){left:44%;top:43%;animation-delay:.75s}.data-lights span:nth-child(3){left:72%;top:28%;animation-delay:1.3s}.data-lights span:nth-child(4){left:82%;top:53%;animation-delay:2s}
@keyframes blip{50%{opacity:.23;transform:scale(.6)}}
.chart-label{position:absolute;top:18%;right:11%;color:#bd8b93;font-size:10px;line-height:1.6;letter-spacing:.25em;font-weight:800;text-align:right}
#hero-content{position:absolute;left:clamp(27px,7.0vw,112px);top:50%;transform:translateY(-46%);z-index:9;width:min(55%,750px);will-change:transform,opacity}
#eyebrow{display:flex;align-items:center;gap:17px;color:#b00f20;font-size:11px;font-weight:850;letter-spacing:.22em;margin-bottom:25px;}
#eyebrow:before{content:"";width:28px;height:2px;background:#db0c24}
h1{margin:0;line-height:1.41;letter-spacing:-.05em;font-size:clamp(31px,3.45vw,61px);font-weight:900;color:#161c25;white-space:nowrap}
h1 span{display:block}h1 .accent{color:#ce0b24}
#lead{color:#596272;line-height:2.15;margin:22px 0 31px;font-size:clamp(12px,.97vw,15px);font-weight:500;letter-spacing:.012em;}
#ctas{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:14px;padding:17px 26px;border-radius:999px;font-size:13px;font-weight:800;letter-spacing:.02em;transition:transform .22s,background .22s;min-height:54px}
.primary{background:linear-gradient(105deg,#9e0d1d,#e60e25);box-shadow:0 16px 30px rgba(175,14,26,.16);color:white}
.secondary{background:#fff;border:1px solid #dcb7be;color:#ad1124}.secondary:hover{background:#fff1f3}
#brand-wrap{position:absolute;left:74.5%;top:50.5%;width:min(43.5vw,690px);z-index:7;transform:translate(-50%,-50%) perspective(1150px) rotateY(-10deg) rotateX(3deg);transform-origin:51% 46%;will-change:left,top,transform,opacity;pointer-events:none}
#brand-wrap:after{content:"";display:block;position:absolute;left:12%;right:8%;bottom:-10%;height:16%;border-radius:50%;background:radial-gradient(ellipse,rgba(123,16,28,.15),transparent 65%);filter:blur(19px);z-index:-1}
#brand-wrap img{display:block;width:100%;height:auto;filter:drop-shadow(9px 29px 18px rgba(84,15,22,.19));animation:float 5s ease-in-out infinite}
@keyframes float{0%,100%{translate:0 0}50%{translate:0 -9px}}
#lightstream{position:absolute;inset:auto -10% -38% 34%;height:90%;background:conic-gradient(from 265deg at 45% 75%,transparent 0deg,rgba(241,42,64,.08) 13deg,transparent 22deg,rgba(236,25,46,.07) 29deg,transparent 39deg);transform:rotate(-10deg);filter:blur(19px);opacity:.8;z-index:2;pointer-events:none}
#scrollhint{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);z-index:12;display:flex;align-items:center;flex-direction:column;gap:10px;font-size:10px;font-weight:800;letter-spacing:.23em;color:#69707d;transition:opacity .2s;pointer-events:none}
#scrollhint i{height:37px;width:1px;background:linear-gradient(#9c202d,transparent);position:relative;animation:drop 1.5s ease-in-out infinite}#scrollhint i:after{content:"";position:absolute;top:12px;left:-3px;width:7px;height:7px;border-right:1px solid #a21827;border-bottom:1px solid #a21827;transform:rotate(45deg)}
@keyframes drop{50%{transform:translateY(8px)}}
#side-text{position:absolute;right:3%;bottom:23%;z-index:5;writing-mode:vertical-rl;font-size:10px;letter-spacing:.35em;color:#9f8f94;font-weight:700}
#veil{position:absolute;inset:0;z-index:14;background:#fff;opacity:0;pointer-events:none;will-change:opacity;}
#progress{position:absolute;bottom:0;left:0;width:0;height:3px;background:linear-gradient(90deg,#8c101c,#f52640);z-index:17;box-shadow:0 0 14px #e11a34;}
#after{position:relative;min-height:100dvh;background:#141820;color:#fff;overflow:hidden;padding:clamp(72px,10vw,142px) clamp(25px,9vw,130px) 120px;}
#after:before{content:"";position:absolute;inset:-20% -50% 5% 38%;background:radial-gradient(ellipse at center,rgba(206,9,35,.25),transparent 58%);pointer-events:none}
.after-inner{position:relative;z-index:1;max-width:1200px;margin:auto}
.section-eyebrow{font-size:12px;color:#ff6f80;letter-spacing:.22em;font-weight:850;margin-bottom:17px;display:flex;align-items:center;gap:12px}
.section-eyebrow:before{content:"";width:26px;height:2px;background:#e20e28}
#after h2{font-size:clamp(30px,4.7vw,70px);line-height:1.4;letter-spacing:-.06em;margin:0 0 20px;font-weight:900;}
#after h2 em{font-style:normal;color:#ff455a}
.after-intro{max-width:750px;color:#adb3c0;font-size:15px;line-height:2.1;margin:0 0 46px}
.persona-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:1020px}
.persona{padding:27px 30px;border-radius:16px;background:rgba(255,255,255,.065);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(8px);transition:background .3s}.persona:hover{background:rgba(255,255,255,.09)}
.persona .num{font-size:12px;color:#ff6375;letter-spacing:.2em;font-weight:850}.persona h3{font-size:20px;letter-spacing:-.025em;line-height:1.5;margin:13px 0 10px}.persona p{font-size:13px;line-height:1.9;color:#b5bac4;margin:0}
.after-footer{display:flex;gap:15px;align-items:center;flex-wrap:wrap;margin-top:46px}.after-footer a{border:1px solid rgba(255,255,255,.25);color:#fff;padding:15px 25px;border-radius:99px;font-size:13px;font-weight:800}.after-footer a:first-child{background:#d40d27;border-color:#d40d27}
#tools{position:fixed;right:22px;bottom:21px;z-index:100;display:flex;align-items:center;gap:8px;filter:drop-shadow(0 8px 14px rgba(0,0,0,.1))}
#tools button{border:1px solid rgba(20,22,28,.16);border-radius:50px;background:#fff;box-shadow:0 4px 15px #0001;padding:12px 17px;font-size:12px;font-weight:850;color:#202631;transition:transform .2s}#tools button:hover{transform:translateY(-2px)}#tools #play{background:#1a1d27;color:#fff;border-color:#1a1d27}
#demo-label{position:fixed;top:12px;right:12px;z-index:130;background:rgba(17,24,39,.6);color:#fff;border-radius:5px;font-size:10px;letter-spacing:.1em;padding:5px 9px;pointer-events:none;opacity:.7}
@media(min-width:1550px){h1{font-size:min(3.6vw,67px)}}
@media(max-width:1080px){#nav{gap:18px}.nav-list{gap:16px;font-size:11px}.top-contact{padding:13px 16px}.brandlink{min-width:130px}.brandlink img{width:125px}#hero-content{left:5.2vw;width:57%}h1{font-size:clamp(28px,3.6vw,50px)}#brand-wrap{width:43.5vw;left:74.5%}}
@media(max-width:720px){#nav{height:75px;padding:0 23px;margin-bottom:-75px}.nav-list{display:none}.top-contact{font-size:11px;padding:12px 15px}.brandlink img{width:116px}#hero-content{top:25%;left:7%;width:91%;transform:translateY(-16%)}#eyebrow{font-size:9px;margin-bottom:14px;gap:9px;letter-spacing:.14em}#eyebrow:before{width:16px}h1{font-size:clamp(25px,6vw,37px);line-height:1.47;letter-spacing:-.056em}#lead{font-size:11px;line-height:1.9;margin:17px 0 17px;max-width:90%;}#lead br{display:none}.primary,.secondary{padding:12px 17px;min-height:44px;font-size:11px;gap:5px}#ctas{gap:7px}#brand-wrap{width:81vw;left:52%;top:76%}#ambient{width:112%;height:51%;top:44%;right:-17%}.chart-label,#side-text{display:none}#scrollhint{bottom:54px;left:50%;}#scrollhint i{height:25px}#after{padding:75px 25px 110px}.after-intro{font-size:13px}.persona-grid{grid-template-columns:1fr;gap:13px}.persona{padding:22px}.persona h3{font-size:18px}#tools{right:12px;bottom:12px}#tools button{padding:10px 12px;font-size:11px}#demo-label{display:none}}
@media(max-width:390px){#hero-content{top:24%;}h1{font-size:24px}#lead{font-size:10px;margin:13px 0}#brand-wrap{top:75%;width:84vw}#scrollhint{bottom:62px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Global UI refinement */
#tools.is-hidden,#demo-label.is-hidden{opacity:0;pointer-events:none;visibility:hidden}#tools{transition:opacity .25s,visibility .25s}
:root{--line:#e7e8eb;--red:#d70d2a;--deep:#111720;--paper:#fff;--display:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
#nav.is-scrolled{box-shadow:0 10px 28px rgba(31,32,38,.065);border-color:#ece9eb}
#nav .nav-list{gap:clamp(13px,1.6vw,28px)}
#nav .nav-list a{font-size:11px}
#hero-content{width:min(53%,720px)}
#hero h1{letter-spacing:-.065em}
#tools{z-index:150}
#tools button{font-size:11px}
#demo-label{z-index:150;top:auto;bottom:68px;right:20px;font-size:9px}
#preview{scroll-padding-top:96px;}
.site-section{position:relative;overflow:hidden;scroll-margin-top:94px;}
.container{width:min(1240px,calc(100% - 96px));margin:0 auto;position:relative;z-index:1}
.section-kicker{margin:0 0 12px;display:flex;align-items:center;gap:14px;font-family:Arial,sans-serif;color:#a80d26;font-size:12px;letter-spacing:.13em;font-weight:900}
.section-kicker span{font-size:10px;letter-spacing:.25em;font-weight:800}
.section-kicker:after{content:"";height:1px;width:43px;background:currentColor;opacity:.35}
.section-kicker.red-light{color:#ff6679}
.section-jp-label{font-size:13px;font-weight:700;letter-spacing:.13em;color:#e5d7d9;margin:0 0 18px}
.section-jp-label.dark-jp{color:#777e88}
.display-h2{font-size:clamp(36px,4.55vw,69px);line-height:1.42;letter-spacing:-.075em;font-weight:900;margin:0}
.text-highlight{color:#ff5a70}.red-text{color:#cc102d}.dark-title{color:#20252f}
.text-link{display:inline-flex;align-items:center;gap:35px;border-bottom:1px solid #c20b29;padding:0 0 10px;color:#bb0f2b;font-size:13px;font-weight:850;transition:gap .2s}
.text-link:hover{gap:43px}.text-link.on-dark{color:#fff;border-color:#ff7587}
.text-link span{font-size:20px;font-weight:400}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,1,.35,1),transform .8s cubic-bezier(.2,1,.35,1)}
.reveal.is-visible{opacity:1;transform:translateY(0)}
/* About */
.about-section{background:#151922;color:#fff;min-height:760px;padding:134px 0 38px}
.about-section:before{content:"";position:absolute;inset:-28% -18% auto auto;width:830px;height:890px;background:radial-gradient(ellipse,#74203730,transparent 65%);pointer-events:none}
.about-layout{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:4%;min-height:550px}
.about-lead{position:relative;z-index:2}
.about-lead h2{margin:0 0 30px;white-space:nowrap}
.about-description{font-size:15px;color:#d6d9df;line-height:2.15;max-width:600px;margin:0 0 19px;font-weight:500}
.about-description.dim{color:#999eab;margin-bottom:33px}
.about-design{height:500px;position:relative;display:flex;align-items:center;justify-content:center;isolation:isolate}
.about-design:before{content:"";position:absolute;inset:10%;background:radial-gradient(circle,#f123491c,transparent 70%);filter:blur(20px)}
.orbit{position:absolute;border:1px solid #ffffff24;border-radius:50%;box-shadow:0 0 80px #c9203220 inset;transform:rotate(-17deg)}
.orbit-one{width:335px;height:335px}.orbit-two{width:445px;height:445px;border-color:#ffffff12}.orbit-three{width:535px;height:535px;border-color:#ffffff09}
.orbit-one:before{content:"";position:absolute;width:10px;height:10px;left:13%;top:13%;background:#ff486b;border-radius:50%;box-shadow:0 0 30px 7px #d81e475a}
.orbit-core{width:255px;height:255px;border-radius:50%;background:radial-gradient(circle at 20% 15%,#ff3e57,#b80d2a 52%,#5b0e25);box-shadow:0 34px 90px #03070f80,0 0 0 15px #b0112920,0 0 100px #d80d3450;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-12deg);animation:aboutFloat 7s ease-in-out infinite}
@keyframes aboutFloat{50%{transform:translateY(-11px) rotate(-12deg)}}
.orbit-core span{font-size:9px;letter-spacing:.36em;font-weight:800;color:#ffe1e8}.orbit-core strong{font-size:75px;letter-spacing:-.08em;font-weight:950}.orbit-core small{font-size:9px;letter-spacing:.2em;color:#fff3f6;font-weight:700}
.orbit-pill{position:absolute;z-index:2;display:flex;align-items:center;gap:11px;background:#262b38;color:#fff;box-shadow:0 12px 32px #0004;border:1px solid #ffffff22;border-radius:40px;padding:12px 17px;font-size:10px;letter-spacing:.1em;font-weight:800}
.orbit-pill span{color:#ff536b;font-size:15px}.pill-top{top:15%;right:10%}.pill-left{left:-1%;top:52%}.pill-bottom{bottom:12%;right:16%}
.about-bottom-copy{position:absolute;bottom:-9%;left:4%;font-family:Arial,sans-serif;font-size:45px;font-weight:900;letter-spacing:-.03em;line-height:1.03;color:#ffffff09;white-space:nowrap}
.about-foot{border-top:1px solid #ffffff17;margin-top:45px;padding-top:27px;display:flex;gap:35px;justify-content:space-between;color:#ffffff55;font-size:11px;font-weight:750;letter-spacing:.3em}
/* Reasons */
.reasons-section{background:#fff;padding:130px 0 112px}
.reasons-heading{display:grid;grid-template-columns:.35fr .65fr;gap:40px;align-items:start;margin-bottom:63px}
.reasons-intro{max-width:610px;color:#626979;font-size:15px;line-height:2;max-width:620px;margin:24px 0 0}
.reasons-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.reason-card{background:#f6f7f9;border:1px solid #eceef1;border-radius:15px;padding:33px 28px 23px;min-height:340px;display:flex;flex-direction:column;transition:transform .35s,box-shadow .35s,border-color .35s}
.reason-card:hover{transform:translateY(-9px);box-shadow:0 28px 48px #161f3020;border-color:#ead0d5}
.reason-meta{display:flex;justify-content:space-between;align-items:center;color:#c0122e;font-size:13px;font-weight:900;letter-spacing:.12em}
.reason-icon{display:flex;align-items:center;justify-content:center;width:47px;height:47px;background:#fff;border:1px solid #f0e3e6;border-radius:50%;font-size:24px;font-weight:300}
.reason-card h3{font-size:clamp(18px,1.6vw,24px);letter-spacing:-.06em;line-height:1.55;margin:42px 0 14px}
.reason-card p{color:#636b78;font-size:12px;line-height:2;margin:0 0 25px}
.reason-en{margin-top:auto;border-top:1px solid #dedfe3;padding-top:15px;font-size:10px;font-weight:900;letter-spacing:.21em;color:#a1a6af}
.statement-strip{margin-top:24px;background:#fbf5f6;border-left:3px solid #d00f2b;display:flex;align-items:center;gap:40px;padding:27px 36px}
.statement-strip>span:first-child{color:#bb132d;font-size:10px;font-weight:900;letter-spacing:.21em;white-space:nowrap}.statement-strip p{font-size:19px;letter-spacing:-.045em;margin:0;flex:1}.strip-arrow{font-size:32px;color:#c0132e}
/* Route selection */
.routes-section{background:#f5f5f6;padding:128px 0 132px}
.center-heading{text-align:center;max-width:890px;margin:0 auto 52px}.center-heading .section-kicker{justify-content:center}.center-heading .section-kicker:before{content:"";height:1px;width:43px;background:currentColor;opacity:.35}.center-heading p:last-child{color:#697180;font-size:14px;line-height:2;margin:23px 0 0}
.route-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.route-option{text-align:left;position:relative;display:flex;flex-direction:column;min-height:432px;padding:39px 42px 34px;border:2px solid transparent;border-radius:18px;background:#fff;color:#20242e;overflow:hidden;transition:transform .3s,border-color .3s,box-shadow .3s;cursor:pointer}
.route-option:hover{transform:translateY(-5px);box-shadow:0 24px 50px #21273314}
.route-option.selected{border-color:#d21130;box-shadow:0 25px 65px #c5142920}
.route-option:first-child{background:linear-gradient(140deg,#241923,#101722);color:#fff}
.route-option:first-child.selected{border-color:#f54360}
.route-option:after{content:"";position:absolute;width:330px;height:330px;right:-170px;bottom:-195px;border:1px solid currentColor;border-radius:50%;opacity:.09;box-shadow:0 0 0 55px currentColor,0 0 0 100px currentColor}
.route-no{font-family:Arial,sans-serif;font-size:12px;letter-spacing:.19em;font-weight:800;color:#ea687e}
.route-new .route-no{color:#c80e30}
.route-symbol{position:absolute;right:43px;top:32px;width:59px;height:59px;border-radius:50%;border:1px solid #ffffff32;display:grid;place-items:center;font-size:27px;font-weight:400;color:#ff718a}
.route-new .route-symbol{border-color:#e2d8dc;color:#b90f29}
.route-tag{font-size:12px;letter-spacing:.04em;color:#9da3af;margin:60px 0 11px;font-weight:750}
.route-new .route-tag{color:#747b87}
.route-option strong{font-size:clamp(22px,2.4vw,35px);line-height:1.45;letter-spacing:-.07em;font-weight:900}
.route-desc{font-size:13px;line-height:1.9;color:#aeb3be;margin:19px 0 30px;max-width:400px}
.route-new .route-desc{color:#6b7280}
.route-action{margin-top:auto;display:flex;justify-content:space-between;align-items:center;width:100%;border-top:1px solid #ffffff37;padding-top:21px;font-size:12px;font-weight:900;letter-spacing:.02em}
.route-new .route-action{border-color:#e0e0e5}.route-action span{font-size:21px}
.route-result{background:#fff;margin-top:16px;padding:27px 38px;border-radius:14px;border:1px solid #e4e4e8;display:grid;grid-template-columns:155px 1fr;gap:27px}
.route-result-label{font-size:10px;letter-spacing:.2em;color:#a30c28;font-weight:850;border-right:1px solid #e4e4e8;padding-top:8px}
.route-result-label span{display:block;font-size:39px;letter-spacing:0;color:#202632;margin-top:7px}
.route-result-body{display:flex;gap:18px;align-items:center;justify-content:space-between}
.route-result-body h3{font-size:19px;letter-spacing:-.05em;margin:0 0 8px}
.route-result-body p{font-size:12px;line-height:1.8;color:#687080;margin:0;max-width:590px}
.route-result-link{flex-shrink:0;display:flex;align-items:center;gap:13px;background:#cc102e;color:white;font-size:12px;font-weight:850;padding:15px 19px;border-radius:50px}
.route-result-link span{font-size:17px}
/* Testimonials */
.voices-section{background:white;padding:128px 0 100px}
.section-row-heading{display:flex;align-items:end;justify-content:space-between;gap:50px;margin-bottom:54px}
.section-heading-description{max-width:340px;font-size:13px;color:#697180;line-height:2;margin:0 0 7px}
.voices-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.voice-card{background:#f8f8fa;border:1px solid #ededf0;border-radius:17px;padding:27px 29px 24px;min-height:399px;display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s}
.voice-card:hover{transform:translateY(-5px);box-shadow:0 19px 42px #10182810}
.voice-top{display:flex;justify-content:space-between;align-items:center;color:#b5102c;font-size:11px;letter-spacing:.12em;font-weight:850;gap:8px}
.placeholder-note{border:1px solid #e7c4ca;color:#b2475c;border-radius:40px;padding:5px 8px;font-size:9px;letter-spacing:0}
.voice-quotation{font-family:Georgia,serif;color:#eecbd1;font-size:93px;height:83px;line-height:1.2;margin-top:6px}
.voice-card h3{font-size:19px;line-height:1.7;letter-spacing:-.05em;margin:0 0 13px}
.voice-card p{font-size:12px;line-height:1.9;color:#727887;margin:0 0 21px}
.voice-bottom{margin-top:auto;border-top:1px solid #e5e5e9;padding-top:19px;display:flex;align-items:center;gap:13px}
.voice-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#f5dade,#f9f0f0);color:#bd2539;display:grid;place-items:center;font-weight:900;font-size:10px}
.voice-bottom b{font-size:11px;display:block;line-height:1.6}.voice-bottom small{display:block;color:#8c929c;font-size:10px;margin-top:3px}
.prototype-caption{font-size:11px;color:#858c97;line-height:1.8;margin:24px 0 0}
/* Journal */
.journal-section{background:#f6f7f9;padding:126px 0}
.article-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.article-card{background:#fff;border:1px solid #eceef2;border-radius:17px;overflow:hidden;min-height:500px;display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s}
.article-card:hover{transform:translateY(-6px);box-shadow:0 19px 44px #0f172a16}
.article-art{height:230px;position:relative;overflow:hidden;isolation:isolate}
.art-one{background:radial-gradient(circle at 70% 38%,#bf425c,#4a172d 70%,#261320)}
.art-two{background:linear-gradient(130deg,#f2ebec,#fce5e5)}
.art-three{background:radial-gradient(ellipse at 50% 30%,#d33149,#711025 60%,#29121f)}
.art-word{position:absolute;left:26px;top:24px;z-index:4;color:#ffffffb8;font-size:10px;font-family:Arial,sans-serif;font-weight:900;letter-spacing:.2em}
.art-two .art-word{color:#ac203a}
.art-chart{position:absolute;left:12%;right:12%;bottom:36px;height:125px;display:flex;align-items:end;gap:14px;transform:perspective(700px) rotateX(12deg)}
.art-chart i{flex:1;height:35%;display:block;background:linear-gradient(to top,#ffffff24,#fa87967a);border:1px solid #ffc3cd30;border-radius:3px 3px 0 0}
.art-chart i:nth-child(2){height:53%}.art-chart i:nth-child(3){height:46%}.art-chart i:nth-child(4){height:76%}.art-chart i:nth-child(5){height:96%}
.art-graph{position:absolute;right:12%;top:31%;font-size:95px;font-weight:100;color:#ffffffa3;transform:rotate(-6deg)}
.art-window{position:absolute;left:22%;right:16%;top:37%;height:139px;border-radius:9px;background:#fff;box-shadow:0 20px 35px #ae425140;border:1px solid #fff;transform:rotate(-8deg)}
.art-window-top{height:27px;border-bottom:1px solid #f3dbe0;background:#faf6f7;display:flex;align-items:center;gap:5px;padding-left:14px}.art-window-top i{height:6px;width:6px;background:#eaa0ac;border-radius:50%}.art-window-text{height:11px;margin:20px 19px 0;width:63%;border-radius:9px;background:#e8e3e8}.art-window-text.short{width:44%;height:7px;margin-top:10px;background:#f1eaeb}.art-window-button{width:100px;height:23px;margin:12px 19px;background:#ce1b38;border-radius:20px}
.art-star{position:absolute;right:14%;top:22%;font-size:64px;color:#c71e39;transform:rotate(22deg)}
.art-network{position:absolute;left:8%;right:8%;top:42%;display:flex;align-items:center;justify-content:space-around;gap:4%;z-index:2}
.art-network b{height:88px;width:88px;border-radius:50%;background:#ffffff1e;border:1px solid #ffffff7c;backdrop-filter:blur(2px);display:grid;place-items:center;color:#fff;font-family:Arial,sans-serif;font-size:15px;letter-spacing:.1em;box-shadow:0 0 30px #ff596b1a}
.art-network b:nth-child(2){transform:translateY(-24px);background:#ffffff28}
.art-network-lines{position:absolute;left:18%;right:18%;top:53%;height:2px;background:#ffffff65;transform:rotate(-3deg)}
.article-body{padding:27px 28px 24px;display:flex;flex-direction:column;flex:1}
.article-meta{font-size:11px;font-weight:850;color:#c20d2c;display:flex;gap:10px;align-items:center}.article-meta i{font-size:9px;color:#969ca6;font-style:normal;font-weight:600}
.article-body h3{font-size:19px;line-height:1.65;letter-spacing:-.045em;margin:17px 0 12px}
.article-body p{font-size:12px;line-height:1.9;color:#777e8b;margin:0 0 23px}
.article-more{margin-top:auto;border-top:1px solid #e6e6ea;padding-top:18px;font-size:10px;color:#a70e29;font-family:Arial,sans-serif;font-weight:900;letter-spacing:.16em;display:flex;justify-content:space-between;align-items:center}.article-more span{font-size:18px}
/* FAQ */
.faq-section{background:#fff;padding:125px 0 140px}
.faq-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:9%}
.faq-side>p:nth-of-type(3){font-size:14px;color:#747a87;line-height:2;margin:24px 0 34px;max-width:390px}
.faq-list{border-top:1px solid #d6d9df}
.faq-list details{border-bottom:1px solid #d6d9df;padding:0 1px}
.faq-list summary{list-style:none;display:grid;grid-template-columns:40px 1fr 25px;gap:14px;align-items:center;padding:24px 7px;cursor:pointer;font-weight:780;font-size:14px;line-height:1.65;letter-spacing:-.02em}
.faq-list summary::-webkit-details-marker{display:none}
.faq-num{font-family:Arial,sans-serif;color:#cd102e;font-weight:900;font-size:11px;letter-spacing:.07em}
.faq-toggle{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#f6f6f8;color:#c91a35}
.faq-toggle:after{content:"+";font-size:22px;font-weight:300;line-height:1}
.faq-list details[open] .faq-toggle:after{content:"−"}
.faq-answer{color:#737b89;font-size:13px;line-height:2.1;padding:0 36px 26px 61px}
/* Contact */
.contact-section{background:#161a22;color:white;padding:132px 0 140px}
.contact-section:before{content:"";position:absolute;inset:-10% auto -30% -18%;width:95%;background:radial-gradient(ellipse at 35% 40%,#aa163727,transparent 65%)}
.contact-layout{display:grid;grid-template-columns:.94fr 1.06fr;gap:8%;align-items:start}
.contact-copy>p:nth-of-type(3){max-width:440px;color:#b5bac5;font-size:14px;line-height:2.1;margin:29px 0 40px}
.contact-flag{display:flex;align-items:center;gap:14px;border-top:1px solid #ffffff29;padding:22px 0;max-width:450px}
.contact-flag-icon{width:47px;height:47px;border-radius:50%;background:#bc1530;display:grid;place-items:center;font-size:24px}
.contact-flag b{display:block;font-size:13px}.contact-flag span{display:block;margin-top:6px;color:#aab1be;font-size:11px}
.contact-en{font-size:clamp(40px,5vw,75px);font-weight:950;font-family:Arial,sans-serif;letter-spacing:-.05em;line-height:1.1;color:#ffffff09;margin-top:70px}
.contact-form-panel{background:#fff;color:#1f2530;border-radius:19px;padding:43px 42px 35px;box-shadow:0 40px 90px #0002}
.contact-form-eyebrow{color:#ba0c28;font:850 10px Arial,sans-serif;letter-spacing:.18em}
.contact-form-panel h3{font-size:22px;letter-spacing:-.06em;margin:15px 0 9px}
.form-guidance{font-size:11px;color:#7d8490;line-height:1.7;margin:0 0 25px}
#contact-form{display:flex;flex-direction:column;gap:15px}
#contact-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
#contact-form label{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:800}
#contact-form label span,#contact-form label em{display:inline-block;color:#838b97;font-style:normal;font-size:9px;letter-spacing:.02em;margin-left:5px}
#contact-form label em{color:#d51a34}
#contact-form input,#contact-form select,#contact-form textarea{font-family:inherit;background:#f8f9fa;border:1px solid #e2e4e9;border-radius:7px;padding:13px 13px;width:100%;font-size:12px;color:#252b36;outline:none;transition:border-color .2s,box-shadow .2s}
#contact-form input:focus,#contact-form select:focus,#contact-form textarea:focus{border-color:#bd2038;box-shadow:0 0 0 3px #cd17311b}
#contact-form input::placeholder,#contact-form textarea::placeholder{color:#a3a9b3}
#contact-form textarea{resize:vertical;min-height:86px}
.contact-submit{font-family:inherit;border:0;background:linear-gradient(100deg,#8f0b20,#dd1131);color:#fff;border-radius:50px;min-height:51px;width:100%;display:flex;align-items:center;justify-content:center;gap:20px;font-weight:850;font-size:13px;margin-top:5px;transition:filter .2s}
.contact-submit:hover{filter:brightness(1.1)}.contact-submit span{font-size:18px}
.form-note{font-size:10px;color:#8c929b;line-height:1.8;margin:0}
#form-feedback{display:none;font-size:11px;line-height:1.7;padding:12px;background:#f0f8f4;color:#1d6950;border-radius:8px}#form-feedback.visible{display:block}#form-feedback.warn{color:#a63323;background:#fff4f0}
/* Footer */
.site-footer{background:#11151c;color:#e7eaf0;border-top:1px solid #ffffff17;padding:65px 0 28px}
.footer-top{display:flex;justify-content:space-between;gap:50px;padding-bottom:70px}
.footer-brand{font-size:46px;font-weight:950;line-height:1;letter-spacing:-.06em}.footer-brand span{display:block;font-family:Arial,sans-serif;font-size:12px;letter-spacing:.13em;margin-top:6px;font-weight:500}
.footer-top p{color:#939ba7;font-size:13px;line-height:1.9;margin-top:24px}
.footer-links{display:grid;grid-template-columns:repeat(2,1fr);column-gap:45px;row-gap:17px;align-content:start}
.footer-links a{font-size:12px;color:#d8dce4;transition:color .2s}.footer-links a:hover{color:#ff7386}
.footer-bottom{border-top:1px solid #ffffff24;padding-top:25px;display:flex;align-items:center;gap:28px;color:#7d8592;font-size:10px;letter-spacing:.04em}
.footer-bottom>a{margin-left:auto;color:#eceef4;font-weight:800;font-size:10px;letter-spacing:.14em}
/* Tablet and compact laptop */
@media(max-width:1100px){.container{width:calc(100% - 58px)}.reasons-grid{grid-template-columns:repeat(2,1fr)}.reason-card{min-height:285px}.reason-card h3{margin-top:22px}.about-layout{gap:1%}.orbit-one{width:280px;height:280px}.orbit-two{width:370px;height:370px}.orbit-three{width:440px;height:440px}.orbit-core{width:215px;height:215px}.orbit-core strong{font-size:65px}.route-result{grid-template-columns:95px 1fr}.route-result-body{flex-direction:column;align-items:flex-start}.article-art{height:190px}.contact-layout{gap:4%}.contact-form-panel{padding:34px 28px}}
@media(max-width:720px){
#preview{scroll-padding-top:76px}.container{width:calc(100% - 42px)}.site-section{scroll-margin-top:75px}
#hero-content{width:91%}.section-kicker{font-size:11px}.section-jp-label{font-size:11px}
.display-h2{font-size:clamp(29px,7.6vw,48px)}
.about-section{padding:95px 0 25px}.about-layout{grid-template-columns:1fr}.about-lead h2{white-space:normal}.about-description{font-size:12px;line-height:2.1}.about-design{height:355px;margin:10px 0 0}.orbit-one{width:215px;height:215px}.orbit-two{width:290px;height:290px}.orbit-three{width:350px;height:350px}.orbit-core{width:165px;height:165px}.orbit-core strong{font-size:53px}.orbit-core span,.orbit-core small{font-size:7px}.orbit-pill{padding:8px 10px;font-size:8px}.pill-top{top:14%;right:5%}.pill-left{left:0}.pill-bottom{bottom:10%;right:2%}.about-bottom-copy{font-size:30px;bottom:0}.about-foot{margin-top:25px;gap:10px;letter-spacing:.07em;font-size:9px}
.reasons-section,.routes-section,.voices-section,.journal-section,.faq-section,.contact-section{padding:88px 0}
.reasons-heading{grid-template-columns:1fr;gap:20px;margin-bottom:32px}.reasons-intro{font-size:12px;margin-top:17px}.reasons-grid{gap:11px}.reason-card{padding:22px 18px 18px;min-height:300px}.reason-card h3{font-size:17px;margin:21px 0 12px}.reason-card p{font-size:11px}.reason-icon{width:36px;height:36px;font-size:19px}.statement-strip{display:block;padding:22px}.statement-strip p{font-size:15px;margin-top:10px}.strip-arrow{display:none}
.center-heading{margin-bottom:35px}.center-heading p:last-child{font-size:12px}.route-grid{grid-template-columns:1fr;gap:10px}.route-option{min-height:325px;padding:26px 25px 21px}.route-tag{margin:40px 0 10px}.route-option strong{font-size:26px}.route-desc{font-size:12px;max-width:340px;margin:13px 0 23px}.route-symbol{right:25px;top:22px;width:50px;height:50px}.route-result{grid-template-columns:1fr;gap:12px;padding:24px}.route-result-label{display:flex;gap:10px;align-items:center;border:0;font-size:9px}.route-result-label span{font-size:22px;margin:0}.route-result-body h3{font-size:17px}.route-result-body p{font-size:12px}.route-result-link{font-size:11px;padding:13px 16px}
.section-row-heading{display:block;margin-bottom:33px}.section-heading-description{margin-top:19px;font-size:12px}.voices-grid,.article-grid{grid-template-columns:1fr;gap:13px}.voice-card{min-height:320px;padding:23px}.voice-quotation{font-size:69px;height:60px}.voice-card h3{font-size:18px}.article-card{min-height:unset}.article-art{height:220px}.article-body h3{font-size:19px}.article-body{min-height:240px}.prototype-caption{font-size:10px}
.faq-layout{grid-template-columns:1fr;gap:33px}.faq-side>p:nth-of-type(3){font-size:12px}.faq-list summary{padding:21px 0;font-size:12px;grid-template-columns:33px 1fr 23px;gap:9px}.faq-answer{font-size:12px;padding:0 20px 21px 42px}
.contact-layout{grid-template-columns:1fr;gap:43px}.contact-copy>p:nth-of-type(3){font-size:13px}.contact-en{display:none}.contact-form-panel{padding:30px 22px 27px}.contact-form-panel h3{font-size:20px}.footer-top{display:block;padding-bottom:40px}.footer-links{margin-top:35px;column-gap:10px}.footer-bottom{flex-wrap:wrap;gap:12px}.footer-bottom>a{margin-left:0;width:100%}
#tools button{padding:9px 11px;font-size:10px}#demo-label{display:none}
}
@media(max-width:390px){.reasons-grid{grid-template-columns:1fr}.reason-card{min-height:235px}.route-option strong{font-size:23px}#contact-form .form-row{grid-template-columns:1fr}.section-kicker{font-size:10px}.about-foot{font-size:8px}.orbit-pill{font-size:7px}.route-option{min-height:330px}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important;transition:none!important}}


/* v0.2 four-path selector refinements */
.route-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}
.route-group-heading{grid-column:1/-1;display:flex;align-items:center;gap:15px;min-width:0;margin:0 0 2px;padding:0 2px 12px;border-bottom:1px solid #dadddf}
.route-group-heading>span{color:#b50f29;font:800 11px Arial,sans-serif;letter-spacing:.15em}
.route-group-heading strong{font-size:15px;font-weight:900;letter-spacing:-.045em}
.route-group-heading small{margin-left:auto;font:700 10px Arial,sans-serif;letter-spacing:.16em;color:#abb0b9}
.route-group-second{margin-top:34px}
.route-option{min-height:316px;padding:31px 33px 26px;isolation:isolate}
.route-option:first-child{background:#fff;color:#20242e}
.route-existing{background:linear-gradient(140deg,#241923,#101722);color:#fff}
.route-existing.selected{border-color:#f54360}
.route-existing .route-tag,.route-existing .route-desc{color:#b5b9c1}
.route-existing .route-action{border-color:#ffffff37}
.route-option:not(.route-existing) .route-no{color:#c60e2f}
.route-option:not(.route-existing) .route-tag{color:#747b87}
.route-option:not(.route-existing) .route-desc{color:#6b7280}
.route-option:not(.route-existing) .route-symbol{border-color:#e2d8dc;color:#b90f29}
.route-option:not(.route-existing) .route-action{border-color:#e0e0e5}
.route-inhouse{background:#fdfaf9}
.route-franchise{background:#f9f9fc}
.route-option .route-tag{margin:39px 0 11px}
.route-option strong{font-size:clamp(21px,2.1vw,30px);line-height:1.48;position:relative;z-index:1}
.route-option .route-desc{margin:13px 0 22px;font-size:12px;line-height:1.9;position:relative;z-index:1}
.route-option .route-action{padding-top:16px;position:relative;z-index:1}
.route-symbol{right:30px;top:25px;width:53px;height:53px}
.route-option:focus-visible{outline:3px solid #f25877;outline-offset:3px}
@media(max-width:720px){
.route-grid{grid-template-columns:1fr;gap:11px}
.route-group-heading{gap:10px;flex-wrap:wrap;margin:0 0 4px;padding-bottom:14px}
.route-group-heading strong{font-size:13px}
.route-group-heading small{width:100%;margin:0 0 0 54px;font-size:9px}
.route-group-second{margin-top:20px}
.route-option{min-height:230px;padding:22px 25px 19px}
.route-option .route-tag{margin:27px 0 8px;font-size:11px}
.route-option strong{font-size:clamp(20px,5.1vw,26px)}
.route-option .route-desc{margin:10px 0 18px;font-size:11px}
.route-option .route-action{padding-top:12px}
.route-symbol{top:19px;right:23px;width:44px;height:44px;font-size:21px}
}
@media(max-width:390px){.route-option{min-height:235px;padding:20px 21px 18px}.route-option strong{font-size:20px}.route-option .route-tag{font-size:10px}}

/* v0.3: English statement contrast / GPJ-red accents on white text panel */
.about-bottom-copy{
  color:#ffffff;
  font-size:clamp(30px,3vw,44px);
  bottom:-2%;left:2.5%;z-index:3;
  text-shadow:0 5px 20px rgba(0,0,0,.34);
}
.contact-en{
  color:#ffffff;
  font-size:clamp(38px,4.8vw,72px);
  text-shadow:0 5px 24px rgba(0,0,0,.26);
}
/* White consultation card: red letter treatment and outline, keeping controls legible */
.contact-form-panel{
  border:1.5px solid #cb1838;
  box-shadow:0 40px 90px rgba(0,0,0,.14),0 0 0 5px rgba(197,17,48,.04);
}
.contact-form-panel h3{color:#b20c2a}
@media(max-width:720px){
  .about-bottom-copy{font-size:clamp(26px,8vw,34px);left:3%;bottom:-1%}
  .contact-en{display:block;font-size:clamp(30px,8vw,44px);margin-top:37px}
}
@media(max-width:390px){
  .about-bottom-copy{font-size:26px;bottom:0}
}


/* 03 / One-stop support, inserted after reasons */
.solutions-section{background:#131922;color:#fff;padding:136px 0 109px;isolation:isolate}
.solutions-glow{position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 900px 650px at 86% 20%,rgba(195,20,52,.16),transparent 67%),radial-gradient(ellipse 550px 600px at 8% 85%,rgba(112,17,42,.21),transparent 72%)}
.solutions-section:before{content:"";position:absolute;inset:0;z-index:0;opacity:.38;background-image:linear-gradient(to right,#ffffff08 1px,transparent 1px),linear-gradient(to bottom,#ffffff08 1px,transparent 1px);background-size:94px 94px;mask-image:radial-gradient(ellipse at 65% 44%,#000,transparent 74%)}
.solutions-watermark{position:absolute;right:-2%;top:0;font:900 clamp(86px,13vw,235px)/.93 Arial,sans-serif;letter-spacing:-.075em;color:#fff;opacity:.018;text-align:right;white-space:nowrap;pointer-events:none;user-select:none}
.solutions-header{display:grid;grid-template-columns:1.05fr .95fr;gap:7%;align-items:end;margin-bottom:55px}
.solutions-title{color:#fff;font-size:clamp(35px,4.55vw,66px);white-space:nowrap}
.solutions-title span{color:#ff566e}
.solutions-header-aside{padding:0 0 9px}
.solutions-lead{font-size:14px;line-height:2.1;color:#c2c8d1;font-weight:500;margin:0 0 25px;max-width:560px}
.solutions-consult{display:flex;align-items:center;gap:18px;padding:18px 20px;border:1px solid #ffffff24;border-radius:16px;background:linear-gradient(110deg,#ffffff10,#ffffff04);min-height:91px;box-shadow:0 18px 37px #0001}
.solutions-consult-mark{flex:0 0 48px;width:48px;height:48px;border:1px solid #f2678444;background:#cc17302d;color:#ff879c;border-radius:13px;display:grid;place-items:center;position:relative}
.solutions-consult-mark svg{width:25px;height:25px}
.solutions-pulse{position:absolute;right:-4px;top:-4px;width:9px;height:9px;border-radius:50%;background:#ff5f78;box-shadow:0 0 0 4px #fa5b6d2b;animation:solutionsPulse 2.8s ease-in-out infinite}
@keyframes solutionsPulse{50%{box-shadow:0 0 0 9px #fa5b6d08}}
.solutions-consult strong{display:block;font-size:19px;letter-spacing:-.03em;margin-bottom:5px}
.solutions-consult p{margin:0;font-size:11px;line-height:1.6;color:#b2bac6}
.solutions-consult-arrow{margin-left:auto;flex:0 0 30px;font-size:23px;color:#ff7287;align-self:center;transition:translate .2s}
.solutions-consult-arrow:hover{translate:3px -3px}
.solutions-process{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:22px 26px;margin-bottom:20px;border:1px solid #ffffff1c;background:#ffffff04;border-radius:12px}
.solutions-process-label{font:800 10px Arial,sans-serif;color:#ff6e85;letter-spacing:.18em;white-space:nowrap}
.solutions-steps{display:flex;align-items:center;flex:1;justify-content:space-between;max-width:755px;gap:13px;color:#c4cbd7;font-size:12px;font-weight:750;white-space:nowrap}
.solutions-steps i{flex:1;height:1px;min-width:14px;max-width:75px;background:linear-gradient(to right,#f35d73,#ffffff33);position:relative}
.solutions-steps i:after{content:"";position:absolute;right:0;top:-3px;width:6px;height:6px;border-top:1px solid #fb788a;border-right:1px solid #fb788a;transform:rotate(45deg)}
.solutions-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.solutions-card{position:relative;min-width:0;min-height:415px;display:flex;flex-direction:column;padding:26px 25px 23px;border:1px solid #ffffff25;background:linear-gradient(139deg,#252c37 0%,#1b222d 100%);border-radius:16px;color:#fff;overflow:hidden;transition:background .35s,border-color .35s,box-shadow .35s,transform .35s;isolation:isolate}
.solutions-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,#a91531,#fa4a61,#ff9eac);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.solutions-card:after{content:"";position:absolute;right:-100px;top:-135px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,#dd204233,transparent 65%);opacity:.2;transition:opacity .35s;pointer-events:none}
.solutions-card:hover,.solutions-card:focus-visible{transform:translateY(-8px);border-color:#f068806f;background:linear-gradient(139deg,#30313e,#202631);box-shadow:0 33px 55px #0004;outline:none}
.solutions-card:hover:before,.solutions-card:focus-visible:before{transform:scaleX(1)}.solutions-card:hover:after{opacity:1}
.solutions-card-top{display:flex;align-items:center;justify-content:space-between;gap:9px;color:#aeb7c4;font:800 10px Arial,sans-serif;letter-spacing:.15em;position:relative;z-index:1}
.solutions-card-arrow{font-size:17px;color:#ff7387;transition:transform .2s}
.solutions-card:hover .solutions-card-arrow{transform:translate(3px,-3px)}
.solutions-icon{width:67px;height:67px;display:grid;place-items:center;border:1px solid #e6304b50;background:#e6304b13;color:#ff667c;border-radius:17px;margin:45px 0 24px;position:relative;z-index:1}
.solutions-icon svg{width:43px;height:43px;display:block}
.solutions-card h3{font-size:clamp(20px,1.56vw,24px);line-height:1.4;letter-spacing:-.06em;margin:0 0 14px;font-weight:900;white-space:nowrap}
.solutions-tags{display:flex;flex-wrap:wrap;gap:6px;min-height:29px;align-items:start;margin:0 0 18px}
.solutions-tags span{font-size:10px;border:1px solid #f4698461;border-radius:25px;padding:7px 9px;line-height:1;color:#ffa4b2;font-weight:750;background:#db1e3e0f}
.solutions-card>p{margin:0 0 19px;color:#b7c0cd;font-size:11px;line-height:1.95}
.solutions-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#fff;border-top:1px solid #ffffff22;padding-top:15px;margin-top:auto;font-size:10px;font-weight:850;letter-spacing:.01em}
.solutions-card-footer span{font-size:17px;color:#ff697e}
.solutions-bottom{display:flex;align-items:center;justify-content:space-between;gap:26px;padding-top:37px;margin-top:25px;border-top:1px solid #ffffff25}
.solutions-bottom-caption{display:flex;align-items:flex-start;gap:14px}
.solutions-bottom-dot{flex:0 0 7px;width:7px;height:7px;background:#ff5f78;border-radius:50%;margin-top:9px;box-shadow:0 0 0 6px #d9213e16}
.solutions-bottom p{font-size:13px;line-height:1.95;color:#a9b2bf;margin:0}
.solutions-bottom p strong{color:#fff;font-weight:750}
.solutions-main-cta{flex:0 0 auto;display:inline-flex;gap:30px;align-items:center;justify-content:space-between;padding:17px 25px;color:#fff;background:linear-gradient(108deg,#9a0b20,#e40e31);border-radius:40px;font-size:12px;font-weight:850;box-shadow:0 15px 30px #c11c3b26;transition:transform .25s}
.solutions-main-cta:hover{transform:translateY(-3px)}
.solutions-main-cta span{font-size:17px}
@media(max-width:1180px){.solutions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.solutions-card{min-height:338px}.solutions-icon{margin-top:25px}.solutions-header{gap:5%}.solutions-title{white-space:normal}.solutions-process{gap:20px}.solutions-steps{gap:9px}.solutions-steps i{max-width:45px}}
@media(max-width:790px){.solutions-section{padding:88px 0 85px}.solutions-header{grid-template-columns:1fr;gap:25px;margin-bottom:32px}.solutions-title{font-size:clamp(33px,6vw,48px)}.solutions-lead{font-size:12px;margin-bottom:20px}.solutions-consult{max-width:590px}.solutions-process{display:block}.solutions-process-label{display:block;margin-bottom:17px}.solutions-steps{max-width:100%}.solutions-card{padding:24px}.solutions-card h3{font-size:23px}}
@media(max-width:590px){.solutions-header{gap:20px}.solutions-title{font-size:clamp(29px,7.5vw,43px)}.solutions-grid{grid-template-columns:1fr;gap:12px}.solutions-card{min-height:312px;padding:23px 23px 19px}.solutions-icon{margin:19px 0 18px;width:55px;height:55px;border-radius:12px}.solutions-icon svg{width:35px;height:35px}.solutions-card h3{font-size:23px;margin-bottom:13px}.solutions-card>p{max-width:390px;margin-bottom:20px}.solutions-process{padding:19px 17px;margin-bottom:13px}.solutions-process-label{font-size:9px}.solutions-steps{font-size:10px;gap:6px}.solutions-steps i{min-width:8px}.solutions-consult{gap:13px;padding:14px 13px;min-height:78px}.solutions-consult-mark{flex-basis:42px;width:42px;height:42px}.solutions-consult strong{font-size:17px}.solutions-consult p{font-size:10px}.solutions-bottom{flex-direction:column;align-items:stretch;gap:21px;margin-top:17px;padding-top:24px}.solutions-main-cta{justify-content:center;gap:36px}}
@media(max-width:350px){.solutions-steps{font-size:9px}.solutions-consult strong{font-size:15px}.solutions-consult p{font-size:9px}.solutions-card h3{font-size:21px}}
@media(min-width:721px) and (max-width:980px){#nav .nav-list a:nth-child(n+5){display:none}#nav{gap:18px}#nav .nav-list{gap:15px}}
@media(prefers-reduced-motion:reduce){.solutions-pulse{animation:none!important}}


/* Typing effect v2: Preserve the original DOM, including line breaks and styling. */
.typing-target .typing-char{
  display:inline !important;
  position:relative;
  opacity:0;
  visibility:hidden;
  color:inherit !important; /* Prevents generic h2 span rules from recoloring each typed character */
  transition:opacity 110ms ease;
  white-space:pre;
}
.typing-target .typing-char.typing-visible{
  opacity:1;
  visibility:visible;
}
.typing-target .typing-char.typing-caret::after{
  content:"";
  position:absolute;
  z-index:2;
  height:.86em;
  width:2px;
  right:-3px;
  top:.12em;
  background:var(--red,#d70d2a);
  animation:gpjCaretBlink .8s steps(1,end) infinite;
}
@keyframes gpjCaretBlink{50%{opacity:0}}
@media(prefers-reduced-motion:reduce){
  .typing-target .typing-char{opacity:1!important;visibility:visible!important;transition:none!important}
  .typing-target .typing-char.typing-caret::after{display:none!important}
}



/* =====================================================
  Growth Partners Japan – Shared official site navigation
  Designed as a reusable header/footer for the WP theme.
===================================================== */
.gpj-site-header {height:82px!important;min-height:82px!important;padding:0 clamp(20px,3.6vw,66px)!important;display:block!important;background:rgba(255,255,255,.97)!important;border-bottom:1px solid #ebe6e8!important;z-index:900!important;backdrop-filter:blur(22px)!important;-webkit-backdrop-filter:blur(22px)!important;box-shadow:0 8px 32px #1a142008!important;overflow:visible!important}
#nav.gpj-site-header{margin-bottom:-82px!important}
.gpj-header-inner{height:100%;width:100%;display:flex;align-items:center;justify-content:space-between;gap:22px}
.gpj-brand-link{display:inline-flex;align-items:center;justify-content:flex-start;flex-shrink:0;width:148px;height:65px;transition:opacity .2s}
.gpj-brand-link:hover{opacity:.8}
.gpj-brand-link img{width:100%;height:100%;object-fit:contain;display:block}
.gpj-desktop-nav{display:flex;align-items:center;justify-content:center;gap:clamp(11px,1.6vw,25px);margin-left:auto;height:100%;white-space:nowrap}
.gpj-nav-link{height:100%;display:inline-flex;align-items:center;font-size:12px;font-weight:750;letter-spacing:-.025em;color:#262835!important;position:relative;white-space:nowrap;transition:color .2s}
.gpj-nav-link:hover,.gpj-nav-link.gpj-active,.gpj-nav-group:hover>.gpj-nav-link,.gpj-nav-group.open>.gpj-nav-link{color:#c70d2d!important}
.gpj-nav-link.gpj-active:after{position:absolute;content:"";height:3px;bottom:18px;left:0;right:0;border-radius:5px;background:#d41230}
.gpj-nav-group{position:relative;display:flex;align-items:center;height:100%;gap:3px}
.gpj-nav-toggle{color:#6f7682!important;border:0!important;background:transparent!important;display:inline-flex;align-items:center;justify-content:center;padding:6px 3px!important;cursor:pointer}
.gpj-nav-toggle svg{transition:transform .2s}
.gpj-nav-group.open .gpj-nav-toggle svg,.gpj-nav-group:hover .gpj-nav-toggle svg,.gpj-nav-group:focus-within .gpj-nav-toggle svg{transform:rotate(180deg)}
.gpj-dropdown{position:absolute;z-index:1000;top:calc(100% - 7px);left:-25px;min-width:292px;max-width:355px;padding:20px 10px 12px;background:#fff;box-shadow:0 22px 70px rgba(19,25,39,.17);border:1px solid #e9e6e9;border-radius:13px;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .22s,visibility .22s,transform .22s;white-space:normal;pointer-events:none}
.gpj-nav-group:hover .gpj-dropdown,.gpj-nav-group:focus-within .gpj-dropdown,.gpj-nav-group.open .gpj-dropdown{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
.gpj-drop-caption{font:800 10px/1.5 Arial,sans-serif;letter-spacing:.15em;color:#be1938;padding:0 14px 10px;margin:0 0 5px;border-bottom:1px solid #f0ebec}
.gpj-menu-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px!important;min-height:43px;color:#2d303b!important;border-radius:8px;font-size:12px!important;font-weight:750!important;white-space:normal;line-height:1.5;transition:background .15s,color .15s;text-decoration:none}
.gpj-menu-item small{font-size:9px;font-weight:600;color:#9299a5;flex-shrink:0;text-align:right;max-width:120px;line-height:1.5}
.gpj-menu-item[href]:hover{background:#fff2f4;color:#c3102e!important}
.gpj-menu-pending{color:#a2a6b0!important;cursor:default}
.gpj-menu-pending small{background:#f0f1f3;border-radius:25px;padding:2px 8px;font-size:9px;color:#9b9da5}
.gpj-header-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}
.gpj-header-cta{border-radius:40px;padding:14px 20px;min-width:132px;display:flex;align-items:center;gap:22px;justify-content:space-between;background:linear-gradient(115deg,#910c1e,#e50f2b);box-shadow:0 8px 24px rgba(173,10,34,.16);color:white!important;font-size:12px;font-weight:850;white-space:nowrap;transition:transform .2s,box-shadow .2s}
.gpj-header-cta:hover{transform:translateY(-2px);box-shadow:0 11px 24px rgba(173,10,34,.24)}
.gpj-menu-toggle{display:none;border:1px solid #e9e6e9!important;border-radius:50%;background:#fff!important;color:#202430!important;width:43px;height:43px;padding:0!important;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer}
.gpj-toggle-lines{display:flex;flex-direction:column;gap:4px}
.gpj-toggle-lines i{display:block;background:#20242a;width:17px;height:2px;border-radius:3px;transition:transform .2s,opacity .2s}
.gpj-menu-toggle[aria-expanded="true"] .gpj-toggle-lines i:nth-child(1){transform:translateY(6px) rotate(45deg)}
.gpj-menu-toggle[aria-expanded="true"] .gpj-toggle-lines i:nth-child(2){opacity:0}
.gpj-menu-toggle[aria-expanded="true"] .gpj-toggle-lines i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.gpj-mobile-drawer{display:none;position:absolute;top:82px;left:0;right:0;height:min(calc(100dvh - 82px),700px);background:#fff;overflow-y:auto;overscroll-behavior:contain;padding:8px 22px 30px;box-shadow:0 23px 54px rgba(22,19,29,.2);border-bottom:1px solid #ebe8ea;z-index:1200}
.gpj-mobile-drawer.is-open{display:block}
.gpj-mobile-link{display:flex;justify-content:space-between;align-items:center;padding:17px 2px;border-bottom:1px solid #eee;font-size:18px;font-weight:850;color:#212633!important}
.gpj-mobile-link span{color:#c70d2d}
.gpj-mobile-group{margin:24px 0 26px}
.gpj-mobile-group>p{font:850 11px Arial,sans-serif;color:#b90f2e;letter-spacing:.18em;margin:0 0 8px}
.gpj-mobile-group>.gpj-menu-item{border-bottom:1px solid #f2f2f3!important;border-radius:0;padding:11px 2px!important;display:flex;font-size:14px!important}
.gpj-mobile-group>.gpj-menu-item small{font-size:10px}
.gpj-mobile-cta{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(120deg,#950c20,#dc102d);color:#fff!important;padding:17px 20px;border-radius:30px;font-size:14px;font-weight:850}
.gpj-mobile-note{font-size:11px;color:#969aa5;line-height:1.7}
.gpj-global-footer{background:#10131b!important;color:#c2c4ce!important;padding:70px clamp(22px,6vw,95px) 30px!important;position:relative;z-index:1}
.gpj-footer-top{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:clamp(20px,3.7vw,64px);max-width:1440px;margin:0 auto 60px}
.gpj-footer-about img{display:block;width:172px;max-height:75px;object-fit:contain;background:white;border-radius:6px;padding:6px}
.gpj-footer-about p{font-size:16px!important;line-height:1.85;color:#fff!important;font-weight:750;margin:27px 0 14px}
.gpj-footer-about span{font:700 10px Arial,sans-serif;color:#939aa9;letter-spacing:.14em}
.gpj-footer-group{display:flex;flex-direction:column;align-items:flex-start;gap:13px}
.gpj-footer-group strong{font-size:13px;color:white;margin-bottom:10px}
.gpj-footer-group a{font-size:12px;color:#c0c6d1!important;line-height:1.7;transition:color .15s}
.gpj-footer-group a:hover{color:#ff667f!important}
.gpj-footer-pending{font-size:11px;color:#767c89;line-height:1.7}
.gpj-footer-bottom{max-width:1440px;margin:auto;border-top:1px solid #ffffff1b;padding-top:26px;display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap;font-size:10px;color:#848c9a}
.gpj-footer-bottom>div{display:flex;gap:15px;flex-wrap:wrap}
.gpj-footer-bottom a{color:#e1e2e6!important;font-size:11px}
.gpj-about-breadcrumb{position:absolute;left:7%;top:18px;z-index:15;display:flex;align-items:center;gap:11px;color:#b4b4c0;font-size:11px;font-weight:750}
.gpj-about-breadcrumb a{color:#d9d7dc!important}.gpj-about-breadcrumb a:hover{color:#fff!important}
.gpj-about-breadcrumb b{color:#ff6d84;font-weight:700}
@media(max-width:1190px){
 .gpj-desktop-nav{display:none!important}
 .gpj-menu-toggle{display:flex!important}
 .gpj-site-header{height:74px!important;min-height:74px!important;padding:0 24px!important}
 #nav.gpj-site-header{margin-bottom:-74px!important}
 .gpj-mobile-drawer{top:74px;height:calc(100dvh - 74px)}
 .gpj-brand-link{width:137px;height:59px}
 .gpj-footer-top{grid-template-columns:1.5fr 1fr 1fr;gap:30px}
 .gpj-footer-about{grid-column:1 / -1}
}
@media(max-width:720px){
 .gpj-site-header{height:70px!important;min-height:70px!important;padding:0 17px!important}
 #nav.gpj-site-header{margin-bottom:-70px!important}
 .gpj-mobile-drawer{top:70px;height:calc(100dvh - 70px)}
 .gpj-brand-link{width:117px;height:50px}
 .gpj-header-cta{padding:12px 13px;min-width:auto;gap:9px;font-size:10px}
 .gpj-header-inner{gap:7px}
 .gpj-menu-toggle{width:42px;height:42px}
 .gpj-footer-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:37px 16px}
 .gpj-footer-about{grid-column:1 / -1}
 .gpj-global-footer{padding:65px 22px 26px!important}
 .gpj-footer-group strong{font-size:12px}.gpj-footer-group a{font-size:11px}
 .gpj-footer-bottom{align-items:flex-start;flex-direction:column;font-size:10px}
 .gpj-about-breadcrumb{font-size:10px;left:6%;top:16px}
}
@media(max-width:360px){.gpj-header-cta{padding:11px 10px;font-size:9px}.gpj-brand-link{width:108px}.gpj-site-header{padding:0 12px!important}}
@media(prefers-reduced-motion:reduce){.gpj-dropdown,.gpj-menu-toggle *{transition:none!important}}

#preview{scroll-padding-top:82px}
@media(max-width:1190px){#preview{scroll-padding-top:74px}}
@media(max-width:720px){#preview{scroll-padding-top:70px}}

/* GPJ official website: cinematic global navigation and white page transition */
.gpj-site-header.gpj-cinema-header{
 height:82px!important;min-height:82px!important;position:sticky!important;top:0!important;
 z-index:1000!important;width:100%!important;display:flex!important;align-items:center!important;
 padding:0 clamp(18px,4.8vw,76px)!important;margin:0!important;
 border-bottom:1px solid rgba(26,28,36,.085)!important;
 background:rgba(255,255,255,.965)!important;
 backdrop-filter:blur(22px)!important;-webkit-backdrop-filter:blur(22px)!important;
 box-shadow:0 6px 27px rgba(10,12,25,.035)!important;isolation:isolate;
}
body[data-gpj-page="home"] .gpj-site-header.gpj-cinema-header{margin-bottom:-82px!important}
.gpj-cinema-header .gpj-cinema-head-inner{width:100%;height:100%;display:flex;align-items:center;gap:24px;justify-content:space-between;min-width:0}
.gpj-cinema-header .gpj-cinema-brand{width:152px;display:flex;align-items:center;flex-shrink:0;position:relative;z-index:2}
.gpj-cinema-header .gpj-cinema-brand img{width:100%;height:64px;object-fit:contain;display:block}
.gpj-cinema-header .gpj-cinema-quick{display:flex;align-items:center;justify-content:center;gap:clamp(24px,2.8vw,48px);margin-left:auto}
.gpj-cinema-header .gpj-cinema-quick a{position:relative;display:inline-flex;align-items:center;overflow:hidden;padding:12px 0;font:700 11px/1.2 Arial,'Hiragino Kaku Gothic ProN',sans-serif;letter-spacing:.16em;color:#23242b!important;white-space:nowrap;transition:color .3s}
.gpj-cinema-header .gpj-cinema-quick a:after{content:"";position:absolute;left:0;right:100%;height:1px;bottom:6px;background:#d00e2a;transition:right .42s cubic-bezier(.2,.8,.2,1)}
.gpj-cinema-header .gpj-cinema-quick a:hover:after,.gpj-cinema-header .gpj-cinema-quick a[aria-current=page]:after{right:0}
.gpj-cinema-header .gpj-cinema-quick a:hover,.gpj-cinema-header .gpj-cinema-quick a[aria-current=page]{color:#bd1029!important}
.gpj-cinema-header .gpj-cinema-actions{display:flex;align-items:center;gap:clamp(13px,1.7vw,25px);margin-left:clamp(10px,2vw,27px)}
.gpj-cinema-consult{color:#fff!important;background:linear-gradient(115deg,#87091c,#e10d31);border-radius:100px;padding:14px 23px;text-align:center;white-space:nowrap;font-size:12px;font-weight:800;letter-spacing:.025em;box-shadow:0 9px 20px rgba(161,13,38,.16);transition:transform .26s,box-shadow .26s}
.gpj-cinema-consult:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(161,13,38,.24)}
.gpj-cinema-menu-trigger{display:inline-flex!important;align-items:center;gap:13px;background:transparent!important;border:0!important;padding:0!important;color:#171b22!important;cursor:pointer;white-space:nowrap;z-index:2;flex-shrink:0}
.gpj-menu-word{font:800 11px/1 Arial,sans-serif;letter-spacing:.22em;color:#20232b;transition:letter-spacing .24s,color .24s}
.gpj-cinema-menu-trigger:hover .gpj-menu-word{letter-spacing:.3em;color:#d20c2b}
.gpj-menu-disc{width:52px;height:52px;border:1px solid #d3c9cc;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;transition:transform .68s cubic-bezier(.16,1,.3,1),border-color .3s,background .3s,box-shadow .3s}
.gpj-menu-disc:after{content:"";position:absolute;inset:5px;border:1px solid #f4e6e8;border-radius:50%;transition:transform .75s cubic-bezier(.16,1,.3,1)}
.gpj-cinema-menu-trigger:hover .gpj-menu-disc{transform:rotate(110deg);border-color:#cc1430;box-shadow:0 0 0 6px #b3112910}
.gpj-cinema-menu-trigger:hover .gpj-menu-disc:after{transform:rotate(90deg)}
.gpj-menu-glyph{position:relative;width:18px;height:18px;display:block;z-index:1;transition:transform .6s}
.gpj-menu-glyph i{position:absolute;left:0;width:100%;height:1.5px;background:#161923;display:block;transform-origin:center center;transition:transform .55s cubic-bezier(.2,.8,.2,1),top .55s,background .3s}
.gpj-menu-glyph i:nth-child(1){top:5px}.gpj-menu-glyph i:nth-child(2){top:12px}
.gpj-cinema-menu-trigger[aria-expanded=true] .gpj-menu-disc{transform:rotate(180deg);background:#b80d29;border-color:#b80d29}
.gpj-cinema-menu-trigger[aria-expanded=true] .gpj-menu-glyph{transform:rotate(-180deg)}
.gpj-cinema-menu-trigger[aria-expanded=true] .gpj-menu-glyph i{background:white}
.gpj-cinema-menu-trigger[aria-expanded=true] .gpj-menu-glyph i:first-child{top:9px;transform:rotate(45deg)}
.gpj-cinema-menu-trigger[aria-expanded=true] .gpj-menu-glyph i:last-child{top:9px;transform:rotate(-45deg)}
.gpj-cinema-drawer{position:fixed;z-index:9999;inset:0;height:100dvh;overflow:auto;visibility:hidden;pointer-events:none;opacity:0;
 clip-path:circle(0% at calc(100% - 62px) 43px);
 background:radial-gradient(ellipse at 89% 6%,#f9e8e9 0%,#fff 42%,#fbfaf9 100%);
 transition:clip-path .88s cubic-bezier(.76,0,.19,1),opacity .26s ease,visibility 0s .88s;
 overscroll-behavior:contain;isolation:isolate;color:#151821;
}
.gpj-cinema-drawer.is-open{visibility:visible;pointer-events:auto;opacity:1;clip-path:circle(185vmax at calc(100% - 62px) 43px);transition:clip-path .88s cubic-bezier(.76,0,.19,1),opacity .28s ease,visibility 0s 0s}
.gpj-cinema-drawer:after{content:"GROWTH";font:900 clamp(110px,19vw,360px)/1 Arial,sans-serif;letter-spacing:-.09em;color:rgba(188,11,40,.028);position:fixed;bottom:-.16em;right:-.15em;pointer-events:none;z-index:-1;white-space:nowrap}
.gpj-cinema-arc{position:fixed;width:68vmin;height:68vmin;border-radius:50%;right:-20vmin;top:-25vmin;border:1px solid rgba(196,17,42,.12);box-shadow:0 0 0 60px rgba(196,17,42,.024),0 0 0 130px rgba(196,17,42,.012);opacity:.65;transform:rotate(-50deg) scale(.8);transition:transform 1.2s cubic-bezier(.16,1,.3,1);pointer-events:none}
.gpj-cinema-drawer.is-open .gpj-cinema-arc{transform:rotate(45deg) scale(1)}
.gpj-cinema-drawer-head{min-height:82px;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:13px clamp(19px,5vw,84px);border-bottom:1px solid #ede2e4;position:relative}
.gpj-cinema-drawer-head .gpj-cinema-overline{font:700 11px Arial,sans-serif;letter-spacing:.22em;color:#a52539}
.gpj-cinema-close{display:flex;align-items:center;gap:15px;cursor:pointer;background:none!important;border:0!important;padding:2px!important;font:800 12px Arial,sans-serif;letter-spacing:.16em;color:#1d222a!important}
.gpj-cinema-close-ring{width:48px;height:48px;border-radius:50%;background:#bd0f2a;color:white;display:grid;place-items:center;font-size:22px;line-height:1;transform:rotate(-180deg);transition:transform .6s cubic-bezier(.16,1,.3,1)}
.gpj-cinema-drawer.is-open .gpj-cinema-close-ring{transform:rotate(0deg)}
.gpj-cinema-close:hover .gpj-cinema-close-ring{transform:rotate(135deg)}
.gpj-cinema-drawer-body{max-width:1500px;min-height:calc(100dvh - 164px);padding:clamp(24px,4.5vw,68px) clamp(22px,6.7vw,105px);margin:auto;display:grid;grid-template-columns:minmax(0,1.28fr) minmax(250px,.72fr);column-gap:clamp(30px,6vw,110px);align-items:start;position:relative}
.gpj-cinema-menu-lede{font:800 10px Arial,sans-serif;letter-spacing:.3em;color:#be1834;margin:0 0 28px}
.gpj-cinema-menu-list{list-style:none;margin:0;padding:0;border-top:1px solid #ddd9da}
.gpj-cinema-menu-list li{border-bottom:1px solid #ddd9da;perspective:950px}
.gpj-cinema-menu-list a{display:flex;align-items:baseline;gap:clamp(14px,2vw,30px);padding:clamp(12px,1.4vw,22px) 6px;color:#161a22;text-decoration:none;position:relative;opacity:0;transform:rotateX(-70deg) translateY(-20px);transform-origin:top center;transition:transform .7s cubic-bezier(.16,1,.3,1),opacity .55s ease,color .25s}
.gpj-cinema-drawer.is-open .gpj-cinema-menu-list a{transform:rotateX(0deg) translateY(0);opacity:1}
.gpj-cinema-menu-list li:nth-child(1) a{transition-delay:.11s}
.gpj-cinema-menu-list li:nth-child(2) a{transition-delay:.16s}
.gpj-cinema-menu-list li:nth-child(3) a{transition-delay:.21s}
.gpj-cinema-menu-list li:nth-child(4) a{transition-delay:.26s}
.gpj-cinema-menu-list li:nth-child(5) a{transition-delay:.31s}
.gpj-cinema-menu-list li:nth-child(6) a{transition-delay:.36s}
.gpj-cinema-menu-list li:nth-child(7) a{transition-delay:.41s}
.gpj-cinema-menu-list a:hover{color:#c1102c;transform:translateX(10px) rotateX(0)!important;transition-delay:0s!important}
.gpj-cinema-menu-list .num{font:800 10px Arial,sans-serif;color:#c01530;min-width:20px;letter-spacing:.08em}
.gpj-cinema-menu-list .jp{font-weight:900;font-size:clamp(21px,3.25vw,45px);letter-spacing:-.065em;line-height:1.24}
.gpj-cinema-menu-list .en{font:700 9px Arial,sans-serif;letter-spacing:.16em;color:#979aa2;margin-left:auto;white-space:nowrap;align-self:center}
.gpj-cinema-menu-aside{padding-top:3px;opacity:0;transform:translateY(26px) rotateY(-14deg);transition:transform .72s cubic-bezier(.16,1,.3,1) .26s,opacity .65s ease .26s}
.gpj-cinema-drawer.is-open .gpj-cinema-menu-aside{opacity:1;transform:translateY(0) rotateY(0)}
.gpj-cinema-menu-aside h3{font-size:clamp(19px,2vw,27px);letter-spacing:-.04em;line-height:1.5;margin:0 0 12px}
.gpj-cinema-menu-aside p{font-size:12px;color:#6d7280;line-height:2;margin:0 0 18px}
.gpj-cinema-aside-group{margin:23px 0;border-top:1px solid #e6dcdf;padding-top:18px}
.gpj-cinema-aside-group strong{display:block;color:#c0102a;font:800 10px Arial,sans-serif;letter-spacing:.16em;margin-bottom:11px}
.gpj-cinema-aside-group a{display:inline-block;margin:0 16px 11px 0;color:#2a303a;font-size:12px;font-weight:800;transition:color .2s,transform .2s}
.gpj-cinema-aside-group a:hover{color:#c0102a;transform:translateX(4px)}
.gpj-cinema-aside-group span{color:#8d929e;font-size:11px;display:block;line-height:1.9;margin-top:5px}
.gpj-cinema-menu-contact{display:inline-flex;background:#c31131;color:white!important;border-radius:100px;padding:15px 20px;margin-top:5px;font-size:12px;font-weight:900;letter-spacing:.05em;gap:28px;justify-content:space-between;align-items:center;transition:background .2s,transform .2s}
.gpj-cinema-menu-contact:hover{background:#86051d;transform:translateY(-2px)}
.gpj-cinema-drawer-foot{min-height:76px;padding:18px clamp(22px,6.7vw,105px);border-top:1px solid #ebdee1;display:flex;align-items:center;justify-content:space-between;gap:12px;font:800 9px Arial,sans-serif;letter-spacing:.14em;color:#9da1a9}
body.gpj-menu-open{overflow:hidden!important}
body.gpj-menu-open #preview{overflow:hidden!important}
.gpj-site-whitewash{position:fixed;z-index:20000;inset:0;background:#fff;opacity:0;visibility:hidden;pointer-events:none;display:grid;place-items:center;transition:opacity .52s cubic-bezier(.55,.05,.22,1),visibility 0s linear .52s}
.gpj-site-whitewash.is-active{visibility:visible;opacity:1;pointer-events:all;transition:opacity .52s cubic-bezier(.55,.05,.22,1),visibility 0s linear 0s}
.gpj-site-whitewash .gpj-whitewash-sig{color:#ce2340;letter-spacing:.3em;font:900 10px Arial,sans-serif;opacity:0;transform:translateY(14px);transition:transform .5s ease,opacity .45s ease}
.gpj-site-whitewash.is-active .gpj-whitewash-sig{transform:translateY(0);opacity:.65}
@media(max-width:1120px){.gpj-cinema-header .gpj-cinema-quick{gap:20px}.gpj-cinema-header .gpj-cinema-quick a{font-size:10px}.gpj-cinema-consult{padding:12px 18px}}
@media(max-width:900px){.gpj-cinema-header .gpj-cinema-quick{display:none}.gpj-cinema-header .gpj-cinema-actions{margin-left:auto}}
@media(max-width:700px){
 .gpj-site-header.gpj-cinema-header{height:70px!important;min-height:70px!important;padding:0 18px!important}
 body[data-gpj-page="home"] .gpj-site-header.gpj-cinema-header{margin-bottom:-70px!important}
 .gpj-cinema-header .gpj-cinema-brand{width:121px}.gpj-cinema-header .gpj-cinema-brand img{height:50px}
 .gpj-menu-disc{width:46px;height:46px}.gpj-menu-word{font-size:10px;letter-spacing:.12em}
 .gpj-cinema-drawer-head{min-height:70px}
 .gpj-cinema-drawer-body{grid-template-columns:1fr;min-height:auto;row-gap:38px;padding:26px 24px 50px}
 .gpj-cinema-menu-list .jp{font-size:clamp(23px,6.6vw,33px)}.gpj-cinema-menu-list a{gap:14px;padding:14px 0}
 .gpj-cinema-menu-list .en{font-size:8px;letter-spacing:.07em}
 .gpj-cinema-menu-aside{border-top:1px solid #e5dbde;padding-top:20px}
 .gpj-cinema-arc{width:90vmin;height:90vmin;right:-35vmin;top:-32vmin}
}
@media(max-width:420px){.gpj-cinema-consult{display:none!important}.gpj-cinema-header .gpj-cinema-actions{gap:8px}.gpj-cinema-drawer-foot{flex-direction:column;align-items:flex-start;line-height:1.8}}
@media(prefers-reduced-motion:reduce){
 .gpj-cinema-drawer,.gpj-cinema-menu-list a,.gpj-cinema-menu-aside,.gpj-cinema-arc,.gpj-menu-disc,.gpj-menu-glyph,.gpj-menu-glyph i,.gpj-site-whitewash{transition-duration:.01ms!important;animation:none!important}
 .gpj-cinema-drawer.is-open{clip-path:none!important}
}


/* GPJ Official: floating desktop bar and true single-step 3D dice roll on hover */
.gpj-site-header.gpj-cinema-header.gpj-floating-header {
  --gpj-header-h:76px;
  width:calc(100% - clamp(30px,6.45vw,110px))!important;
  max-width:1820px!important;
  height:var(--gpj-header-h)!important;
  min-height:var(--gpj-header-h)!important;
  position:sticky!important;
  top:18px!important;
  margin:18px auto 0!important;
  padding:0 clamp(15px,2.25vw,34px)!important;
  border:1px solid rgba(26,26,32,.045)!important;
  border-radius:14px!important;
  background:rgba(255,255,255,.974)!important;
  box-shadow:0 9px 26px rgba(15,18,28,.12),0 2px 5px rgba(15,18,28,.025)!important;
  overflow:visible!important;
  backdrop-filter:blur(19px)!important;-webkit-backdrop-filter:blur(19px)!important;
  isolation:initial!important;
  z-index:1011!important;
}
body[data-gpj-page="home"] .gpj-site-header.gpj-cinema-header.gpj-floating-header{
  margin-bottom:calc(-1 * (var(--gpj-header-h) + 18px))!important;
}
.gpj-cinema-header.gpj-floating-header .gpj-cinema-head-inner {gap:clamp(14px,2vw,28px)!important}
.gpj-cinema-header.gpj-floating-header .gpj-cinema-brand{
  width:clamp(135px,12.7vw,181px)!important;min-width:0!important;flex-shrink:0;align-self:center
}
.gpj-cinema-header.gpj-floating-header .gpj-cinema-brand img{width:100%!important;height:60px!important;object-fit:contain!important}
.gpj-cinema-desktop{min-width:0;display:flex;align-items:center;justify-content:center;flex:1}
.gpj-cinema-desktop .gpj-nav-list{display:flex;align-items:center;justify-content:center;gap:clamp(14px,2.3vw,37px);padding:0;margin:0;list-style:none}
.gpj-cinema-desktop .gpj-nav-item{position:relative;min-height:74px;display:flex;align-items:center;justify-content:center;flex:none}
.gpj-cinema-desktop .gpj-cube-nav-link{
  display:inline-flex;align-items:center;gap:5px;color:#202126!important;
  font-family:-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif!important;
  font-size:clamp(11px,.98vw,14px);font-weight:750;line-height:1.45;
  white-space:nowrap;padding:9px 0;text-decoration:none;outline-offset:5px
}
.gpj-cube-window{display:inline-block;perspective:650px;position:relative;line-height:22px;height:22px;overflow:visible}
.gpj-cube-rotor{display:inline-block;position:relative;transform-style:preserve-3d;transform:rotateX(0deg);transform-origin:50% 50%;transition:transform .56s cubic-bezier(.18,.79,.24,1);will-change:transform}
.gpj-cube-face{height:22px;line-height:22px;white-space:nowrap;display:block;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.gpj-cube-front{transform:translateZ(11px)}
.gpj-cube-bottom{position:absolute;inset:0;transform:rotateX(-90deg) translateZ(11px);color:#ba102b}
.gpj-nav-item:hover .gpj-cube-rotor,.gpj-nav-item:focus-within .gpj-cube-rotor{transform:rotateX(90deg)}
.gpj-nav-plus{display:block;margin:0 0 1px 2px;font-family:Arial,sans-serif;font-size:18px;font-weight:400;line-height:20px;transition:transform .4s cubic-bezier(.16,1,.3,1),color .3s}
.gpj-nav-item:hover .gpj-nav-plus,.gpj-nav-item:focus-within .gpj-nav-plus{transform:rotate(90deg);color:#ba102b}
.gpj-cinema-desktop .gpj-nav-item.is-current:after{
  content:"";position:absolute;bottom:15px;left:0;right:0;margin:auto;height:2px;width:15px;background:#cf102f;border-radius:4px
}
.gpj-nav-dropdown{position:absolute;left:50%;top:calc(100% - 1px);min-width:228px;transform:translateX(-50%) translateY(9px);
  border:1px solid rgba(15,22,35,.065);border-radius:13px;background:rgba(255,255,255,.985);box-shadow:0 16px 34px rgba(23,27,39,.16);
  padding:11px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .21s,transform .36s cubic-bezier(.2,.8,.2,1),visibility 0s .24s;z-index:1050
}
.gpj-nav-item:hover .gpj-nav-dropdown,.gpj-nav-item:focus-within .gpj-nav-dropdown{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);transition:opacity .25s,transform .3s cubic-bezier(.2,.8,.2,1),visibility 0s
}
.gpj-nav-dropdown:before{content:"";position:absolute;left:0;top:-12px;width:100%;height:13px}
.gpj-nav-dropdown-list{list-style:none;margin:0;padding:0}
.gpj-nav-dropdown a{display:flex!important;align-items:center;justify-content:space-between;gap:18px;padding:12px 11px;border-radius:7px;
  color:#292e38!important;font-size:12px!important;font-weight:750!important;line-height:1.45;text-decoration:none;white-space:nowrap;transition:background .22s,color .22s,transform .24s}
.gpj-nav-dropdown a:hover,.gpj-nav-dropdown a:focus-visible{background:#fff0f2;color:#ae0b2a!important;transform:translateX(2px)}
.gpj-nav-dropdown a:after{content:"↗";color:#be9aa2;font:400 14px Arial,sans-serif}
.gpj-cinema-header.gpj-floating-header .gpj-cinema-actions{margin-left:0!important;gap:0!important;flex-shrink:0}
.gpj-cinema-header.gpj-floating-header .gpj-cinema-consult{padding:13px clamp(12px,1.6vw,22px);font-size:clamp(10px,.85vw,12px);font-weight:800;min-width:123px;box-shadow:none;white-space:nowrap}
/* Hamburger exists on mobile and tablet only, never on PC */
.gpj-cinema-header.gpj-floating-header .gpj-cinema-menu-trigger{display:none!important}
@media(min-width:841px) and (max-width:1199px){
 .gpj-cinema-header.gpj-floating-header .gpj-cinema-head-inner{gap:14px!important}
 .gpj-cinema-header.gpj-floating-header .gpj-cinema-brand{width:135px!important}
 .gpj-cinema-header.gpj-floating-header .gpj-cinema-desktop .gpj-nav-list{gap:clamp(10px,1.2vw,18px)}
 .gpj-cinema-header.gpj-floating-header .gpj-cube-nav-link{font-size:11px}
 .gpj-cinema-header.gpj-floating-header .gpj-cinema-consult{min-width:112px;padding:12px 11px;font-size:10px}
}
@media(max-width:840px){
 .gpj-site-header.gpj-cinema-header.gpj-floating-header{
  --gpj-header-h:70px;
  width:calc(100% - 30px)!important;min-height:70px!important;height:70px!important;
  top:13px!important;margin:13px auto 0!important;padding:0 18px!important;border-radius:12px!important
 }
 body[data-gpj-page="home"] .gpj-site-header.gpj-cinema-header.gpj-floating-header{margin-bottom:-83px!important}
 .gpj-cinema-header.gpj-floating-header .gpj-cinema-brand{width:137px!important}
 .gpj-cinema-header.gpj-floating-header .gpj-cinema-brand img{height:55px!important}
 .gpj-cinema-header.gpj-floating-header .gpj-cinema-desktop{display:none!important}
 .gpj-cinema-header.gpj-floating-header .gpj-cinema-actions{margin-left:auto!important;gap:12px!important}
 .gpj-cinema-header.gpj-floating-header .gpj-cinema-menu-trigger{display:inline-flex!important;gap:8px}
 .gpj-cinema-header.gpj-floating-header .gpj-cinema-consult{padding:11px 14px}
 .gpj-site-header.gpj-cinema-header.gpj-floating-header .gpj-menu-disc{width:45px;height:45px}
}
@media(max-width:530px){
 .gpj-site-header.gpj-cinema-header.gpj-floating-header{width:calc(100% - 22px)!important;padding:0 13px!important;--gpj-header-h:64px;height:64px!important;min-height:64px!important;top:11px!important;margin:11px auto 0!important}
 body[data-gpj-page="home"] .gpj-site-header.gpj-cinema-header.gpj-floating-header{margin-bottom:-75px!important}
 .gpj-cinema-header.gpj-floating-header .gpj-cinema-brand{width:125px!important}
 .gpj-cinema-header.gpj-floating-header .gpj-cinema-brand img{height:52px!important}
 .gpj-cinema-header.gpj-floating-header .gpj-cinema-consult{display:none!important}
 .gpj-cinema-header.gpj-floating-header .gpj-menu-word{font-size:10px;letter-spacing:.11em}
 .gpj-site-header.gpj-cinema-header.gpj-floating-header .gpj-menu-disc{width:42px;height:42px}
}
@media(prefers-reduced-motion:reduce){
 .gpj-cube-rotor,.gpj-nav-plus,.gpj-nav-dropdown{transition:none!important}
 .gpj-nav-item:hover .gpj-cube-rotor,.gpj-nav-item:focus-within .gpj-cube-rotor{transform:none!important}
 .gpj-cube-bottom{display:none!important}
}


/* Calm cross-document page transition: no opaque white wash, no second flash. */
@view-transition { navigation: auto; }
@keyframes gpj-page-exit { from { opacity:1 } to { opacity:0 } }
@keyframes gpj-page-enter { from { opacity:0 } to { opacity:1 } }
::view-transition-old(root) { animation: 780ms cubic-bezier(.22,.61,.36,1) both gpj-page-exit; }
::view-transition-new(root) { animation: 780ms cubic-bezier(.22,.61,.36,1) both gpj-page-enter; }
@media (prefers-reduced-motion: reduce) {
 ::view-transition-old(root),::view-transition-new(root){ animation-duration:0.01ms !important; }
}


/* GPJ Japanese typography revision, 2026-10-11. Semantic units, not character counting. */
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body :where(main,section,article,aside,div,figure,form,ul,li,dl,dd){min-width:0}
@media(max-width:480px){.ln-issues{grid-template-columns:minmax(0,1fr)!important}}
:where(p,li,dd,figcaption,label,summary,button,input,textarea){line-break:strict;word-break:normal;overflow-wrap:break-word}
:where(p,li,dd,figcaption){text-wrap:pretty}
.jp-heading{min-width:0!important;max-width:100%;white-space:normal!important;word-break:normal!important;overflow-wrap:normal!important;line-break:strict!important;text-wrap:wrap!important}
.jp-heading .jp-line{display:block!important;white-space:normal!important;word-break:normal!important;overflow-wrap:normal!important;text-wrap:wrap!important}
.jp-heading .jp-phrase{display:inline-block!important;vertical-align:baseline!important;white-space:nowrap!important;word-break:normal!important;overflow-wrap:normal!important;text-wrap:nowrap!important;color:inherit}
.jp-heading .jp-phrase :is(span,em,b,strong){display:inline!important;white-space:inherit!important;word-break:normal!important;overflow-wrap:normal!important}
.jp-heading .jp-fixed-line{display:block!important;white-space:nowrap!important;word-break:normal!important;overflow-wrap:normal!important;text-wrap:nowrap!important}
.jp-heading .jp-fixed-line>.jp-phrase{display:inline!important}
.jp-heading[data-jp-fit]{font-size:var(--jp-fit-size)!important}
.jp-protected{white-space:nowrap;word-break:normal;overflow-wrap:normal;display:inline!important}
summary .jp-summary-copy{min-width:0;flex:1 1 0;white-space:normal;word-break:normal;overflow-wrap:break-word}
.jp-prose{line-break:strict;word-break:normal;overflow-wrap:break-word}
.jp-heading .jp-line,.jp-heading .jp-phrase{font-size:inherit;line-height:inherit;letter-spacing:inherit}
/* Do not let unbreakable type glyphs bypass Japanese punctuation rules. */
.jp-heading :is(.typing-char,.type-char,.cp-glyph,.cs-glyph,.fc-char,.fq-typed-letter,.gm-letter,.gpjx-glyph,.hp-letter,.ih-character,.im-char,.ln-char,.msg-char,.nx-glyph,.sc-glyph,.sns-letter,.st-char,.sv-type-glyph,.vc-char,.why-letter,.ws-letter){display:inline!important;white-space:inherit!important;word-break:normal!important;overflow-wrap:normal!important}
/* The home-page editorial heading must occupy exactly these three lines. */
#about-title .jp-line{white-space:nowrap!important}
#about-title .jp-line:first-child{margin-top:0}
.about-layout{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}
.about-lead{min-width:0;max-width:100%}
.about-lead #about-title{width:100%;white-space:normal!important;letter-spacing:-.055em}
.about-design{min-width:0;max-width:100%}
.about-design .about-en{max-width:100%;overflow-wrap:normal;white-space:normal}
/* Keep the original white / red emphasis of the services heading. */
.solutions-title.jp-heading>.jp-line,.solutions-title.jp-heading .jp-phrase{color:inherit}
.jp-heading .jp-desktop-nowrap{white-space:normal}
@media(max-width:720px){.about-layout{grid-template-columns:minmax(0,1fr)}.jp-heading{max-width:100%!important}}
@media(max-width:360px){.about-lead #about-title{font-size:26px;line-height:1.55}}


/* GPJ NEWS v1.0.0. Namespaced so the approved 22 pages retain their styles. */
.gpj-news,.gn-page{--gn-red:#c61738;--gn-ink:#1c222d;--gn-muted:#656d78;--gn-line:#e0dfe2;--gn-paper:#faf9f6;color:var(--gn-ink);font-family:-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Noto Sans JP','Yu Gothic',Meiryo,sans-serif;line-break:strict;word-break:normal;overflow-wrap:anywhere}
.gpj-news *, .gn-page *{box-sizing:border-box}.gpj-news a,.gn-page a{color:inherit;text-decoration:none}.gpj-news img,.gn-page img{display:block;max-width:100%}.gpj-news :where(h1,h2,h3,p,figure),.gn-page :where(h1,h2,h3,p,figure){margin:0}.gpj-news button,.gn-page button{font:inherit;cursor:pointer;touch-action:manipulation}.gpj-news :is(a,button,input):focus-visible,.gn-page :is(a,button,input):focus-visible{outline:3px solid #bd173c;outline-offset:5px}
.gn-wrap{width:min(1240px,86%);margin-inline:auto}.gn-unit{display:inline-block;white-space:nowrap;max-width:100%}.gn-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.gn-kicker{display:flex;align-items:center;gap:15px;color:var(--gn-red);font:700 10px/1.8 Arial,sans-serif;letter-spacing:.19em;margin-bottom:16px!important}.gn-kicker:after{content:'';display:block;width:43px;height:1px;background:#dca8b4}.gn-label{font-size:12px;color:var(--gn-muted);margin-bottom:15px!important}.gn-h2{font-size:clamp(28px,3.05vw,44px);line-height:1.55;letter-spacing:-.05em;font-weight:760}.gn-h2 em{color:var(--gn-red);font-style:normal}.gn-desc{font-size:14px;line-height:2;color:var(--gn-muted)}
.gn-home{padding:92px 0 96px;background:var(--gn-paper);border-block:1px solid #eae7e7;position:relative}.gn-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:36px}.gn-head-right{max-width:365px;display:flex;flex-direction:column;align-items:flex-start;gap:22px}.gn-link{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;border-bottom:1px solid #bfb9bf;padding:9px 0;min-height:44px;font-size:13px;line-height:1.7;font-weight:700}.gn-link span:last-child{font:22px/1 Arial,sans-serif;transition:transform .3s}.gn-link:hover span:last-child{transform:translate(3px,-3px)}
.gn-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px 30px}.gn-card{min-width:0;position:relative}.gn-card-link{display:flex;flex-direction:column;height:100%;border-bottom:1px solid var(--gn-line);padding-bottom:22px;min-width:0}.gn-card-image{aspect-ratio:16/10;overflow:hidden;border-radius:10px;background:#f0edeb;position:relative}.gn-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.6,.3,1);background:#f0edeb}.gn-card-link:hover .gn-card-image img{transform:scale(1.035)}.gn-card-arrow{position:absolute;bottom:13px;right:13px;width:37px;height:37px;display:grid;place-items:center;border-radius:50%;background:#fff;color:var(--gn-red);font:22px/1 Arial,sans-serif;transition:background .25s,color .25s}.gn-card-link:hover .gn-card-arrow{background:var(--gn-red);color:#fff}.gn-card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:9px 13px;margin:21px 0 12px;font-size:11px;color:var(--gn-muted)}.gn-card-meta time{font:600 12px/1.6 Arial,sans-serif;letter-spacing:.07em}.gn-tag{background:#f7e9ec;color:#ab1734;padding:4px 10px;border-radius:3px;font-size:10px;font-weight:650;line-height:1.5}.gn-card-title{font-size:clamp(17px,1.25vw,19px)!important;font-weight:700;line-height:1.85!important;letter-spacing:-.015em;word-break:normal;line-break:strict;text-wrap:pretty;overflow-wrap:anywhere}.gn-card-link:hover .gn-card-title{color:var(--gn-red)}.gn-preview-note{display:flex;gap:10px;align-items:flex-start;font-size:11px;line-height:1.9;color:#73717a;margin-top:25px!important}.gn-preview-note strong{font-size:9px;font-family:Arial,sans-serif;letter-spacing:.06em;flex-shrink:0;border:1px solid #d4c9ce;border-radius:3px;padding:2px 6px;font-weight:600}.gn-empty{grid-column:1/-1;padding:46px 25px;border:1px solid var(--gn-line);border-radius:8px;background:#fff;font-size:14px;line-height:2;color:var(--gn-muted)}
/* Archive. Quiet paper-like imagery shares the approved cinematic interaction. */
.gn-page{background:var(--gn-paper)}.gn-page .gpjx-news{--cx-accent:#c61738;background:#faf8f4}.gpjx-news .gpjx-atmosphere{background:radial-gradient(ellipse at 85% 50%,#ecdbd644,transparent 63%),radial-gradient(ellipse at 0 0,#fff,transparent 60%)}.gpjx-news .gpjx-copy{width:45%;max-width:640px}.gpjx-news .gpjx-title{font-size:clamp(34px,4.2vw,68px)!important;line-height:1.5!important;letter-spacing:-.06em!important}.gpjx-news .gpjx-lead{max-width:470px}.gn-paper{background:#fffdf9!important;border:1px solid #ded8d1!important;border-radius:10px!important;padding:25px!important;box-shadow:0 26px 50px #3b21351b,8px 8px 0 #ece7e1,9px 9px 0 #dbd2ca!important}.gn-paper-head{display:flex;justify-content:space-between;align-items:center;font:700 11px/1.6 Arial,sans-serif;letter-spacing:.16em;border-bottom:1px solid #ddd4ce;padding-bottom:17px;color:#6a646a}.gn-paper-head i{width:8px;height:8px;border-radius:50%;background:#c61738}.gn-paper-name{display:block;font:750 54px/1 Arial,sans-serif;letter-spacing:-.025em;margin-top:22px;color:#202631}.gn-paper-rule{height:3px;background:#c61738;margin:19px 0}.gn-paper-photo{height:165px;overflow:hidden;border-radius:5px;background:#eee}.gn-paper-photo img{width:100%;height:100%;object-fit:cover}.gn-paper-foot{display:flex;justify-content:space-between;font-size:12px;color:#666;margin-top:15px}.gn-postcard{background:#c61738!important;color:#fff!important;border-radius:9px!important;padding:23px!important;border:1px solid #ac1432!important;box-shadow:0 20px 40px #b3183233!important}.gn-postcard small{font:700 9px/1.6 Arial,sans-serif;letter-spacing:.19em;color:#f4d8de}.gn-postcard strong{display:block;font-size:26px;line-height:1.7;margin-top:18px;letter-spacing:-.02em}.gn-postcard p{font-size:10px;line-height:1.6;color:#f4d8de;border-top:1px solid #ffffff40;padding-top:12px;margin-top:16px}.gn-stamp{border-radius:50%!important;background:#242936!important;color:white!important;display:grid!important;place-items:center;text-align:center;border:7px solid #fff!important}.gn-stamp span{font:700 17px/1.5 Arial,sans-serif;letter-spacing:.12em}
.gn-archive{padding:90px 0 110px;scroll-margin-top:120px;background:#fff}.gn-archive-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:32px}.gn-filter-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--gn-line);padding:0 0 28px;margin-bottom:40px}.gn-filters{display:flex;gap:8px;flex-wrap:wrap}.gn-filter{border:1px solid #dedbe0;background:white;color:#525968;padding:10px 20px;border-radius:30px;min-height:44px;font-size:12px;line-height:1.6;transition:background .25s,color .25s}.gn-filter[aria-pressed=true],.gn-filter[aria-current=page]{background:#262c38;color:white;border-color:#262c38}.gn-count{font-size:11px;line-height:1.7;color:#777;white-space:nowrap}.gn-load{display:block;min-width:210px;margin:48px auto 0;padding:17px 30px;border-radius:40px;border:1px solid #b9b4bc;background:#fff;font-size:13px;color:#272d37}.gn-load[hidden]{display:none}.gn-load:hover{background:#f8f4f3}.gn-pagination{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:50px auto 0}.gn-pagination a,.gn-pagination span{display:grid;place-items:center;min-width:42px;min-height:42px;padding:8px 13px;border:1px solid #ddd;border-radius:5px;font-size:13px}.gn-pagination .current{color:#fff;background:#252b37;border-color:#252b37}
.gn-bottom{padding:65px 0;background:#f7f4f0}.gn-bottom-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}.gn-bottom-title{font-size:clamp(23px,2.3vw,32px);line-height:1.7;font-weight:700;letter-spacing:-.04em}.gn-button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;padding:18px 27px;background:#c61738;color:#fff!important;border-radius:40px;min-height:58px;font-size:13px;font-weight:700;white-space:nowrap}.gn-button span{font-size:22px}.gn-bottom p{margin-top:12px;font-size:13px;line-height:1.9;color:var(--gn-muted)}
/* Detail: editorial reading measure and an unambiguous route back. */
.gn-article{padding:145px 0 90px;background:#fff;min-height:65vh}.gn-breadcrumb{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;line-height:1.9;color:#69717d;margin-bottom:48px}.gn-breadcrumb a{border-bottom:1px solid #ddd}.gn-detail-layout{display:grid;grid-template-columns:minmax(0,840px) minmax(160px,1fr);gap:65px;align-items:start}.gn-detail-top .gn-card-meta{margin-top:0}.gn-detail-title{font-size:clamp(29px,3.2vw,47px);line-height:1.65;letter-spacing:-.055em;font-weight:750;text-wrap:pretty;overflow-wrap:anywhere}.gn-detail-image{margin:34px 0!important;aspect-ratio:16/10;overflow:hidden;border-radius:10px;background:#f3efee}.gn-detail-image img{width:100%;height:100%;object-fit:cover}.gn-prose{font-size:15px;line-height:2.25;color:#4d5664;overflow-wrap:anywhere}.gn-prose p{margin:0 0 1.6em}.gn-prose h2{font-size:clamp(23px,2vw,28px);line-height:1.7;margin:1.8em 0 .9em;color:#222936}.gn-prose h3{font-size:20px;line-height:1.8;margin:1.5em 0 .7em;color:#222936}.gn-prose :is(ul,ol){padding-left:1.5em;margin:1em 0}.gn-prose img{height:auto;max-width:100%;border-radius:5px}.gn-prose :is(figure,iframe,video){max-width:100%}.gn-prose iframe{border:0}.gn-prose a{color:#b7193b;text-decoration:underline;text-underline-offset:4px}.gn-prose blockquote{margin:1.6em 0;padding:15px 25px;background:#f6f4f1;border-left:3px solid #c61738}.gn-prose pre{overflow:auto;background:#f5f4f2;padding:18px;white-space:pre}.gn-prose table{border-collapse:collapse;display:block;max-width:100%;overflow:auto}.gn-prose td,.gn-prose th{padding:10px;border:1px solid #ddd}.gn-detail-side{border-top:2px solid #252b37;padding-top:20px;position:sticky;top:140px}.gn-detail-side small{display:block;font:700 10px/1.8 Arial,sans-serif;letter-spacing:.16em;color:#a21435}.gn-detail-side p{font-size:13px;line-height:2;margin-top:20px;color:#68717c}.gn-detail-side .gn-link{margin-top:20px;width:100%;font-size:12px}.gn-article-back{margin-top:44px;border-top:1px solid #dedce0;padding-top:25px}.gn-related{padding:70px 0 85px;background:#faf8f5}.gn-related h2{font-size:25px;line-height:1.7;margin-bottom:30px}.gn-related .gn-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:820px}
.gn-glyph{opacity:1}.gn-typing .gn-glyph:not(.is-shown){opacity:0}.gn-enter{animation:gn-entrance .75s both}@keyframes gn-entrance{from{opacity:0;transform:translateY(13px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1024px){.gn-wrap{width:88%}.gn-head{gap:25px}.gn-head-right{max-width:305px}.gn-grid{gap:32px 22px}.gn-card-title{font-size:17px!important}.gn-home{padding:70px 0}.gn-detail-layout{gap:35px;grid-template-columns:minmax(0,1fr) 180px}.gn-archive{padding:70px 0 85px}.gpjx-news .gpjx-copy{width:88%;max-width:none}.gpjx-news .gpjx-title{font-size:clamp(35px,5.7vw,59px)!important}}
@media(max-width:760px){.gn-head{align-items:flex-start;flex-direction:column;gap:18px}.gn-head-right{width:100%;max-width:none;flex-direction:row;align-items:center;justify-content:space-between;gap:18px}.gn-head-right .gn-desc{max-width:350px;font-size:12px}.gn-head-right .gn-link{white-space:nowrap;font-size:12px}.gn-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gn-home .gn-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.gn-home .gn-card-title{font-size:15px!important}.gn-home .gn-card-meta{gap:6px;margin-top:15px}.gn-home .gn-tag{font-size:9px;padding:3px 7px}.gn-detail-layout{grid-template-columns:minmax(0,1fr);gap:30px}.gn-detail-side{position:static;display:none}.gn-article{padding-top:126px}.gn-breadcrumb{margin-bottom:30px}.gn-bottom-inner{align-items:flex-start}.gn-bottom{padding:48px 0}}
@media(max-width:600px){.gn-wrap{width:88%}.gn-home{padding:54px 0 57px}.gn-h2{font-size:31px;line-height:1.55}.gn-head{margin-bottom:25px}.gn-head-right{flex-direction:column;align-items:flex-start;gap:10px}.gn-head-right .gn-desc{font-size:12px}.gn-grid,.gn-home .gn-grid{grid-template-columns:minmax(0,1fr);gap:28px}.gn-home .gn-card-link{display:grid;grid-template-columns:126px minmax(0,1fr);gap:0 17px;align-items:start;padding-bottom:23px}.gn-home .gn-card-image{grid-row:1/3;aspect-ratio:1.17;border-radius:7px}.gn-home .gn-card-arrow{display:none}.gn-home .gn-card-meta{margin:0 0 9px;gap:5px 7px}.gn-home .gn-card-meta time{font-size:11px}.gn-home .gn-card-title{font-size:15px!important;line-height:1.85!important}.gn-preview-note{font-size:10px;gap:8px}.gn-filter-bar{align-items:flex-start;flex-direction:column;gap:14px;margin-bottom:30px;padding-bottom:22px}.gn-filters{gap:7px}.gn-filter{padding:8px 13px;font-size:11px;min-height:44px}.gn-archive-head{gap:15px;align-items:flex-start;flex-direction:column}.gn-archive{padding:52px 0 65px}.gn-card-title{font-size:19px!important}.gn-card-meta{margin-top:17px}.gn-card-image{border-radius:8px}.gn-bottom-inner{flex-direction:column;gap:24px}.gn-bottom-title{font-size:25px}.gn-button{font-size:13px}.gn-detail-title{font-size:29px;line-height:1.65}.gn-prose{font-size:14px;line-height:2.2}.gn-detail-image{margin:27px 0!important}.gn-article{padding-bottom:60px}.gn-related{padding:50px 0}.gn-related .gn-grid{grid-template-columns:minmax(0,1fr)}.gpjx-news .gpjx-title{font-size:36px!important;line-height:1.55!important}.gpjx-news .gpjx-copy{width:88%}.gpjx-news .gpjx-lead{font-size:12px!important}.gpjx-news .gpjx-ctas{gap:9px!important}.gpjx-news .gpjx-skip{font-size:12px!important}}
@media(max-width:360px){.gn-wrap{width:88%}.gn-home .gn-card-link{grid-template-columns:105px minmax(0,1fr);gap:0 13px}.gn-home .gn-card-title{font-size:14px!important}.gn-h2{font-size:28px}.gn-detail-title{font-size:26px}.gpjx-news .gpjx-title{font-size:32px!important}.gn-filter{padding:8px 11px}}
@media(prefers-reduced-motion:reduce){.gpj-news *,.gn-page *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.gn-typing .gn-glyph{opacity:1!important}}


/* Keep key Japanese words together without truncating post titles. */
.gn-card-title{word-break:auto-phrase}.gn-title-piece{display:inline-block;white-space:nowrap;max-width:100%}

/* Only newly added guide components. Existing page design is untouched. */
.gpj-first-guide[hidden]{display:none!important}.gpj-first-guide{position:fixed!important;left:50%!important;bottom:20px!important;transform:translateX(-50%);width:min(1050px,calc(100% - 44px));z-index:970!important;display:grid;grid-template-columns:1fr auto 32px;align-items:center;gap:24px;padding:17px 20px 17px 25px;background:#212836!important;color:#fff!important;border:1px solid #444351;border-left:3px solid #e55372;border-radius:9px;box-shadow:0 12px 46px #0d142535;font-family:-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Noto Sans JP','Yu Gothic',Meiryo,sans-serif;box-sizing:border-box}.gpj-first-guide *{box-sizing:border-box}.gpj-first-guide p{margin:0!important;color:#fff!important;font-size:13px!important;line-height:1.85!important;font-weight:650!important;letter-spacing:.005em!important}.gpj-first-guide p>span{display:block;color:#f4a7b8;font:700 8px/1.8 Arial,sans-serif;letter-spacing:.14em;margin-bottom:4px}.gpj-first-guide a{display:inline-flex!important;align-items:center;gap:20px;padding:12px 20px;border:1px solid #ffffff54;border-radius:40px;color:#fff!important;text-decoration:none!important;font-size:12px!important;line-height:1.5;font-weight:650;white-space:nowrap;background:#ffffff0a;min-height:44px}.gpj-first-guide a:hover{background:#ffffff22}.gpj-first-guide button{width:32px;min-height:40px;align-self:start;border:0;background:transparent;color:#d1d2da;font:26px/1 Arial,sans-serif;cursor:pointer;padding:0;margin:0}.gpj-first-guide a:focus-visible,.gpj-first-guide button:focus-visible{outline:2px solid #ff9db1;outline-offset:4px}.gpj-first-guide[aria-busy=true]{visibility:hidden}
.gpj-first-menu{display:flex!important;justify-content:space-between;align-items:center;gap:22px;border-block:1px solid #d5c3ca;padding:17px 0!important;margin:12px 0 25px;color:#bb1435!important}.gpj-first-menu>span:first-child{display:grid;gap:7px}.gpj-first-menu small{font:650 8px/1.7 Arial,sans-serif;letter-spacing:.13em}.gpj-first-menu strong{font-size:clamp(13px,1.35vw,19px);line-height:1.6;font-weight:700}.gpj-first-menu>span:last-child{font-size:23px}.gpj-nav-dropdown-list .gpj-first-nav>a{color:#be1535!important;font-weight:700!important}.gpj-global-footer .gpj-first-footer{color:#b31a3c!important}
.gpj-home-first{padding:34px 6%!important;background:#f0ede7!important;border-bottom:1px solid #ddd6d2;color:#202735!important;position:relative;font-family:inherit}.gpj-home-first a{display:grid;grid-template-columns:1fr auto;align-items:center;gap:15px 32px;max-width:1260px;margin:0 auto;color:inherit;text-decoration:none!important}.gpj-home-first small{display:block;font:700 9px/1.8 Arial,sans-serif;letter-spacing:.15em;color:#bb1435;margin-bottom:12px}.gpj-home-first h2{font-size:clamp(21px,2.2vw,32px)!important;font-weight:700;line-height:1.7!important;letter-spacing:-.03em!important;margin:0!important}.gpj-home-first p{font-size:12px!important;line-height:1.9!important;color:#6b6570;margin:10px 0 0!important}.gpj-home-first .gpj-home-first-link{display:flex;align-items:center;gap:25px;font-size:12px;font-weight:700;border-bottom:1px solid #ac9aa2;min-height:46px}.gpj-home-first .gpj-home-first-link i{font:22px/1 Arial,sans-serif;color:#c61738}.gpj-home-first h2 span{display:inline-block;white-space:nowrap}
@media(max-width:600px){.gpj-first-guide{width:calc(100% - 22px);bottom:max(11px,env(safe-area-inset-bottom))!important;padding:13px 39px 13px 16px;grid-template-columns:1fr;gap:10px;transform:translateX(-50%);border-radius:7px}.gpj-first-guide p{font-size:11px!important;line-height:1.75!important}.gpj-first-guide p>span{font-size:7px;letter-spacing:.1em;margin-bottom:3px}.gpj-first-guide a{padding:8px 16px;min-height:37px;font-size:11px!important;justify-content:space-between;width:fit-content;min-width:180px}.gpj-first-guide button{position:absolute;right:7px;top:10px;min-height:32px}.gpj-first-menu{gap:12px;margin-bottom:17px}.gpj-first-menu strong{font-size:14px}.gpj-home-first{padding:28px 6%!important}.gpj-home-first a{grid-template-columns:1fr;gap:12px}.gpj-home-first h2{font-size:20px!important}.gpj-home-first p{font-size:11px!important}.gpj-home-first .gpj-home-first-link{font-size:11px;justify-content:space-between;width:fit-content;gap:28px}.gpj-home-first small{font-size:8px}}
@media(print){.gpj-first-guide{display:none!important}}

.gpj-first-guide p>span.gpj-guide-unit{display:inline-block;color:inherit;font:inherit;letter-spacing:inherit;margin:0;white-space:nowrap}
@media(max-width:600px){.gpj-home-first h2{font-size:clamp(16px,4.5vw,20px)!important}}
