[data-theme=tsuki]{--bg-primary: #141210;--bg-secondary: #1A1816;--bg-card: #1E1C18;--bg-card-hover: #262320;--text-primary: #F0ECE3;--text-secondary: #9A9488;--text-muted: #5A5548;--accent: #C4883C;--accent-secondary: #E8B86D;--accent-glow: rgba(196, 136, 60, .12);--gradient: linear-gradient(135deg, #C4883C, #E8B86D);--gradient-border: linear-gradient(135deg, #C4883C, #E8B86D, #C4883C);--border: #2A2620;--nav-bg: rgba(20, 18, 16, .92)}[data-theme=sora]{--bg-primary: #101418;--bg-secondary: #161A20;--bg-card: #1A1E26;--bg-card-hover: #20252E;--text-primary: #E8ECF0;--text-secondary: #8A92A0;--text-muted: #4A5260;--accent: #6A9EC0;--accent-secondary: #90BED8;--accent-glow: rgba(106, 158, 192, .12);--gradient: linear-gradient(135deg, #6A9EC0, #90BED8);--gradient-border: linear-gradient(135deg, #6A9EC0, #90BED8, #6A9EC0);--border: #222830;--nav-bg: rgba(16, 20, 24, .92)}[data-theme=tsukisora]{--bg-primary: #121214;--bg-secondary: #181818;--bg-card: #1C1C20;--bg-card-hover: #222228;--text-primary: #EEEEE8;--text-secondary: #908888;--text-muted: #585050;--accent: #C25830;--accent-secondary: #6A9EC0;--accent-glow: rgba(194, 88, 48, .1);--gradient: linear-gradient(135deg, #C25830, #6A9EC0);--gradient-border: linear-gradient(135deg, #C25830, #6A9EC0, #C25830);--border: #282428;--nav-bg: rgba(18, 18, 20, .92)}:root{--space-xs: clamp(8px, 1vw, 12px);--space-s: clamp(16px, 2vw, 24px);--space-m: clamp(24px, 4vw, 48px);--space-l: clamp(48px, 6vw, 80px);--space-xl: clamp(64px, 10vw, 120px);--space-2xl: clamp(80px, 12vw, 160px);--gutter: clamp(16px, 4vw, 48px)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{font-family:Inter,Noto Sans JP,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;overflow-x:hidden;min-width:0;cursor:none;transition:background-color .6s ease,color .6s ease}a,button{cursor:none}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.cursor{position:fixed;width:20px;height:20px;border:1.5px solid var(--accent);border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:width .25s ease,height .25s ease,border-color .3s ease,background .25s ease;mix-blend-mode:difference}.cursor.hover{width:48px;height:48px;background:#ffffff14}.cursor-dot{position:fixed;width:5px;height:5px;background:var(--accent);border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:background .3s ease}@media(max-width:768px){body,a,button{cursor:auto}.cursor,.cursor-dot{display:none}}.theme-switcher{position:fixed;bottom:var(--space-s);right:var(--space-s);z-index:1000;display:flex;flex-direction:column;gap:6px;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:10px;backdrop-filter:blur(20px)}.theme-switcher__label{font-size:9px;text-transform:uppercase;letter-spacing:.15em;color:var(--text-secondary);text-align:center;margin-bottom:2px}.theme-btn{width:36px;height:36px;border-radius:50%;border:2px solid var(--border);cursor:none;transition:all .3s ease;background:none}.theme-btn:hover{transform:scale(1.15)}.theme-btn.active{border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow)}.theme-btn[data-set=tsuki]{background:linear-gradient(135deg,#141210 50%,#c4883c 50%)}.theme-btn[data-set=sora]{background:linear-gradient(135deg,#101418 50%,#6a9ec0 50%)}.theme-btn[data-set=tsukisora]{background:linear-gradient(135deg,#c25830 50%,#6a9ec0 50%)}.nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:var(--space-s) var(--gutter);display:flex;justify-content:space-between;align-items:center;background:var(--nav-bg);backdrop-filter:blur(20px);border-bottom:1px solid transparent;transition:border-color .4s ease,padding .4s ease}.nav.scrolled{border-bottom-color:var(--border)}.nav__logo{font-size:clamp(16px,2vw,20px);font-weight:800;letter-spacing:.12em;text-transform:uppercase}.nav__logo span{background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.nav__links{display:flex;gap:clamp(20px,3vw,40px);list-style:none}.nav__links a{font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);transition:color .3s ease;position:relative}.nav__links a:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--accent);transition:width .3s ease}.nav__links a:hover,.nav__links a.active{color:var(--text-primary)}.nav__links a:hover:after,.nav__links a.active:after{width:100%}.nav__hamburger{display:none;flex-direction:column;gap:5px;cursor:none;padding:4px;background:none;border:none}.nav__hamburger span{display:block;width:24px;height:2px;background:var(--text-primary);border-radius:2px;transition:all .3s ease;transform-origin:center}.nav__hamburger.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.nav__hamburger.active span:nth-child(2){opacity:0}.nav__hamburger.active span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}.nav__mobile{display:none;position:fixed;inset:0;z-index:99;background:var(--bg-primary);flex-direction:column;justify-content:center;align-items:center;gap:40px;opacity:0;transition:opacity .4s ease;pointer-events:none}.nav__mobile.open{opacity:1;pointer-events:all}.nav__mobile a{font-size:clamp(28px,6vw,40px);font-weight:700;color:var(--text-primary);transition:color .3s ease}.nav__mobile a:hover{color:var(--accent)}@media(max-width:768px){.nav__links{display:none}.nav__hamburger,.nav__mobile{display:flex}}.section{padding:var(--space-xl) var(--gutter);max-width:1280px;margin:0 auto;width:100%}.section__header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:var(--space-m);gap:var(--space-s);flex-wrap:wrap}.section__number{font-size:clamp(10px,1vw,12px);font-weight:500;letter-spacing:.2em;color:var(--accent);text-transform:uppercase;margin-bottom:clamp(8px,1vw,16px)}.section__title{font-size:clamp(28px,4.5vw,56px);font-weight:800;line-height:1.1;letter-spacing:-.02em}.section__link{font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);display:inline-flex;align-items:center;gap:8px;transition:gap .3s ease;white-space:nowrap}.section__link:hover{gap:14px}.footer{border-top:1px solid var(--border);padding:var(--space-s) var(--gutter);display:flex;justify-content:space-between;align-items:center;max-width:1280px;margin:0 auto;width:100%;flex-wrap:wrap;gap:var(--space-xs)}.footer__copy{font-size:12px;color:var(--text-muted);letter-spacing:.05em}.footer__socials{display:flex;gap:clamp(16px,2vw,24px)}.footer__socials a{font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);transition:color .3s ease}.footer__socials a:hover{color:var(--accent)}.contact{text-align:center;padding:var(--space-2xl) var(--gutter);position:relative;overflow:hidden}.contact__glow{position:absolute;width:clamp(300px,40vw,500px);height:clamp(300px,40vw,500px);border-radius:50%;background:var(--accent-glow);filter:blur(100px);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.contact__title{font-size:clamp(32px,6vw,72px);font-weight:900;letter-spacing:-.03em;margin-bottom:var(--space-s);position:relative}.contact__sub{font-size:clamp(14px,1.3vw,16px);color:var(--text-secondary);margin-bottom:var(--space-m);position:relative}.contact__btn{display:inline-flex;align-items:center;gap:12px;padding:clamp(14px,1.5vw,20px) clamp(36px,4vw,56px);border-radius:100px;font-size:clamp(13px,1.2vw,15px);font-weight:700;letter-spacing:.08em;text-transform:uppercase;position:relative;background:transparent;color:var(--accent);border:1px solid var(--accent);cursor:none;transition:color .4s ease,box-shadow .4s ease;font-family:inherit;box-shadow:0 0 30px var(--accent-glow),0 4px 20px #0006;overflow:hidden;z-index:1}.contact__btn:after{content:"";position:absolute;left:-20%;bottom:0;width:140%;height:0%;background:var(--accent);border-radius:40% 45% 0 0;transition:height .7s cubic-bezier(.25,.46,.45,.94);z-index:-1;animation:waterWave 2.5s ease-in-out infinite}.contact__btn:hover{color:var(--bg-primary);box-shadow:0 0 40px var(--accent-glow)}.contact__btn:hover:after{height:120%}.contact__info{margin-top:var(--space-m);display:flex;justify-content:center;gap:clamp(24px,3vw,48px);font-size:clamp(12px,1vw,13px);color:var(--text-muted);position:relative;flex-wrap:wrap}.contact__info a{color:var(--text-secondary);transition:color .3s ease}.contact__info a:hover{color:var(--accent)}.reveal{opacity:0;transform:translateY(32px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:translateY(0)}.page-hero{min-height:50vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:var(--space-2xl) var(--gutter) var(--space-l);position:relative;overflow:hidden}.page-hero__bg-glow{position:absolute;width:clamp(300px,50vw,600px);height:clamp(300px,50vw,600px);border-radius:50%;background:radial-gradient(circle,var(--accent-glow) 0%,transparent 70%);filter:blur(80px);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.page-hero__eyebrow{font-size:clamp(10px,1.2vw,13px);font-weight:500;letter-spacing:.25em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-s)}.page-hero__title{font-size:clamp(40px,7vw,90px);font-weight:900;line-height:1;letter-spacing:-.03em;margin-bottom:var(--space-s)}.page-hero__title .accent{background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.page-hero__sub{font-size:clamp(14px,1.5vw,18px);font-weight:300;color:var(--text-secondary);max-width:600px;line-height:1.8}.hero-anim{opacity:0;transform:translateY(36px)}.hero-anim.show{opacity:1;transform:translateY(0);transition:opacity .8s ease,transform .8s ease}@keyframes waterWave{0%{border-radius:40% 45% 0 0;transform:translate(0)}25%{border-radius:45% 38% 0 0;transform:translate(3%)}50%{border-radius:38% 46% 0 0;transform:translate(-2%)}75%{border-radius:46% 40% 0 0;transform:translate(2%)}to{border-radius:40% 45% 0 0;transform:translate(0)}}@keyframes glowPulse{0%,to{filter:brightness(1) drop-shadow(0 0 0px transparent)}50%{filter:brightness(1.3) drop-shadow(0 0 24px var(--accent))}}
