:root{--teal:#0E6FA8;--deep:#0B5E92;--ink:#14213D;--sub:#4B5563;--muted:#6B7280;--mist:#F3F9FC;--mint:#ECE6DA;--line:#D7E8F1;--coral:#0E6FA8;--accent:#0E6FA8}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);font-family:'Noto Sans JP','Hiragino Sans','Hiragino Kaku Gothic ProN',Meiryo,sans-serif;line-height:1.8;-webkit-font-smoothing:antialiased}
a{color:var(--teal)}a:hover{color:#0B5E92}
img{max-width:100%;display:block}
h1,h2,h3{word-break:auto-phrase}
.nb{display:inline-block}
.en{font-family:Inter,sans-serif}
.wrap{max-width:1240px;margin:0 auto;padding-left:24px;padding-right:24px}
.label{margin:0;font-family:Inter,sans-serif;letter-spacing:.2em;font-size:13px;color:var(--teal);font-weight:500}
.h2{margin:0;font-size:clamp(26px,3vw,38px);font-weight:500;line-height:1.45}
.lead{margin:0;font-size:15px;color:var(--sub)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border-radius:999px;font-weight:500;text-decoration:none;transition:transform .25s ease,background-color .25s ease}
.btn:hover{transform:translateY(-2px)}
.btn-coral{background:var(--accent);color:var(--deep)}.btn-coral:hover{background:#D9B872;color:var(--deep)}
.btn-teal{background:var(--teal);color:#fff}.btn-teal:hover{color:#fff}
.btn-line{border:1.5px solid #fff;color:#fff}.btn-line:hover{color:#fff}
.tag{background:var(--mist);border-radius:999px;padding:4px 14px;font-size:13px;font-weight:500}
.card{background:#fff;border-radius:24px}
.lift{transition:transform .35s ease,box-shadow .35s ease}
.lift:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(14,111,168,.14)}

/* header */
.site-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding-top:20px;padding-bottom:20px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.brand-name{display:flex;flex-direction:column;line-height:1.2}
.brand-name b{font-family:Inter,sans-serif;font-size:20px;letter-spacing:.04em;display:flex;align-items:baseline;gap:8px}
.brand-name b .serif{font-size:27px;font-weight:500;letter-spacing:.01em;color:var(--teal)}
.brand-name b small{font-size:12px;font-weight:500;color:var(--teal);letter-spacing:.2em}
.brand-name span{font-size:11px;color:var(--muted)}
.gnav{display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px;font-size:14px;font-weight:500;font-family:Inter,'Noto Sans JP',sans-serif}
.gnav a{color:var(--ink);text-decoration:none}
.gnav .btn{color:#fff;padding:10px 24px}
@media (max-width:820px){.gnav a:not(.btn):not(.ig){display:none}}

/* motion */
.rise{animation:rise .9s cubic-bezier(.2,.7,.2,1) both}
.d1{animation-delay:.15s}.d2{animation-delay:.3s}.d3{animation-delay:.45s}
@keyframes rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.ecg{stroke-dasharray:1800;stroke-dashoffset:1800;animation:draw 3.6s ease-in-out infinite}
@keyframes draw{0%{stroke-dashoffset:1800}55%{stroke-dashoffset:0}100%{stroke-dashoffset:-1800}}
.marquee{animation:slide 30s linear infinite}
@keyframes slide{to{transform:translateX(-50%)}}
.bar{transform:scaleY(0);transform-origin:bottom;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.in .bar{transform:scaleY(1)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}.bar{transform:none}.ecg{stroke-dashoffset:0}}

/* hero */
.hero{position:relative;overflow:hidden;border-radius:28px;min-height:660px;display:flex;flex-direction:column;justify-content:center;padding:72px clamp(24px,6vw,88px)}
.hero h1{margin:0;font-size:clamp(32px,5.2vw,66px);line-height:1.35;font-weight:500;color:#fff;letter-spacing:.02em}
.pill{margin:0;display:inline-flex;align-self:flex-start;font-family:Inter,sans-serif;font-weight:500;letter-spacing:.2em;font-size:13px;color:var(--deep);background:#fff;padding:6px 16px;border-radius:999px}

/* features */
.feature{display:flex;flex-wrap:wrap;gap:32px;align-items:center}
.feature.rev{flex-direction:row-reverse}
.feature-img{flex:1 1 380px;min-width:0;border-radius:24px;background:var(--mint);aspect-ratio:16/10;position:relative;overflow:hidden}
.feature-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.feature-img span{position:absolute;left:24px;top:16px;z-index:1;font-family:Inter,sans-serif;font-weight:500;font-size:72px;line-height:1;color:#fff;text-shadow:0 2px 12px rgba(14,111,168,.35)}
.feature-body{flex:1 1 440px;min-width:0;display:flex;flex-direction:column;gap:14px}

/* chart */
.chart{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(8px,2vw,24px);align-items:end;height:280px;border-bottom:1px solid #2BA8D6;padding:0 4px}
.chart>div{display:flex;flex-direction:column;align-items:center;gap:8px;height:100%;justify-content:flex-end}
.chart b{font-family:Inter,sans-serif;font-weight:500;font-size:clamp(20px,2.6vw,32px);line-height:1}
.chart b small{font-size:13px;font-weight:500;margin-left:2px}
.chart .bar{width:100%;max-width:120px;background:#3E6A94;border-radius:10px 10px 0 0}
.chart-x{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(8px,2vw,24px);text-align:center}
.chart-x strong{display:block;font-family:Inter,sans-serif;font-size:15px;color:#CFE3F0}
.chart-x span{font-size:13px;color:#EAF6FD;line-height:1.6}

/* table */
.tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.tabs button{border:1.5px solid var(--teal);background:#fff;color:var(--teal);border-radius:999px;padding:12px 28px;font-family:inherit;font-weight:500;font-size:15px;cursor:pointer;min-height:44px}
.tabs button[aria-selected="true"]{background:var(--teal);color:#fff}
.job{border:1px solid var(--line);border-radius:24px;overflow:hidden}
.job[hidden]{display:none}
.job dl{margin:0}
.row{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--mint)}
.row:last-child{border-bottom:0}
.row dt{flex:0 1 200px;min-width:140px;background:var(--mist);padding:18px 24px;font-weight:500;font-size:15px}
.row dd{flex:999 1 360px;min-width:0;margin:0;padding:18px 24px;font-size:15px;color:var(--sub)}

/* faq */
.faq details{background:var(--mist);border-radius:16px;overflow:hidden}
.faq summary{list-style:none;cursor:pointer;padding:20px 24px;display:flex;align-items:center;gap:16px;font-weight:500;font-size:16px;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{background:#F1ECE2}
.faq summary .q{font-family:Inter,sans-serif;font-size:20px;color:var(--teal)}
.faq summary .t{flex:1 1 auto;min-width:0}
.faq summary svg{transition:transform .3s ease;flex:0 0 auto}
.faq details[open] summary svg{transform:rotate(180deg)}
.faq .a{padding:0 24px 22px;display:flex;gap:16px;font-size:15px;color:var(--sub)}
.faq .a b{font-family:Inter,sans-serif;font-size:20px;color:var(--coral);line-height:1.4}

/* fixed bar */
.fixbar{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:50;display:flex;gap:8px;background:rgba(255,255,255,.94);padding:8px;border-radius:999px;box-shadow:0 10px 30px rgba(14,111,168,.22);max-width:calc(100% - 32px)}
.fixbar a{padding:10px 20px;font-size:14px;white-space:nowrap}
.fixbar .plain{color:var(--deep)}
@media (max-width:480px){.fixbar{left:12px;right:12px;transform:none;max-width:none;justify-content:center}.fixbar .plain{display:none}.fixbar a{flex:1 1 0;padding:10px 8px;font-size:14px}}

/* footer */
.site-footer{border-top:1px solid var(--line);padding:32px 24px 110px;text-align:center;font-size:13px;color:var(--muted);display:flex;flex-direction:column;gap:8px}

/* privacy */
.doc{max-width:860px;margin:0 auto;padding:48px 24px 120px;display:flex;flex-direction:column;gap:40px;line-height:1.9}
.doc h1{margin:0;font-size:clamp(26px,3.4vw,38px);font-weight:500;line-height:1.4}
.doc h2{margin:0 0 10px;font-size:20px;font-weight:500}
.doc p,.doc ul{margin:0;font-size:15px;color:var(--sub)}
.doc ul{padding-left:1.4em}

@media (max-width:480px){.site-header{flex-wrap:nowrap}.brand-name>span{display:none}.brand-name b{font-size:17px}.chart-x span{font-size:11px;line-height:1.5}.chart-x strong{font-size:13px}}

/* scroll motion */
.progress{position:fixed;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--teal),var(--accent));transform-origin:left;transform:scaleX(0);z-index:60;pointer-events:none}
.reveal.from-left{transform:translateX(-70px)}
.reveal.from-right{transform:translateX(70px)}
.reveal.zoom{transform:scale(.92)}
.reveal.in{opacity:1;transform:none}
.wipe{clip-path:inset(0 100% 0 0 round 24px);transition:clip-path 1.2s cubic-bezier(.7,0,.2,1)}
.feature.rev .wipe{clip-path:inset(0 0 0 100% round 24px)}
.wipe.in,.feature.rev .wipe.in{clip-path:inset(0 0 0 0 round 24px)}
.px{will-change:transform;transform:scale(1.15)}
.feature-img span{opacity:0;transform:translateY(20px);transition:opacity .6s .9s,transform .6s .9s}
.wipe.in span{opacity:1;transform:none}
.wm{position:absolute;top:28px;left:0;white-space:nowrap;font-weight:500;font-size:clamp(80px,15vw,210px);line-height:1;color:rgba(15,110,110,.07);pointer-events:none;will-change:transform;letter-spacing:-.02em}
#career .wm{color:rgba(255,255,255,.06)}
.wm~.wrap{position:relative;z-index:1}
.label{display:inline-flex;align-items:center;gap:10px}
.label::before{content:"";display:block;width:0;height:2px;background:currentColor;transition:width .8s .3s cubic-bezier(.2,.7,.2,1)}
.in .label::before,.label.in::before,.reveal.in>.label::before{width:28px}
.flowgrid{position:relative}
.flowgrid::before{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background:linear-gradient(90deg,var(--teal),var(--accent));transform:scaleX(0);transform-origin:left;transition:transform 1.6s cubic-bezier(.2,.7,.2,1);z-index:0}
.flowgrid.in::before{transform:scaleX(1)}
.flowgrid>*{position:relative;z-index:1}
@media (prefers-reduced-motion:reduce){.wipe,.feature.rev .wipe{clip-path:none}.feature-img span{opacity:1;transform:none}.label::before{width:28px}.flowgrid::before{transform:none}}

/* WellShip */
.serif{font-family:'Cormorant Garamond','Times New Roman',serif}
.stars circle{opacity:.2;animation:twinkle 4s ease-in-out infinite}
@keyframes twinkle{0%,100%{opacity:.15}50%{opacity:.9}}
.compass{position:absolute;right:-90px;top:50%;width:min(520px,60vw);height:auto;margin-top:-300px;opacity:.28;animation:spin 120s linear infinite;pointer-events:none}
@keyframes spin{to{transform:rotate(360deg)}}
.sea{position:absolute;left:0;right:0;bottom:0;height:200px;overflow:hidden;pointer-events:none}
.sea.small{height:140px}
.sea .wave{position:absolute;left:0;bottom:0;width:200%;height:100%;animation:sail linear infinite}
.sea .w1{animation-duration:18s}.sea .w2{animation-duration:26s;animation-direction:reverse}.sea .w3{animation-duration:34s}
@keyframes sail{to{transform:translateX(-50%)}}
.flowgrid::before{background:repeating-linear-gradient(90deg,var(--accent) 0 10px,transparent 10px 18px)!important}
#entry > div{background:radial-gradient(120% 120% at 15% 0%,#2E9BD6 0%,#0B5E92 60%)!important}
@media (max-width:640px){.compass{right:-160px;opacity:.18}.sea{height:130px}}
@media (prefers-reduced-motion:reduce){.compass,.sea .wave,.stars circle{animation:none}}

/* custom cursor (mouse only) */
.cursor-ring,.cursor-dot{display:none}
.has-cursor,.has-cursor *{cursor:none!important}
.has-cursor .cursor-ring,.has-cursor .cursor-dot{display:block;position:fixed;left:0;top:0;z-index:9999;pointer-events:none;opacity:0;transition:opacity .3s}
.cursor-on .cursor-ring,.cursor-on .cursor-dot{opacity:1}
.cursor-dot{width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:var(--accent)}
.cursor-ring{width:38px;height:38px;margin:-19px 0 0 -19px}
.cursor-ring svg{width:100%;height:100%;display:block;border:1.5px solid var(--teal);border-radius:50%;padding:7px;box-sizing:border-box;transition:transform .35s cubic-bezier(.2,.7,.2,1),background-color .3s,border-color .3s;animation:spin 14s linear infinite}
.cursor-ring svg path{fill:none;stroke:var(--accent);stroke-width:1.6;transition:fill .3s}
.cursor-dark .cursor-ring svg{border-color:#CFE3F0}
.cursor-hover .cursor-ring svg{transform:scale(1.7);background:rgba(14,111,168,.16);border-color:var(--accent)}
.cursor-hover .cursor-ring svg path{fill:var(--accent)}
.cursor-hover .cursor-dot{opacity:0}
.cursor-down .cursor-ring svg{transform:scale(.8)}
.cursor-hover.cursor-down .cursor-ring svg{transform:scale(1.4)}
@media (prefers-reduced-motion:reduce){.cursor-ring svg{animation:none}}
.cursor-hover .cursor-ring svg{border-color:var(--deep)}
.cursor-hover .cursor-ring svg path{fill:var(--deep);stroke:var(--deep)}
.cursor-dark.cursor-hover .cursor-ring svg{border-color:#FFE9A8}
.cursor-dark.cursor-hover .cursor-ring svg path{fill:#FFE9A8;stroke:#FFE9A8}

/* English font: Inter (self-hosted) */
.serif{font-family:Inter,'Helvetica Neue',Arial,sans-serif!important;font-style:normal!important;letter-spacing:-.01em}

.marquee.serif,.wm.serif{font-weight:500!important;text-transform:uppercase}
.brand-name b .serif{font-weight:500;font-size:22px;letter-spacing:-.02em}
#about .serif{font-size:34px!important;font-weight:500!important;letter-spacing:-.02em}
#values .reveal.serif{font-size:16px!important;font-weight:500!important;letter-spacing:0}
[aria-label="1号店オープン"] .serif{font-size:14px!important;font-weight:500!important;letter-spacing:.14em!important;text-transform:uppercase}
.en{font-family:Inter,'Helvetica Neue',Arial,sans-serif}
.hero .marquee{opacity:.5}

.ig{transition:background-color .25s,transform .25s}.ig:hover{background:#F1ECE2;transform:translateY(-2px)}
@media (max-width:480px){.gnav{gap:8px}.gnav .ig{width:40px!important;height:40px!important}}
@media (max-width:480px){.gnav{flex-wrap:nowrap}.brand-name b small{display:none}.brand svg{width:34px;height:34px}}

/* vision: ship sailing */
.voyage{position:absolute;inset:0;pointer-events:none;opacity:.2;overflow:hidden;z-index:0}
.ship-track{position:absolute;bottom:62px;left:-30%;width:min(460px,60vw);animation:drift 70s linear -30s infinite}
.ship{display:block;width:100%;height:auto;transform-origin:50% 85%;animation:bob 6s ease-in-out infinite}
@keyframes drift{from{left:-30%}to{left:105%}}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-2.5deg)}50%{transform:translateY(10px) rotate(2deg)}}
.vwave{position:absolute;left:0;width:200%;height:120px;animation:sail linear infinite}
.vw1{bottom:0;animation-duration:22s}.vw2{bottom:26px;animation-duration:30s;animation-direction:reverse;opacity:.7}.vw3{bottom:52px;animation-duration:38s;opacity:.5}
@keyframes sail{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.ship-track{animation:none;left:58%}.ship,.vwave{animation:none}}

.feature-img video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;background:var(--mint)}

/* bright sunny sea */
.hero{background:linear-gradient(180deg,#6EC6F0 0%,#A9DDF6 45%,#E3F5FD 78%)!important}
.hero h1{color:#0F2A3D!important}
.hero p:not(.pill){color:#24577A!important}
.hero .btn-line{border-color:#0F2A3D;color:#0F2A3D}.hero .btn-line:hover{color:#0F2A3D}
.hero .marquee{color:#0E6FA8;opacity:.6}
.stars,.compass{display:none}
.sun{position:absolute;right:6%;top:-90px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,#FFFBE3 0%,#FFE58A 30%,rgba(255,229,138,.35) 50%,rgba(255,229,138,0) 70%);animation:sunpulse 6s ease-in-out infinite;pointer-events:none}
@keyframes sunpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
.clouds{position:absolute;left:0;top:0;width:100%;height:300px;pointer-events:none}
.cl{animation:cloud 60s linear infinite}.c2{animation-duration:90s;animation-delay:-30s}.c3{animation-duration:75s;animation-delay:-50s}
@keyframes cloud{from{transform:translateX(-300px)}to{transform:translateX(1500px)}}
#career{background:linear-gradient(180deg,#2E9BD6 0%,#0B5E92 100%)!important}
#entry > div{background:linear-gradient(160deg,#2E9BD6 0%,#0B5E92 100%)!important}
#career .wm{color:rgba(255,255,255,.08)}
@media (prefers-reduced-motion:reduce){.sun,.cl{animation:none}}
#entry > div{align-items:center;padding-top:96px!important;padding-bottom:120px!important}

/* refined hero */
.hero{background:linear-gradient(180deg,#F4F9FC 0%,#EAF4FA 58%,#DCEDF6 100%)!important;min-height:640px!important;border:1px solid #DCEAF2}
.h-light{position:absolute;right:-12%;top:-35%;width:75%;height:100%;background:radial-gradient(closest-side,rgba(255,228,176,.6),rgba(255,228,176,0));pointer-events:none}
.h-horizon{position:absolute;left:0;right:0;bottom:24%;height:1px;background:linear-gradient(90deg,rgba(14,111,168,0),rgba(14,111,168,.35) 20%,rgba(14,111,168,.35) 80%,rgba(14,111,168,0))}
.lw{position:absolute;left:0;width:200%;height:40px;pointer-events:none;animation:sail linear infinite}
.lw1{animation-duration:40s}.lw2{animation-duration:52s;animation-direction:reverse}.lw3{animation-duration:46s}.lw4{animation-duration:60s;animation-direction:reverse}
.h-inner{position:relative;z-index:1;max-width:1000px;display:flex;flex-direction:column;gap:22px}
.h-label{margin:0 0 6px;display:flex;align-items:center;gap:14px;font-family:Inter,sans-serif;font-size:12px;letter-spacing:.32em;font-weight:500;color:#0E6FA8}
.h-label span:last-child{font-family:'Noto Sans JP',sans-serif;letter-spacing:.24em;font-weight:500;color:#4B6478}
.h-label i{display:block;width:44px;height:1px;background:#0E6FA8}
.hero .h-title{margin:0;font-family:Inter,sans-serif;font-weight:500;font-size:clamp(20px,5.2vw,72px);line-height:1.08;letter-spacing:-.035em;color:#0B2338;white-space:nowrap}
.h-sub{margin:0;font-size:clamp(13px,1.3vw,16px);letter-spacing:.42em;font-weight:500;color:#4B6478}
.h-cta{display:flex;flex-wrap:wrap;align-items:center;gap:20px 32px;margin-top:22px}
.h-btn{display:inline-flex;align-items:center;gap:12px;background:#0B2338;color:#FFFFFF;text-decoration:none;padding:17px 34px;border-radius:999px;font-weight:500;font-size:15px;letter-spacing:.06em;min-height:48px;box-sizing:border-box;transition:background-color .3s,transform .3s}
.h-btn:hover{background:#0E6FA8;color:#FFFFFF;transform:translateY(-2px)}
.h-link{color:#0B2338;text-decoration:none;font-weight:500;font-size:15px;letter-spacing:.06em;padding:12px 0;border-bottom:1px solid #0B2338;min-height:44px;box-sizing:border-box;display:inline-flex;align-items:center}
.h-link:hover{color:#0E6FA8;border-color:#0E6FA8}
.btn-coral{background:#0B2338!important;color:#FFFFFF!important}.btn-coral:hover{background:#0E6FA8!important}
@media (prefers-reduced-motion:reduce){.lw{animation:none}}

.hero .h-inner{margin-top:-60px}
@media (max-width:640px){.hero .h-inner{margin-top:-80px}}

/* refine pass */
.progress{height:2px;background:#0B2338!important}
#career{background:#105E8F!important}
#entry > div{background:#0B2338!important}
#entry > div .label,#career .label{color:rgba(255,255,255,.7)!important}
.flowgrid::before{background:#C9DCE8!important;height:1px!important}
#message{justify-content:center}
#message > div{flex:0 1 860px!important}
.feature-img{border-radius:20px}
.card,.lift{box-shadow:none}
.lift:hover{box-shadow:0 14px 34px rgba(11,35,56,.10)}

/* refine pass 2 */
.fixbar{display:none!important}
.fixentry{position:fixed;right:20px;bottom:20px;z-index:50;display:inline-flex;align-items:center;gap:10px;background:#0B2338;color:#FFFFFF;text-decoration:none;font-family:Inter,sans-serif;font-weight:500;font-size:14px;letter-spacing:.08em;padding:14px 22px;border-radius:999px;min-height:48px;box-sizing:border-box;opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .4s,transform .4s,background-color .3s;box-shadow:0 10px 24px rgba(11,35,56,.18)}
.past-hero .fixentry{opacity:1;transform:none;pointer-events:auto}
.fixentry:hover{background:#0E6FA8;color:#FFFFFF}
/* simple cursor */
.cursor-ring{width:30px!important;height:30px!important;margin:-15px 0 0 -15px!important;border:1px solid #0B2338;border-radius:50%;box-sizing:border-box;transition:width .3s,height .3s,margin .3s,background-color .3s,border-color .3s,opacity .3s}
.cursor-dot{background:#0B2338!important;width:5px!important;height:5px!important;margin:-2.5px 0 0 -2.5px!important}
.cursor-dark .cursor-ring{border-color:#FFFFFF}.cursor-dark .cursor-dot{background:#FFFFFF!important}
.cursor-hover .cursor-ring{width:56px!important;height:56px!important;margin:-28px 0 0 -28px!important;background:rgba(14,111,168,.12);border-color:#0E6FA8}
.cursor-down .cursor-ring{width:24px!important;height:24px!important;margin:-12px 0 0 -12px!important}
/* headings lighter */
h1,h2,h3{font-weight:500!important}
h2{letter-spacing:.03em}
/* illustrations / videos: muted duotone */
.feature-img{background:#E3EEF5!important}
.feature-img video,.feature-img img{filter:grayscale(1) contrast(.92) brightness(1.06);mix-blend-mode:multiply;opacity:.9}
.feature-img::after{content:"";position:absolute;inset:0;background:#0E6FA8;mix-blend-mode:screen;opacity:.18;pointer-events:none}
/* list-style training & values */
#training [data-stagger]>div{background:transparent!important;border:0!important;border-top:1px solid #C9DCE8!important;border-radius:0!important;padding:22px 4px 8px!important}
#training [data-stagger]{gap:0 32px!important}
#training [data-stagger]>div:hover{transform:none;box-shadow:none}
.fixentry{bottom:88px!important;right:20px!important}

/* Apple-style pinned scrolling */
.pin{position:relative}
.sticky{position:sticky;top:0;height:100vh;height:100svh}
.hl .c{color:rgba(11,35,56,.16);transition:color .25s ease}
.hl .c.on{color:var(--ink)}
.hl em{font-style:normal}
.hl .c.em.on{color:var(--teal)}
.stage{position:relative;min-height:300px}
.panel{position:absolute;inset:0;display:flex;flex-wrap:wrap;align-items:center;gap:20px 64px;opacity:0;transform:translateY(60px);transition:opacity .7s ease,transform .9s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.panel.past{transform:translateY(-60px)}
.panel.on{opacity:1;transform:none;pointer-events:auto}
.panel .big{font-size:clamp(64px,12vw,176px);font-weight:500;font-style:italic;line-height:1;color:var(--teal);letter-spacing:-.02em}
.panel .pbody{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;gap:12px}
.panel .pbody strong{font-size:clamp(19px,2vw,24px);line-height:1.5}
.panel .pbody p{margin:0;font-size:16px;color:var(--sub);line-height:1.9}
.dots{display:flex;gap:10px}
.dots i{width:28px;height:4px;border-radius:2px;background:rgba(11,35,56,.15);transition:background .4s,width .4s}
.dots i.on{background:var(--teal);width:56px}
.htrack{display:flex;gap:32px;width:max-content;padding:0 max(24px,calc((100vw - 1240px)/2 + 24px));will-change:transform}
.hcard{width:min(1040px,84vw);display:flex;flex-wrap:wrap;gap:20px 40px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:28px;padding:28px;transition:opacity .2s linear}
.hcard .feature-img{flex:1 1 380px;clip-path:none}
.hcard .feature-img video,.hcard .feature-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hcard .feature-img span{opacity:1;transform:none}
.hcard .feature-body{flex:1 1 380px;opacity:1;transform:none}
.hbar{height:3px;background:var(--line);border-radius:2px;overflow:hidden}
.hbar i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--accent));transform:scaleX(0);transform-origin:left}
.hero{transform-origin:center top;will-change:transform}
@media (max-width:700px){.stage{min-height:380px}.panel{gap:12px}.hcard{padding:18px;gap:14px;border-radius:22px}.hcard .feature-body{gap:8px}.hcard .lead{font-size:14px;line-height:1.7}#feature .sticky{gap:16px}}
.rm .pin{height:auto!important}
.rm .sticky{position:static;height:auto;padding:100px 0}
.rm .stage{min-height:0;display:flex;flex-direction:column;gap:40px}
.rm .panel{position:static;opacity:1;transform:none}
.rm .htrack{flex-direction:column;width:auto;transform:none!important}
.rm .hcard{width:auto}
.rm .hl .c{color:var(--ink)}
.rm .dots,.rm .hbar{display:none}
#about .panel .big{font-size:clamp(60px,11vw,160px)!important;font-weight:500!important;line-height:1;letter-spacing:-.03em}

/* glass header */
.glassbar{position:sticky;top:0;z-index:55;background:rgba(255,255,255,.72);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid transparent;transition:transform .4s cubic-bezier(.2,.7,.2,1),border-color .3s,background .3s}
.glassbar.solid{border-bottom-color:rgba(11,35,56,.08)}
.glassbar.hide{transform:translateY(-100%)}
.glassbar .site-header{padding-top:12px;padding-bottom:12px}
/* stacking value cards */
.stack{border-bottom:0!important;padding-bottom:40px}
.stack .vrow{position:sticky;top:calc(96px + var(--i)*18px);background:#fff;border:1px solid var(--line)!important;border-radius:28px;padding:44px 44px!important;margin-bottom:36px;min-height:240px;align-items:center;box-shadow:0 24px 60px rgba(11,35,56,.08);transform-origin:center top;will-change:transform}
.stack .vrow>div:first-child>span{font-size:13px!important}
.stack .vrow strong{font-size:clamp(22px,2.4vw,30px)!important}
@media (max-width:700px){.stack .vrow{padding:28px 24px!important;top:calc(80px + var(--i)*12px);min-height:0;border-radius:22px}}
/* bento tiles */
.bento{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.tile{background:var(--mist);border-radius:28px;padding:30px 28px;display:flex;flex-direction:column;gap:10px;min-height:200px;justify-content:space-between;transition:transform .35s ease,box-shadow .35s ease}
.tile:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(11,35,56,.10)}
.t-wide{grid-column:span 2}
.t-dark{background:var(--ink);color:#fff}
.t-accent{background:var(--teal);color:#fff}
.tk{font-size:13px;font-weight:500;letter-spacing:.12em;opacity:.7}
.tn{font-family:Inter,sans-serif;font-weight:500;font-size:clamp(34px,4.4vw,56px);line-height:1.05;letter-spacing:-.03em}
.tn small{font-size:.45em;font-weight:500;letter-spacing:0;margin:0 .1em}
.tn-s{font-family:inherit;font-size:clamp(26px,3vw,36px);letter-spacing:0;font-weight:500}
.ts{font-size:14px;line-height:1.7;opacity:.8}
@media (max-width:820px){.bento{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.bento{gap:10px}.tile{padding:22px 18px;min-height:150px;border-radius:22px}.tn{font-size:32px}.t-dark .tn{font-size:28px}}
.rm .stack .vrow{position:static;transform:none!important;opacity:1!important}
.t-full{grid-column:1/-1;min-height:0}
.tn-n{white-space:nowrap;font-size:clamp(28px,3.4vw,46px)}

/* hero message motion */
.hw{display:inline-block;overflow:hidden;vertical-align:bottom;padding:0 .02em .1em;margin-bottom:-.1em}
.hw>span{display:inline-block;transform:translateY(110%);filter:blur(10px);opacity:0;animation:wordUp 1.15s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes wordUp{to{transform:none;filter:blur(0);opacity:1}}
.hero .h-title .grad{background:linear-gradient(100deg,#0B2338 0%,#0B2338 35%,#0E6FA8 45%,#7CC3EA 50%,#0E6FA8 55%,#0B2338 65%,#0B2338 100%);background-size:300% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;color:transparent;animation:wordUp 1.15s cubic-bezier(.2,.8,.2,1) forwards,sheen 5.5s ease-in-out infinite}
@keyframes sheen{0%{background-position:100% 0}45%,100%{background-position:0 0}}
.h-sub .sc{display:inline-block;opacity:0;transform:translateY(.5em);filter:blur(4px);animation:charIn .7s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes charIn{to{opacity:1;transform:none;filter:blur(0)}}
.h-label i{animation:lineGrow 1.1s cubic-bezier(.2,.8,.2,1) .15s both}
@keyframes lineGrow{from{width:0}to{width:44px}}
@media (prefers-reduced-motion:reduce){.hw>span,.h-sub .sc{transform:none!important;opacity:1!important;filter:none!important}.hero .h-title .grad{color:#0B2338;background:none}}
@media (max-width:640px){.hero .h-title{white-space:normal;font-size:clamp(36px,11vw,46px);line-height:1.12}}

/* ===== multi-page ===== */
.gnav a[aria-current="page"]{color:var(--teal);font-weight:500}
.menu-btn{display:none;width:44px;height:44px;border:1px solid #D7E8F1;border-radius:50%;background:#fff;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0}
.menu-btn i{display:block;width:16px;height:1.5px;background:var(--ink);transition:transform .3s ease}
.menu-btn[aria-expanded="true"] i:first-child{transform:translateY(3.25px) rotate(45deg)}
.menu-btn[aria-expanded="true"] i:last-child{transform:translateY(-3.25px) rotate(-45deg)}
.mnav{display:flex;flex-direction:column;padding:8px 24px 24px;border-top:1px solid rgba(11,35,56,.06)}
.mnav[hidden]{display:none}
.mnav a{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:16px 4px;border-bottom:1px solid #E6F0F6;color:var(--ink);text-decoration:none;font-weight:500;font-size:17px;min-height:44px}
.mnav a .en{font-family:Inter,sans-serif;font-size:13px;letter-spacing:.2em;color:var(--teal);font-weight:500;order:2}
.mnav a[aria-current="page"]{color:var(--teal)}
.mnav .mnav-entry{justify-content:center;margin-top:16px;background:var(--teal);color:#fff;border-radius:999px;border:0}
@media (max-width:820px){.menu-btn{display:inline-flex}.gnav .btn{display:none}}
@media (min-width:821px){.mnav{display:none!important}}
.menu-open .glassbar{background:rgba(255,255,255,.96)}

.page-hero{max-width:1392px;margin:0 auto;padding:12px 24px 0}
.ph-inner{border-radius:28px;background:linear-gradient(180deg,#CFEAF8 0%,#E3F5FD 55%,#F7FCFF 100%);padding:clamp(72px,9vw,120px) clamp(24px,6vw,88px) clamp(56px,7vw,96px);display:flex;flex-direction:column;gap:18px;position:relative;overflow:hidden}
.ph-title{margin:0;font-size:clamp(34px,5.4vw,72px);font-weight:500;line-height:1.2;letter-spacing:.02em;color:#0B2338}
.ph-lead{margin:0;font-size:clamp(14px,1.4vw,17px);letter-spacing:.12em;color:#4B6478;line-height:1.9}

.explore{padding:120px 0 100px}
.xgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.xcard{position:relative;background:var(--mist);border-radius:28px;padding:32px 30px 64px;display:flex;flex-direction:column;gap:10px;min-height:240px;text-decoration:none;color:var(--ink);transition:transform .35s ease,box-shadow .35s ease}
.xcard:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(11,35,56,.10);color:var(--ink)}
.xcard.x-wide{grid-column:span 2}
.xcard.x-dark{background:var(--ink);color:#fff}.xcard.x-dark:hover{color:#fff}
.xk{font-size:13px;letter-spacing:.2em;font-weight:500;color:var(--teal)}
.x-dark .xk{color:#6EC6F0}
.xcard b{font-size:clamp(22px,2.2vw,30px);line-height:1.4}
.xs{font-size:14px;line-height:1.8;opacity:.8}
.xgo{position:absolute;right:28px;bottom:24px;font-size:24px;font-family:Inter,sans-serif;transition:transform .3s ease}
.xcard:hover .xgo{transform:translateX(6px)}
@media (max-width:820px){.xgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.xgrid{grid-template-columns:1fr}.xcard.x-wide{grid-column:auto}.xcard{min-height:0}}

.next-page{max-width:1240px;margin:0 auto;padding:40px 24px 120px}
.next-card{display:flex;align-items:center;gap:24px;padding:36px 40px;border-radius:28px;background:var(--mist);text-decoration:none;color:var(--ink);transition:transform .35s ease,box-shadow .35s ease}
.next-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(11,35,56,.10);color:var(--ink)}
.np-k{font-family:Inter,sans-serif;font-size:13px;letter-spacing:.24em;font-weight:500;color:var(--teal)}
.np-t{flex:1;display:flex;flex-direction:column;gap:2px}
.np-t .en{font-size:13px;letter-spacing:.16em;color:#6B7280}
.np-t b{font-size:clamp(22px,2.6vw,32px)}
.next-card svg{color:var(--teal);transition:transform .3s ease}
.next-card:hover svg{transform:translateX(6px)}

.fnav{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 24px;margin-bottom:16px;font-size:14px;font-weight:500}
.fnav a{color:var(--ink);text-decoration:none}
.fnav a:hover{color:var(--teal)}
.xcard.x-full{grid-column:1/-1;min-height:200px}

/* ===== Work: Apple-style intro statement ===== */
.wk-intro{position:relative;height:260vh;background:#FFFFFF;color:#F5F7FA}
.wk-sticky{position:sticky;top:0;height:100vh;background:var(--bg,#FFFFFF);display:flex;align-items:center;justify-content:center;overflow:hidden}
.wk-glow{position:absolute;left:50%;top:55%;width:120vmax;height:120vmax;transform:translate(-50%,-50%) scale(var(--g,.6));background:radial-gradient(closest-side,rgba(63,169,227,.30),rgba(14,111,168,.12) 45%,transparent 70%);opacity:var(--go,0);pointer-events:none;will-change:transform,opacity}
.wk-inner{position:relative;max-width:1100px;padding:0 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:28px}
.wk-eyebrow{margin:0;font-family:Inter,sans-serif;font-size:13px;font-weight:500;letter-spacing:.32em;color:#6EC6F0;opacity:var(--eo,0);transform:translateY(calc((1 - var(--eo,0)) * 16px))}
.wk-title{margin:0;font-size:clamp(34px,6.4vw,96px);font-weight:500;line-height:1.25;letter-spacing:-.01em;
 background:linear-gradient(100deg,#F5F7FA 0%,#F5F7FA 45%,#DDF1FB 58%,#6EC6F0 74%,#3FA9E3 86%,#0E6FA8 100%);background-size:200% 100%;background-position:var(--bp,0%) 0;-webkit-background-clip:text;background-clip:text;color:transparent;
 opacity:var(--to,0);transform:scale(var(--ts,.86));filter:blur(var(--tb,10px));will-change:transform,opacity,filter}
.wk-sub{margin:0;font-size:clamp(15px,1.5vw,19px);line-height:1.9;color:#8B97A6;opacity:var(--so,0);transform:translateY(calc((1 - var(--so,0)) * 24px))}
.wk-scroll{width:1px;height:56px;background:rgba(255,255,255,.15);position:relative;overflow:hidden;margin-top:12px;opacity:calc(1 - var(--so,0))}
.wk-scroll i{position:absolute;left:0;top:-40%;width:1px;height:40%;background:#6EC6F0;animation:wkdrop 1.8s ease-in-out infinite}
@keyframes wkdrop{to{top:100%}}
@media (max-width:640px){.wk-intro{height:230vh}.wk-inner{gap:22px}}
@media (prefers-reduced-motion:reduce){.wk-intro{height:auto}.wk-sticky{position:relative;height:auto;padding:140px 0;background:#050A12}.wk-title,.wk-sub,.wk-eyebrow{opacity:1!important;transform:none!important;filter:none!important}.wk-glow{opacity:1}}
.rm .wk-intro{height:auto}.rm .wk-sticky{position:relative;height:auto;padding:140px 0;background:#050A12}.rm .wk-title{background-position:100% 0!important}.rm .wk-title,.rm .wk-sub,.rm .wk-eyebrow{opacity:1!important;transform:none!important;filter:none!important}

/* vision: flowing light lines (replaces ship) */
#career .voyage{opacity:1}
#career .flow{position:absolute;left:0;right:0;bottom:0;width:100%;height:78%;display:block}
#career .flow-glow{position:absolute;left:50%;bottom:-30%;width:140%;height:90%;transform:translateX(-50%);background:radial-gradient(closest-side,rgba(63,169,227,.22),rgba(14,111,168,.08) 55%,transparent 75%);animation:fglow 9s ease-in-out infinite alternate}
@keyframes fglow{from{opacity:.65;transform:translateX(-52%) scale(1)}to{opacity:1;transform:translateX(-48%) scale(1.08)}}
@media (prefers-reduced-motion:reduce){#career .flow-glow{animation:none}}
#career{background:radial-gradient(120% 80% at 70% 105%,#0E4F7E 0%,#0A2A47 45%,#050A12 100%)!important}

/* ===== Top: editorial (NOTA-like) ===== */
.nx-in{max-width:1180px;margin:0 auto;padding:0 24px}
.nx-k{margin:0;font-family:Inter,sans-serif;font-weight:500;font-size:12px;letter-spacing:.32em;color:#0E6FA8}
.nx-big{margin:28px 0 0;font-weight:500;font-size:clamp(34px,6.2vw,84px);line-height:1.3;letter-spacing:.04em;color:#0B2338}
.nx-s{margin:32px 0 0;font-size:clamp(14px,1.25vw,16px);line-height:2.2;letter-spacing:.08em;color:#5B6675}
.nx-chapter{min-height:100vh;display:flex;align-items:center;padding:160px 0}
.nx-facts{padding:40px 0 180px}
.nx-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #D7E8F1}
.nx-row>div{padding:36px 28px 0 0}
.nx-row>div+div{padding-left:28px;border-left:1px solid #D7E8F1}
.nx-fk{margin:0;font-family:Inter,sans-serif;font-weight:500;font-size:11px;letter-spacing:.3em;color:#8A97A6}
.nx-fv{margin:18px 0 0;font-family:Inter,sans-serif;font-weight:500;font-size:clamp(44px,5.4vw,76px);line-height:1;letter-spacing:-.02em;color:#0B2338}
.nx-fv span{font-family:"Noto Sans JP",sans-serif;font-size:.3em;letter-spacing:.06em;margin-left:6px;color:#0E6FA8}
.nx-fl{margin:14px 0 0;font-size:13px;letter-spacing:.08em;color:#5B6675}
.nx-index{padding:60px 0 200px}
.nx-list{margin-top:40px;border-top:1px solid #D7E8F1}
.nx-list a{position:relative;display:grid;grid-template-columns:72px minmax(0,1fr) auto 40px;align-items:baseline;gap:16px;padding:34px 0;border-bottom:1px solid #D7E8F1;text-decoration:none;color:#0B2338;overflow:hidden}
.nx-list a::after{content:'';position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:#0E6FA8;transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.nx-list a:hover::after{transform:scaleX(1)}
.nx-no{font-family:Inter,sans-serif;font-weight:500;font-size:13px;letter-spacing:.2em;color:#8A97A6}
.nx-en{font-family:Inter,sans-serif;font-weight:500;font-size:clamp(34px,5vw,64px);line-height:1;letter-spacing:-.01em;transition:transform .5s cubic-bezier(.2,.7,.2,1),color .3s}
.nx-ja{font-size:14px;letter-spacing:.12em;color:#5B6675}
.nx-go{font-family:Inter,sans-serif;font-size:22px;color:#0E6FA8;opacity:0;transform:translateX(-12px);transition:all .5s cubic-bezier(.2,.7,.2,1);text-align:right}
.nx-list a:hover .nx-en{transform:translateX(14px);color:#0E6FA8}
.nx-list a:hover .nx-go{opacity:1;transform:none}
.nx-blog{padding:0 0 200px}
.nx-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:36px}
.nx-more{font-size:13px;letter-spacing:.1em;color:#0E6FA8;text-decoration:none}
.nx-entry{padding:120px 0 220px;text-align:center}
.nx-entry .nx-in{display:flex;flex-direction:column;align-items:center}
.nx-cta{margin-top:56px;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:20px 36px}
.nx-btn{display:inline-flex;align-items:center;gap:18px;padding:20px 40px;border-radius:999px;background:#0B2338;color:#fff;text-decoration:none;font-size:15px;letter-spacing:.14em;transition:background .3s,gap .3s}
.nx-btn:hover{background:#0E6FA8;gap:26px}
.nx-link{font-size:14px;letter-spacing:.1em;color:#0B2338;text-decoration:none;border-bottom:1px solid #9AA9B8;padding-bottom:4px}
.nx-link:hover{color:#0E6FA8;border-color:#0E6FA8}
@media (max-width:720px){
 .nx-chapter{min-height:80vh;padding:120px 0}
 .nx-row{grid-template-columns:1fr}
 .nx-row>div,.nx-row>div+div{padding:28px 0;border-left:0;border-bottom:1px solid #D7E8F1}
 .nx-facts{padding:20px 0 120px}
 .nx-index{padding:40px 0 140px}
 .nx-list a{grid-template-columns:44px minmax(0,1fr) 24px;padding:26px 0}
 .nx-ja{grid-column:2;margin-top:-4px;font-size:12px}
 .nx-go{grid-row:1;grid-column:3;opacity:1;transform:none;font-size:18px}
 .nx-blog{padding-bottom:140px}
 .nx-entry{padding:80px 0 160px}
}

.nx-src{margin-top:28px!important;font-size:11px;letter-spacing:.04em;color:#8A97A6}

/* ===== Typography: NOTA-like (Inter + Noto Sans JP, light & airy) ===== */
body{font-family:'Noto Sans JP','Hiragino Sans','Hiragino Kaku Gothic ProN',Meiryo,sans-serif!important;font-weight:400;letter-spacing:.04em;font-feature-settings:"palt"}
h1,h2,h3,h4,b,strong,th{font-weight:500}
p,li,dd,td{font-weight:400}
.lead,.nx-s{font-weight:300!important;letter-spacing:.06em}
.label,.nx-k,.nx-fk,.h-label{letter-spacing:.3em!important}

/* ===== Curriculum (training evidence) ===== */
.cv{padding:140px 0 120px}
.cv-in{max-width:1180px;margin:0 auto;padding:0 24px}
.cv-head{max-width:820px}
.cv-head .h2{margin:16px 0 0}
.cv-lead{margin:24px 0 0;font-size:15px;line-height:2.1;color:#5B6675;font-weight:300}
.cv-stats{margin-top:56px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid #D7E8F1;border-bottom:1px solid #D7E8F1}
.cv-stats>div{padding:28px 20px 26px 0}
.cv-stats>div+div{padding-left:24px;border-left:1px solid #D7E8F1}
.cv-n{margin:0;font-family:Inter,sans-serif;font-weight:500;font-size:clamp(40px,4.6vw,60px);line-height:1;letter-spacing:-.02em;color:#0B2338}
.cv-n small{font-family:'Noto Sans JP',sans-serif;font-size:.28em;letter-spacing:.06em;margin-left:6px;color:#0E6FA8}
.cv-l{margin:12px 0 0;font-size:12.5px;line-height:1.6;color:#5B6675}
.cv-list{list-style:none;margin:56px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px}
.cv-item{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:16px;align-items:baseline;padding:22px 0;border-bottom:1px solid #D7E8F1}
.cv-no{font-family:Inter,sans-serif;font-size:13px;letter-spacing:.16em;color:#0E6FA8}
.cv-body strong{display:block;font-size:17px;font-weight:500;color:#0B2338}
.cv-body span{display:block;margin-top:6px;font-size:13px;line-height:1.75;color:#5B6675}
.cv-pages{font-family:Inter,sans-serif;font-size:20px;color:#0B2338}
.cv-pages small{font-family:'Noto Sans JP',sans-serif;font-size:11px;margin-left:2px;color:#8A97A6}
.cv-samples{margin-top:110px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.cv-sh{grid-column:1/-1}
.cv-sh h3{margin:14px 0 0;font-size:clamp(20px,2vw,26px);font-weight:500;color:#0B2338}
.cv-slide{margin:0;display:flex;flex-direction:column;gap:16px}
.cv-slide a{display:block;border-radius:14px;overflow:hidden;border:1px solid #D7E8F1;box-shadow:0 10px 30px rgba(11,35,56,.06);transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s}
.cv-slide a:hover{transform:translateY(-6px);box-shadow:0 20px 44px rgba(11,35,56,.12)}
.cv-slide img{display:block;width:100%;height:auto}
.cv-slide figcaption{display:flex;flex-direction:column;gap:6px}
.cv-vol{font-family:Inter,'Noto Sans JP',sans-serif;font-size:11px;letter-spacing:.14em;color:#0E6FA8}
.cv-slide strong{font-size:15.5px;font-weight:500;color:#0B2338;line-height:1.6}
.cv-slide figcaption>span:not(.cv-vol){font-size:13px;line-height:1.8;color:#5B6675}
.cv-slide cite{font-style:normal;font-family:Inter,'Noto Sans JP',sans-serif;font-size:11px;line-height:1.6;color:#8A97A6}
@media (max-width:900px){.cv-samples{grid-template-columns:1fr;gap:44px}.cv-list{grid-template-columns:1fr}}
@media (max-width:720px){
 .cv{padding:100px 0 80px}
 .cv-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cv-stats>div:nth-child(3){padding-left:0;border-left:0}
 .cv-stats>div:nth-child(n+3){border-top:1px solid #D7E8F1}
 .cv-item{grid-template-columns:36px minmax(0,1fr) auto}
}
.cv-samples{grid-template-columns:1fr;gap:64px}
.cv-slide{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:40px;align-items:center}
.cv-slide:nth-of-type(even){grid-template-columns:minmax(0,4fr) minmax(0,7fr)}
.cv-slide:nth-of-type(even) a{order:2}
.cv-slide strong{font-size:clamp(17px,1.6vw,21px)}
.cv-slide figcaption>span:not(.cv-vol){font-size:14px}
@media (max-width:900px){.cv-slide,.cv-slide:nth-of-type(even){grid-template-columns:1fr;gap:18px}.cv-slide:nth-of-type(even) a{order:0}}

.cv-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
.cv-item{grid-template-columns:44px minmax(0,1fr)}
@media (max-width:720px){.cv-stats{grid-template-columns:1fr}.cv-stats>div,.cv-stats>div+div,.cv-stats>div:nth-child(3){padding:22px 0;border-left:0}.cv-stats>div+div{border-top:1px solid #D7E8F1}.cv-item{grid-template-columns:36px minmax(0,1fr)}}

/* ===== People ===== */
.pm-wrap{max-width:1180px;margin:0 auto;padding:80px 24px 40px}
.pm-intro{margin:0 0 48px;max-width:760px}
.pm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:28px}
.pm-card{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:#0B2338}
.pm-photo{display:block;aspect-ratio:4/5;border-radius:20px;overflow:hidden;background:#EAF4FA;margin-bottom:12px}
.pm-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.pm-card:hover .pm-photo img{transform:scale(1.04)}
.pm-role{font-size:12px;letter-spacing:.08em;color:#0E6FA8}
.pm-name{font-size:20px;font-weight:500;letter-spacing:.08em}
.pm-en{font-family:Inter,sans-serif;font-size:12px;letter-spacing:.16em;color:#8A97A6;text-transform:uppercase}
.pm-next .pm-photo{background:#0B2338;display:flex}
.pm-next-in{display:flex;flex-direction:column;justify-content:space-between;padding:28px 24px;color:#F5F7FA;width:100%}
.pm-next-k{font-family:Inter,sans-serif;font-size:11px;letter-spacing:.3em;color:#6EC6F0}
.pm-next-t{font-size:17px;line-height:1.8;font-weight:500}
.pm-next-b{font-size:13px;letter-spacing:.08em;color:#A9DDF6}
.pm-next:hover .pm-photo{background:#0E2C47}
.pm-detail{padding-top:140px;scroll-margin-top:60px}
.pm-top{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;align-items:start}
.pm-big{border-radius:24px;overflow:hidden;aspect-ratio:4/5;background:#EAF4FA;position:sticky;top:110px}
.pm-big img{width:100%;height:100%;object-fit:cover;display:block}
.pm-prof .pm-role{display:block;margin-top:18px;font-size:13px}
.pm-h{margin:10px 0 0;font-size:clamp(30px,3.4vw,44px);font-weight:500;letter-spacing:.08em;color:#0B2338}
.pm-h span{display:block;margin-top:8px;font-family:Inter,sans-serif;font-size:13px;letter-spacing:.2em;color:#8A97A6;text-transform:uppercase}
.pm-tags{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 0}
.pm-tags span{font-size:12.5px;padding:5px 14px;border-radius:999px;background:#E3F5FD;color:#0B4F78}
.pm-lead{margin:36px 0 0;font-size:clamp(18px,1.8vw,22px);line-height:1.8;font-weight:500;color:#0B2338}
.pm-msg{margin:18px 0 0;font-size:15px;line-height:2.1;color:#5B6675;font-weight:300}
.pm-career{margin:36px 0 0;border-top:1px solid #D7E8F1}
.pm-career div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;padding:16px 0;border-bottom:1px solid #D7E8F1}
.pm-career dt{font-family:Inter,sans-serif;font-size:13px;color:#0E6FA8;letter-spacing:.06em}
.pm-career dd{margin:0;font-size:14.5px;line-height:1.7;color:#0B2338}
.pm-links{display:flex;flex-wrap:wrap;gap:12px;margin:32px 0 0}
.pm-links a{display:inline-flex;align-items:center;gap:8px;padding:11px 22px;border-radius:999px;border:1px solid #D7E8F1;color:#0B2338;text-decoration:none;font-family:Inter,'Noto Sans JP',sans-serif;font-size:14px;letter-spacing:.06em;transition:background .3s,border-color .3s,color .3s}
.pm-links a:hover{background:#0B2338;border-color:#0B2338;color:#fff}
.pm-sec{margin-top:96px}
.pm-sh{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:28px}
.pm-sh a{font-size:13px;letter-spacing:.06em;color:#0E6FA8;text-decoration:none}
.pm-ig{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.pm-ig .instagram-media{margin:0!important;min-width:0!important;width:100%!important}
.pm-igcard{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:20px;align-items:center;padding:24px 28px;border-radius:20px;background:#F3F9FC;text-decoration:none;color:#0B2338;transition:background .3s}
.pm-igcard:hover{background:#E3F5FD}
.pm-igicon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#3FA9E3,#0E6FA8);color:#fff}
.pm-igicon svg{width:24px;height:24px}
.pm-igcard strong{display:block;font-family:Inter,sans-serif;font-weight:500;font-size:16px;letter-spacing:.04em}
.pm-igcard span span{display:block;margin-top:4px;font-size:13px;color:#5B6675}
.pm-go{font-size:20px;color:#0E6FA8}
@media (max-width:860px){
 .pm-top{grid-template-columns:1fr;gap:36px}
 .pm-big{position:relative;top:0;max-width:440px}
 .pm-detail{padding-top:100px}
 .pm-sec{margin-top:72px}
 .pm-career div{grid-template-columns:96px minmax(0,1fr)}
}
.pm-sec .bl-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:860px){.pm-sec .bl-grid{grid-template-columns:1fr}}

/* ===== Refine: NOTA-like whitespace ===== */
.page-hero{padding-bottom:clamp(72px,10vw,140px)}
.page-hero .ph-title{margin-bottom:0}
section.section,.section{padding-top:clamp(112px,14vw,200px);padding-bottom:clamp(112px,14vw,200px)}
.sec-head,.section-head{margin-bottom:clamp(48px,6vw,88px)}
.feature-body .lead,.card .lead{color:#5B6675}
.nx-entry .nx-cta{margin-top:clamp(40px,5vw,64px)}
.pm-sec{margin-top:clamp(112px,12vw,180px)}

/* ===== Feature: typographic list (no images) ===== */
.ft{padding:clamp(112px,14vw,200px) 0}
.ft-list{list-style:none;margin:clamp(56px,7vw,104px) 0 0;padding:0;border-top:1px solid #DCE5EC}
.ft-row{display:grid;grid-template-columns:clamp(96px,14vw,200px) minmax(0,1fr) minmax(0,1.1fr);gap:24px clamp(32px,5vw,80px);align-items:baseline;padding:clamp(40px,5vw,64px) 0;border-bottom:1px solid #DCE5EC}
.ft-n{font-family:Inter,sans-serif;font-weight:300;font-size:clamp(44px,5.4vw,80px);line-height:1;letter-spacing:-.03em;color:#0E6FA8}
.ft-t{margin:0;font-size:clamp(20px,2vw,26px);font-weight:500;line-height:1.55;color:#0B2338}
.ft-p{margin:0;font-size:15px;line-height:2;color:#5B6675}
@media (max-width:900px){.ft-row{grid-template-columns:72px minmax(0,1fr);row-gap:14px}.ft-p{grid-column:2}.ft-n{font-size:40px}}
