:root,:root[data-theme="light"]{--accent:#188694;--accent-ink:#126574;--accent-wash:#dfeef0;--paper:#edf2f1;--surface:#fbfdfc;--surface-2:#eaf1f1;--line:#cfdddd;--line-soft:#dee8e7;--font-display:"Helvetica Neue","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;--radius:12px;--radius-sm:8px}
:root[data-theme="dark"]{--paper:#09151b;--surface:#0f232a;--surface-2:#102a32;--ink:#e3f0ef;--ink-soft:#a8c1c7;--ink-faint:#83a4ae;--line:#29414b;--line-soft:#1e333b;--accent:#70dfe8;--accent-ink:#9ce9ed;--accent-wash:#10333c}
html{scroll-behavior:smooth}header.site:after{content:"";height:2px;position:absolute;bottom:0;left:0;width:100%;background:var(--accent);transform:scaleX(var(--read-progress,0));transform-origin:left;pointer-events:none}.hero{position:relative;--progress:.5}.hero h1{letter-spacing:-.055em;font-weight:500}.hero .accent{display:inline-block;transform:translateY(calc((var(--progress,.5) - .5)*-22px))}.hero-grid>:last-child{perspective:1200px}.hero-grid>:last-child>.card{transform:rotateY(calc((var(--progress,.5) - .5)*9deg)) rotateX(calc((var(--progress,.5) - .5)*-6deg));transform-origin:center;transition:box-shadow .5s;box-shadow:0 25px 65px -35px color-mix(in srgb,var(--accent) 60%,transparent)}.reveal{transition:opacity .8s ease,transform .9s cubic-bezier(.22,1,.36,1)!important;transform:translateY(32px)}.reveal.in{opacity:1;transform:none}.sec-head{position:relative;padding-bottom:12px}.sec-head:after{content:"";height:1px;background:var(--line);position:absolute;bottom:0;left:0;width:100%;transform:scaleX(calc(.2 + var(--progress,.5)*.8));transform-origin:left}.fcard,.pcard,.cat{perspective:900px;transition:transform .35s cubic-bezier(.22,1,.36,1),border-color .3s,box-shadow .35s!important}.fcard.in:hover,.pcard.in:hover,.cat.in:hover{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-7px);border-color:var(--accent);box-shadow:0 18px 45px -26px color-mix(in srgb,var(--accent) 60%,transparent)}.ficon{transition:transform .4s,background .4s}.fcard:hover .ficon{transform:translateY(-4px) rotate(-6deg)}.step{position:relative;transition:background .6s}.step:after{content:"";height:3px;position:absolute;bottom:0;left:0;right:0;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .7s cubic-bezier(.22,1,.36,1)}.step-current{background:var(--accent-wash)}.step-current:after{transform:scaleX(1)}.step .k{display:inline-block;transition:transform .5s}.step-current .k{transform:translateY(-5px)}.cta-band{border:1px solid var(--line)}.cta-band h2{transform:translateY(calc((var(--progress,.5) - .5)*-30px))}.btn{transition:transform .35s,box-shadow .35s,background .35s!important}.btn:hover{transform:translateY(-4px);box-shadow:0 12px 23px -14px var(--accent)}.detail-entry{opacity:.25;transform:translateY(24px);transition:opacity .85s,transform .95s cubic-bezier(.22,1,.36,1)}.detail-entry.detail-entered{opacity:1;transform:none}.hero .chat>*{transition:transform .4s}.hero .chat>*:hover{transform:translateX(4px)}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
@media(max-width:820px){.hero-grid>:last-child>.card{transform:none}.fcard.in:hover,.pcard.in:hover,.cat.in:hover{transform:translateY(-3px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal,.detail-entry{opacity:1!important;transform:none!important}.hero .accent,.hero-grid>:last-child>.card,.fcard,.pcard,.cat,.step .k,.cta-band h2,.ficon,.btn:hover{transform:none!important}}
