:root{--ink:#141b2d;--ink2:#222e4d;--lamp:#f0b24a;--mist:#eef2f6;--paper:#fbfcfd;--sea:#5a7a96;--tx:#2a3347}
html{scroll-behavior:smooth}
body{font-family:'DM Sans',sans-serif;color:var(--tx);background:var(--paper);line-height:1.7}
h1,h2,h3,h4,.brand{font-family:'Shippori Mincho','Noto Serif JP',serif;color:var(--ink);font-weight:600;line-height:1.25}
h1{font-size:clamp(2.4rem,6vw,4.4rem)}h2{font-size:clamp(1.7rem,3.4vw,2.5rem)}
a{color:var(--ink2)}a:hover{color:#b97a12}
:focus-visible{outline:3px solid var(--lamp);outline-offset:3px}
.navbar{transition:background .3s,box-shadow .3s;padding:1rem 0}
.navbar.solid{background:rgba(20,27,45,.96);backdrop-filter:blur(8px);box-shadow:0 2px 20px rgba(0,0,0,.2)}
.brand{color:#fff!important;font-size:1.35rem;text-decoration:none}
.navbar .nav-link{color:#c9d3e3;position:relative;font-size:.95rem}
.navbar .nav-link::after{content:"";position:absolute;left:.5rem;right:.5rem;bottom:2px;height:2px;background:var(--lamp);transform:scaleX(0);transition:transform .3s}
.navbar .nav-link:hover,.navbar .nav-link.active{color:#fff}
.navbar .nav-link:hover::after,.navbar .nav-link.active::after{transform:scaleX(1)}
.navbar-toggler{border-color:#566}.navbar-toggler-icon{filter:invert(1)}
@media(max-width:991px){.navbar .navbar-collapse{background:var(--ink);padding:1rem;margin-top:.5rem;border-radius:8px}}
.btn-lamp{background:var(--lamp);color:var(--ink);font-weight:600;border:0;padding:.8rem 1.8rem;border-radius:50px;transition:transform .25s,box-shadow .25s}
.btn-lamp:hover{background:#f6c066;color:var(--ink);transform:translateY(-3px);box-shadow:0 10px 24px rgba(240,178,74,.35)}
.btn-ghost{color:#fff;border:1px solid rgba(255,255,255,.4);padding:.8rem 1.8rem;border-radius:50px;transition:background .25s}
.btn-ghost:hover{background:rgba(255,255,255,.12);color:#fff}
.hero,.phero{background:radial-gradient(ellipse at 80% 70%,#26365e 0,var(--ink) 60%);color:#d5dcea;position:relative;overflow:hidden}
.hero{min-height:100vh;display:flex;align-items:center;padding:8rem 0 4rem}
.phero{padding:9rem 0 4.5rem}
.hero h1,.phero h1{color:#fff}
.hero .lead,.phero .lead{max-width:34rem;color:#b9c4d8}
.beam{position:absolute;width:170vmax;height:170vmax;left:calc(78% - 85vmax);top:calc(70% - 85vmax);background:conic-gradient(from -6deg,rgba(240,178,74,.34),transparent 16deg,transparent 360deg);animation:sweep 16s linear infinite;pointer-events:none}
.phero .beam{left:calc(88% - 85vmax);top:calc(60% - 85vmax);opacity:.6}
.lamp{position:absolute;left:78%;top:70%;width:14px;height:14px;border-radius:50%;background:var(--lamp);box-shadow:0 0 0 8px rgba(240,178,74,.15),0 0 60px 20px rgba(240,178,74,.45)}
@keyframes sweep{to{transform:rotate(360deg)}}
.hero .container{position:relative;z-index:2}
.in{opacity:0;transform:translateY(18px);animation:in .9s forwards}.in:nth-child(2){animation-delay:.2s}.in:nth-child(3){animation-delay:.4s}.in:nth-child(4){animation-delay:.6s}
@keyframes in{to{opacity:1;transform:none}}
.sec{padding:5.5rem 0}.alt{background:var(--mist)}
.facts{border-top:1px solid rgba(255,255,255,.15);margin-top:3rem;padding-top:1.5rem;font-size:.95rem;color:#b9c4d8}
.facts b{display:block;color:#fff;font-family:'Shippori Mincho',serif;font-size:1.15rem}
.card-s{background:#fff;border:1px solid #dde4ec;border-radius:14px;padding:2rem;height:100%;position:relative;transition:transform .3s,border-color .3s,box-shadow .3s;text-decoration:none;display:block;color:var(--tx)}
.card-s:hover{transform:translateY(-6px);border-color:var(--lamp);box-shadow:0 18px 40px rgba(20,27,45,.1);color:var(--tx)}
.card-s .more{color:#b97a12;font-weight:600}
.card-s .more::after{content:"";display:inline-block;width:14px;height:1px;background:currentColor;margin-left:8px;vertical-align:middle;transition:width .3s}
.card-s:hover .more::after{width:28px}
.air{background:var(--ink);color:#c9d3e3}.air h2{color:#fff}
.kanji{font-family:'Shippori Mincho',serif;font-size:clamp(3rem,9vw,6rem);color:var(--lamp);line-height:1}
.tl{border-left:2px solid #cdd6e2;padding-left:2rem;margin-left:.5rem}
.tl>div{position:relative;margin-bottom:2.2rem}
.tl>div::before{content:"";position:absolute;left:calc(-2rem - 7px);top:.55rem;width:12px;height:12px;border-radius:50%;background:var(--lamp);box-shadow:0 0 0 4px var(--mist)}
.portrait{border-radius:200px 200px 16px 16px;width:100%;max-width:360px;aspect-ratio:3/4;object-fit:cover;background:var(--ink2);box-shadow:20px 20px 0 var(--mist)}
.tag{display:inline-block;border:1px solid #c7d1de;border-radius:50px;padding:.25rem 1rem;margin:0 .4rem .6rem 0;font-size:.9rem;transition:background .25s,border-color .25s}
.tag:hover{background:var(--lamp);border-color:var(--lamp);color:var(--ink)}
.ticks{list-style:none;padding:0}.ticks li{padding-left:1.8rem;position:relative;margin-bottom:.6rem}
.ticks li::before{content:"";position:absolute;left:0;top:.7rem;width:10px;height:2px;background:var(--lamp)}
.form-control,.form-select{border-radius:10px;padding:.8rem 1rem;border-color:#cbd5e1}
.form-control:focus,.form-select:focus{border-color:var(--lamp);box-shadow:0 0 0 .25rem rgba(240,178,74,.25)}
.accordion-button:not(.collapsed){background:#fff6e4;color:var(--ink)}
.cta{background:linear-gradient(120deg,var(--ink),var(--ink2));color:#c9d3e3;text-align:center}.cta h2{color:#fff}
footer{background:#0d1220;color:#8e9ab2;padding:3.5rem 0 2rem;font-size:.92rem}
footer a{color:#b9c4d8;text-decoration:none}footer a:hover{color:var(--lamp)}
footer h4{color:#fff;font-size:1.1rem}
.rv{opacity:0;transform:translateY(22px);transition:opacity .8s,transform .8s}.rv.on{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.beam{animation:none}.in,.rv{opacity:1;transform:none;animation:none;transition:none}html{scroll-behavior:auto}}
