@charset "UTF-8";:root{--color-primary: #2549ff;--color-secondary: #57ffd8;--color-accent: #e61e57;--color-white: #fff;--color-text: #222222;--color-text-light: #cecece;--color-text-white: #fff;--color-bg: #f9f9f9;--space-max: 200px;--space-xxl: 160px;--space-xl: 120px;--space-ll: 80px;--space-l: 64px;--space-ml: 40px;--space-m: 32px;--space-s: 24px;--space-xs: 16px;--space-xxs: 8px;--space-min: 4px;--section-gap: var(--space-max);--radius-xxl: 120px;--radius-xl: 64px;--radius-l: 40px;--radius-m: 24px;--radius-s: 12px;--radius-xs: 8px;--radius-min: 4px;--font-base: "Inter", "Noto Sans JP", sans-serif}@media(max-width:768px){:root{--section-gap: var(--space-xl)}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:62.5%;touch-action:pan-y}body{font-size:1.5rem;font-family:var(--font-base);line-height:1.5;color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture,video,canvas,svg{display:block;max-width:100%}a{text-decoration:none;color:inherit}input,button,textarea,select{font:inherit}.common-section-header{display:flex;flex-direction:column;align-items:flex-start;margin-bottom:var(--space-ml)}.common-section-header.center{align-items:flex-start}.common-section-header .section-en{font-family:Plus Jakarta Sans,sans-serif;font-size:clamp(6.4rem,10vw,11.2rem);font-weight:500;line-height:1;letter-spacing:-.04em;color:#1a2b48}.common-section-header .section-ja{font-size:1.4rem;font-weight:400;letter-spacing:.12em;color:#6b6b6b;margin-top:1.2rem;opacity:0;transform:translateY(12px);transition:opacity .6s cubic-bezier(.22,1,.36,1) .4s,transform .6s cubic-bezier(.22,1,.36,1) .4s}.common-section-header .section-en .char{display:inline-block;opacity:0;transform:translateY(40px);transition:opacity .5s cubic-bezier(.22,1,.36,1),transform .5s cubic-bezier(.22,1,.36,1)}.common-section-header.is-visible .section-en .char,.common-section-header.is-visible .section-ja{opacity:1;transform:translateY(0)}@media(max-width:768px){.common-section-header .section-en{font-size:clamp(4rem,14vw,5.6rem)}}:focus{outline:none}:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:4px;transition:outline-offset .15s ease}.reveal-up,.reveal-right{opacity:0;transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1)}.reveal-up{transform:translateY(24px)}.reveal-right{transform:translate(-24px)}.reveal-up.is-revealed,.reveal-right.is-revealed{opacity:1;transform:translate(0)}@media(prefers-reduced-motion:reduce){.reveal-up,.reveal-right{opacity:1;transform:none;transition:none}}body{position:relative;font-size:1.6rem;background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-base);line-height:1.6}@media(max-width:768px){body:before{display:none}}body:before{content:"";position:fixed;top:0;left:0;width:12px;height:100vh;height:100dvh;z-index:0;pointer-events:none;background-image:url(/scale-mark.svg);background-repeat:repeat-y;background-size:12px 50px;opacity:1;z-index:999}.page-loader{position:fixed;inset:0;z-index:10500;background:var(--color-bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;opacity:1;transition:opacity .5s cubic-bezier(.22,1,.36,1)}.page-loader.is-hidden{opacity:0;pointer-events:none}.page-loader__logo{display:block;width:44px;height:44px;opacity:0;animation:page-loader-logo-in .5s cubic-bezier(.22,1,.36,1) .05s forwards}@keyframes page-loader-logo-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.page-loader__bar{display:block;width:90px;height:2px;background:color-mix(in srgb,var(--color-text) 12%,transparent);border-radius:2px;overflow:hidden;position:relative}.page-loader__bar-fill{position:absolute;inset:0;background:var(--color-primary);transform:scaleX(0);transform-origin:left center;animation:page-loader-bar .7s cubic-bezier(.22,1,.36,1) forwards}@keyframes page-loader-bar{0%{transform:scaleX(0)}to{transform:scaleX(.99)}}.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--color-primary);z-index:10000;pointer-events:none;will-change:width;box-shadow:0 0 12px color-mix(in srgb,var(--color-primary) 60%,transparent)}@media(max-width:768px){.scroll-progress{display:none}}.film-grain{position:fixed;inset:-20%;z-index:9998;pointer-events:none;opacity:.08;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");background-size:240px 240px;animation:grain-shift .6s steps(1) infinite}@keyframes grain-shift{0%{transform:translate(0)}20%{transform:translate(-2%,1%)}40%{transform:translate(1.5%,-1.5%)}60%{transform:translate(-1%,2%)}80%{transform:translate(2%,-1%)}to{transform:translate(0)}}.page-top{position:fixed;bottom:var(--space-m);left:var(--space-m);z-index:900;width:6rem;height:6rem;border:none;border-radius:50%;background:var(--color-primary);color:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;opacity:0;transform:translateY(20px);pointer-events:none;transition:opacity .4s ease,transform .4s cubic-bezier(.22,1,.36,1),background .25s ease;box-shadow:0 6px 20px #0000002e}.page-top.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}.page-top:hover{background:color-mix(in srgb,var(--color-primary) 85%,#000)}.page-top:hover .page-top__arrow{transform:translateY(-.3rem)}.page-top__arrow{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;transform:translateY(0);animation:page-top-bob 2.2s ease-in-out infinite;transition:transform .25s cubic-bezier(.22,1,.36,1)}.page-top__arrow img{width:100%;height:100%;transform:rotate(-90deg);filter:brightness(0) invert(1)}.page-top__label{font-family:Plus Jakarta Sans,sans-serif;font-size:.9rem;font-weight:700;letter-spacing:.12em;line-height:1}@media(max-width:768px){.page-top{display:none}}@keyframes page-top-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-.4rem)}}
