:root{--color-bg: #111129;--color-bg-secondary: #1a1a3e;--color-bg-tertiary: #222254;--color-accent: #dcc25b;--color-accent-hover: #e8d06f;--color-accent-glow: rgba(220, 194, 91, .3);--color-text: #ffffff;--color-text-secondary: rgba(255, 255, 255, .7);--color-text-muted: rgba(255, 255, 255, .4);--color-border: rgba(255, 255, 255, .1);--color-glass: rgba(17, 17, 41, .75);--color-glass-border: rgba(220, 194, 91, .15);--color-overlay: rgba(17, 17, 41, .6);--font-primary: "Noto Sans JP", sans-serif;--font-heading: "new-astro", sans-serif;--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700;--font-weight-black: 900;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 2rem;--space-xl: 3rem;--space-2xl: 5rem;--space-3xl: 8rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--radius-xl: 24px;--transition-fast: .2s cubic-bezier(.4, 0, .2, 1);--transition-normal: .3s cubic-bezier(.4, 0, .2, 1);--transition-slow: .5s cubic-bezier(.4, 0, .2, 1);--z-background: -1;--z-content: 1;--z-navbar: 100;--z-overlay: 200}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-primary);font-weight:var(--font-weight-regular);color:var(--color-text);background-color:var(--color-bg);line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}ul,ol{list-style:none}button{cursor:pointer;border:none;background:none;font-family:inherit;color:inherit}input,textarea{font-family:inherit;color:inherit}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-accent);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-accent-hover)}::selection{background:var(--color-accent);color:var(--color-bg)}.container{max-width:1200px;margin:0 auto;padding:0 var(--space-lg)}.section-title{font-family:var(--font-heading);font-size:clamp(2rem,5vw,3.5rem);font-weight:var(--font-weight-bold);letter-spacing:.05em;margin-bottom:var(--space-xl);position:relative}.section-title:after{content:"";display:block;width:60px;height:3px;background:var(--color-accent);margin-top:var(--space-sm)}.accent-text{color:var(--color-accent)}.glass-card{background:var(--color-glass);border:1px solid var(--color-glass-border);border-radius:var(--radius-lg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.page-wrapper{min-height:100vh;position:relative}.canvas-container{position:fixed;top:0;left:0;width:100%;height:100%;z-index:var(--z-background);pointer-events:none}#root{min-height:100vh}.hover-highlight{display:inline-grid;max-width:100%;vertical-align:top}.hover-highlight-text,.hover-highlight-mask{grid-area:1 / 1;padding:.08em .22em}.hover-highlight-mask{color:var(--color-bg);background:var(--color-accent);clip-path:inset(0% 100% 0% 0%);pointer-events:none}.hover-highlight-rolling .hover-highlight-mask{border-radius:999px}.hover-highlight-rolling .hover-highlight-text,.hover-highlight-rolling .hover-highlight-mask{padding:.35em .85em}.hover-label-window{display:block;height:1.4em;overflow:hidden}.hover-label-roll{display:flex;flex-direction:column}.hover-label-roll>span{display:block;height:1.4em;line-height:1.4}.navbar{position:fixed;top:0;left:0;width:100%;z-index:var(--z-navbar);background:#111129d9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--color-border)}.navbar-inner{max-width:1200px;margin:0 auto;padding:0 var(--space-lg);display:flex;justify-content:space-between;align-items:center;height:70px}.navbar-logo{display:flex;align-items:center;gap:var(--space-sm)}.logo-text{font-family:var(--font-heading);font-size:1.3rem;font-weight:var(--font-weight-regular);color:var(--color-accent);letter-spacing:.1em}.navbar-links{display:flex;gap:var(--space-xl)}.nav-link{display:inline-block;position:relative;font-size:.9rem;font-weight:var(--font-weight-regular);letter-spacing:.15em;text-transform:uppercase;padding:var(--space-sm) 0;color:var(--color-text-secondary);transition:color var(--transition-fast)}.nav-link:hover,.nav-link.active{color:var(--color-text)}.nav-indicator{position:absolute;bottom:-2px;left:0;right:0;height:2px;background:var(--color-accent);border-radius:1px}.hamburger{display:none;flex-direction:column;gap:5px;padding:var(--space-sm);cursor:pointer}.hamburger-line{display:block;width:24px;height:2px;background:var(--color-text);transition:var(--transition-normal);transform-origin:center}.hamburger.is-open .hamburger-line:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.hamburger.is-open .hamburger-line:nth-child(2){opacity:0}.hamburger.is-open .hamburger-line:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}.mobile-menu{display:none;flex-direction:column;padding:var(--space-lg);gap:var(--space-md);background:#111129f2;border-bottom:1px solid var(--color-border)}.mobile-link{font-size:1.1rem;font-weight:var(--font-weight-regular);letter-spacing:.1em;text-transform:uppercase;padding:var(--space-md) 0;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);transition:color var(--transition-fast)}.mobile-link:hover,.mobile-link.active{color:var(--color-accent)}@media(max-width:768px){.navbar-links{display:none}.hamburger,.mobile-menu{display:flex}}.nav-link .hover-highlight,.mobile-link .hover-highlight{line-height:1.4}.nav-link:focus-visible,.mobile-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:5px}@media(hover:hover)and (pointer:fine){body{cursor:url(/assets/cursors/arrow.svg?v=2) 3 2,auto}a[href],button:not(:disabled),[role=button]:not([aria-disabled=true]){cursor:url(/assets/cursors/link.svg?v=2) 3 2,pointer}input,textarea,[contenteditable=true]{cursor:text}}.cursor-ripple{position:fixed;width:10px;height:10px;border-radius:50%;border:1.5px solid rgba(255,255,255,.6);pointer-events:none;z-index:9998;transform:translate(-50%,-50%) scale(0);animation:rippleExpand .7s ease-out forwards}@keyframes rippleExpand{0%{transform:translate(-50%,-50%) scale(0);opacity:1}to{transform:translate(-50%,-50%) scale(8);opacity:0}}@media(prefers-reduced-motion:reduce),(hover:none),(pointer:coarse){.cursor-ripple{display:none}}.works-section{padding:85px 0 65px;scroll-margin-top:85px}.works-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:55px 36px;align-items:start}.work-card{display:block;min-width:0}.work-card.work-featured{grid-column:1 / -1;width:88%;margin:0 auto 15px}.work-card:nth-child(odd):not(:first-child){margin-top:70px}.work-thumbnail{position:relative;aspect-ratio:16 / 9;overflow:hidden;background:var(--color-bg-secondary);border-radius:8px}.work-body{transform-origin:center;pointer-events:none}.work-thumbnail img{width:100%;height:100%;object-fit:cover}.work-view{position:absolute;right:16px;bottom:16px;padding:6px 12px;background:#111129d9;opacity:0;font-size:.8rem}.work-info{padding-top:15px}.work-category{font-size:.7rem;color:var(--color-accent)}.work-info h3{font-weight:500;font-size:.95rem;line-height:1.7;margin-top:4px}.work-featured .work-info h3{font-size:1.15rem}.work-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:6px}@media(max-width:640px){.works-section{padding:50px 0}.works-gallery{grid-template-columns:1fr;gap:32px}.work-card.work-featured{width:100%;margin:0}.work-card:nth-child(odd):not(:first-child){margin-top:0}.work-featured .work-info h3{font-size:.95rem}}@media(prefers-reduced-motion:reduce){.work-thumbnail img,.work-view{transition:none}}.contact-section{padding:80px 0 110px;scroll-margin-top:85px}.contact-section>.container{border-top:1px solid var(--color-border);padding-top:65px}.contact-description{color:var(--color-text-secondary);margin-bottom:36px}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:50px}.contact-form{min-width:0}.contact-fields{display:grid;gap:9px}.contact-fields label{font-size:.8rem;color:var(--color-text-secondary)}.contact-fields input,.contact-fields textarea{width:100%;padding:12px 14px;margin-bottom:13px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-secondary);color:var(--color-text);font-size:1rem;outline:none;resize:vertical}.contact-fields input:focus,.contact-fields textarea:focus{border-color:var(--color-accent)}.contact-fields textarea::placeholder{color:var(--color-text-muted)}.contact-honey{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.contact-submit{min-width:170px;padding:11px 24px;border:1px solid var(--color-accent);border-radius:6px;background:var(--color-accent);color:var(--color-bg);font-weight:700;transition:background .2s,transform .2s}.contact-submit:hover:not(:disabled){background:var(--color-accent-hover);transform:translateY(-2px)}.contact-submit:focus-visible{outline:2px solid var(--color-text);outline-offset:3px}.contact-submit:disabled{cursor:wait;opacity:.6}.contact-status{min-height:1.7em;margin-top:12px;color:var(--color-accent);font-size:.85rem}.contact-status.is-error{color:#f1a9a9}.contact-side{display:flex;flex-direction:column;gap:54px;min-width:0}.contact-addresses{display:flex;flex-direction:column;gap:28px;color:var(--color-accent);user-select:text;-webkit-user-select:text;overflow-wrap:anywhere}.contact-label{display:block;font-size:.75rem;color:var(--color-text-secondary);margin-bottom:8px}.contact-addresses a{font-size:clamp(1rem,2vw,1.4rem)}.contact-method{display:inline-flex;align-items:center;gap:10px}.contact-mark{color:#fff;font-size:1.4rem;flex-shrink:0}.contact-addresses a:hover{text-decoration:underline}.contact-guidelines h3{font-size:.9rem;font-weight:500;margin-bottom:16px}.contact-guidelines ul{padding-left:18px;list-style:disc;color:var(--color-text-secondary);font-size:.85rem;line-height:1.9}.contact-guidelines li+li{margin-top:8px}.contact-guideline-link{display:inline-block;margin-top:20px;padding:6px 0;color:var(--color-accent);font-size:.9rem;text-decoration:underline;text-underline-offset:5px}.contact-guideline-link:hover{color:var(--color-accent-hover)}.contact-guideline-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:5px}@media(max-width:768px){.contact-layout{grid-template-columns:1fr;gap:40px}.contact-side{gap:40px}.contact-section{padding:40px 0 70px}.contact-section>.container{padding-top:40px}}.guideline-dialog{position:fixed;inset:0;width:min(1136px,calc(100% - 64px));max-width:none;height:calc(100svh - 172px);max-height:none;margin:auto;border:1px solid var(--color-border);border-radius:18px;padding:0;background:var(--color-bg);color:var(--color-text);overflow:hidden;box-shadow:0 24px 100px #00000073}.guideline-dialog::backdrop{background:#111129b3;clip-path:inset(70px 0 0)}.guideline-toolbar{position:relative;z-index:5;height:48px;display:flex;justify-content:flex-end;align-items:center;padding:0;border-bottom:1px solid var(--color-border)}.guideline-dialog button{color:var(--color-accent);padding:10px 0;text-decoration:underline;text-underline-offset:5px}.guideline-dialog button:focus-visible{outline:2px solid var(--color-accent);outline-offset:5px}.guideline-content{max-width:860px;margin:0 auto;padding:48px 24px 24px;line-height:1.9;overflow-wrap:anywhere}.guideline-content h1{font-size:clamp(1.4rem,3vw,2rem);line-height:1.5;margin-bottom:28px}.guideline-content h2{font-size:1.1rem;margin:40px 0 16px;color:var(--color-accent)}.guideline-content p,.guideline-content ul{margin-bottom:16px;color:var(--color-text-secondary)}.guideline-content ul{list-style:disc;padding-left:24px}.guideline-bottom{max-width:860px;margin:0 auto;padding:0 24px 60px}.guideline-scroll{height:calc(100% - 48px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.guideline-dialog{transition:width .35s cubic-bezier(.22,1,.36,1),height .35s cubic-bezier(.22,1,.36,1),border-radius .35s ease}.guideline-toolbar button{width:48px;height:48px;padding:0;display:grid;place-items:center;text-decoration:none;font-family:Arial,sans-serif;font-size:24px;color:var(--color-text);transition:background .15s}.guideline-toolbar button:hover{background:#ffffff1a}.guideline-toolbar .guideline-close:hover{background:#c42b1c;color:#fff}.guideline-toolbar button:focus-visible{outline-offset:-5px}.guideline-wipe{position:absolute;inset:0;z-index:4;pointer-events:none;background:var(--color-accent);animation:guideline-wipe .7s .85s cubic-bezier(.16,1,.3,1) both}@keyframes guideline-wipe{0%{clip-path:inset(0 100% 0 0)}45%{clip-path:inset(0)}to{clip-path:inset(0 0 0 100%)}}@media(min-width:769px){.guideline-dialog.is-maximized{width:100%;height:100svh;border-radius:0;border:0}}@media(max-width:768px){.guideline-dialog{width:calc(100% - 24px);height:calc(100svh - 164px);border-radius:12px}.guideline-toolbar .guideline-maximize{display:none}.guideline-content{padding:28px 20px 20px}}@media(prefers-reduced-motion:reduce){.guideline-wipe{display:none}.guideline-dialog{transition:none}}.guideline-logo-screen{position:absolute;inset:48px 0 0;display:grid;place-items:center;background:var(--color-bg);color:var(--color-accent);font-family:var(--font-heading);font-size:clamp(2rem,6vw,3.5rem);letter-spacing:.04em}.guideline-logo-enter{display:inline-flex;animation:guideline-logo-enter .3s cubic-bezier(.16,1,.3,1) both}.guideline-logo-letter{display:inline-block;animation:guideline-logo-exit .26s cubic-bezier(.55,.05,.95,.5) var(--letter-delay) both}@keyframes guideline-logo-enter{0%{opacity:0;transform:translateY(26px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes guideline-logo-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-32px)}}@media(prefers-reduced-motion:reduce){.guideline-logo-screen{display:none}.guideline-logo-screen span{animation:none}}.guideline-dialog.is-maximized::backdrop{clip-path:none}.guideline-scroll.is-ready{animation:guideline-content-enter .4s cubic-bezier(.22,1,.36,1) both}@keyframes guideline-content-enter{0%{opacity:.5;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.guideline-scroll.is-ready{animation:none}}.about-page{overflow:clip}.opening-screen{position:fixed;inset:0;z-index:300;display:grid;place-items:center;background:var(--color-bg);pointer-events:none}.opening-mark{display:grid;justify-items:center;gap:18px;font-family:var(--font-heading);font-size:clamp(2rem,5vw,3.5rem);color:var(--color-accent);letter-spacing:.04em}.opening-mark span{display:block;width:110px;height:2px;background:var(--color-accent);transform-origin:center;animation:opening-line .9s cubic-bezier(.22,1,.36,1) both}@keyframes opening-line{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.hero-section{position:relative;background:var(--color-bg);min-height:720px;min-height:max(720px,100svh);display:flex;align-items:center;justify-content:center;padding:130px 0 120px;isolation:isolate;overflow:clip}.hero-section:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(rgba(220,194,91,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(220,194,91,.07) 1px,transparent 1px),linear-gradient(rgba(220,194,91,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(220,194,91,.045) 1px,transparent 1px);background-size:48px 48px,48px 48px,240px 240px,240px 240px;background-position:center top;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 18%,#000 72%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 18%,#000 72%,transparent)}.hero-model-entry{position:absolute;top:0;right:0;bottom:0;width:55%;z-index:0}.key-model{position:relative;width:100%;height:100%}.key-model-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.key-model-control{position:absolute;inset:0;cursor:grab;touch-action:pan-y}.key-model-control:active{cursor:grabbing}.key-model-control:focus-visible{outline:2px solid var(--color-accent);outline-offset:-6px;border-radius:16px}.hero-content{position:relative;z-index:1;width:100%;max-width:1200px;margin:0 auto;padding:0 var(--space-lg);transform-origin:left center;pointer-events:none}.hero-content button,.hero-content a{pointer-events:auto}.hero-title{font-family:var(--font-heading);font-size:clamp(4rem,9.4vw,8rem);font-weight:var(--font-weight-bold);line-height:1.15;margin-bottom:8px}.name-button{font:inherit;letter-spacing:.02em;line-height:inherit;display:inline-flex;padding:0;color:var(--color-text)}.name-letter,.name-follow,.name-glyph{display:inline-block}.name-follow{transform:translate(var(--letter-x, 0px),var(--letter-y, 0px));transition:transform .42s cubic-bezier(.22,1,.36,1)}.name-button:focus-visible,.tool-item:focus-visible,.scroll-indicator:focus-visible{outline:2px solid var(--color-accent);outline-offset:6px}.hero-subtitle{font-size:clamp(1rem,2.5vw,1.5rem);letter-spacing:.3em;font-weight:300;color:var(--color-text-secondary);margin-bottom:40px}.hero-social{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:16px 28px}.social-link{display:flex;align-items:center;gap:16px;padding:8px 0;color:var(--color-text-secondary);transition:color .2s,transform .3s}.social-link:hover,.social-link:focus-visible{color:var(--color-accent);transform:translateY(-6px)}.social-icon{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--color-border);border-radius:50%;font-size:1.4rem}.social-label{font-weight:var(--font-weight-medium)}.scroll-indicator{position:absolute;bottom:24px;left:calc(50% - 22px);width:44px;height:68px;display:grid;place-items:center}.scroll-line{width:1px;height:46px;background:var(--color-border);overflow:hidden}.scroll-line-inner{display:block;height:23px;background:var(--color-accent);animation:scroll-cue 2s ease-in-out infinite}@keyframes scroll-cue{0%{transform:translateY(-100%)}to{transform:translateY(200%)}}.profile-section{padding:100px 0 120px;scroll-margin-top:85px}.profile-container{padding:40px 0}.profile-rule{height:1px;background:var(--color-accent);opacity:.6;transform-origin:left;margin-bottom:40px}.profile-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,90px);align-items:start}.profile-name{font-family:var(--font-heading);font-size:1.8rem;color:var(--color-accent);margin-bottom:20px}.profile-description{font-size:1.05rem;line-height:2;color:var(--color-text-secondary);-webkit-user-select:text;user-select:text}.profile-description+.profile-description{margin-top:14px}.tools-title{font-family:var(--font-heading);font-size:1.5rem;margin-bottom:24px}.tools-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tools-grid>*{min-width:0}.tool-item{width:100%;min-width:0;height:112px;padding:12px;display:grid;place-items:center;border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-secondary);background:transparent;transition:border-color .25s,color .25s}.tool-item:hover,.tool-item:focus-visible,.tool-item.is-playing{border-color:#dcc25b80;color:var(--color-accent)}.tool-name-art{display:grid;place-items:center;width:100%;min-width:0;font-family:var(--font-heading);font-size:clamp(14px,1.65vw,22px);font-weight:500;perspective:450px}.tool-lyric{display:flex;white-space:nowrap}.tool-lyric span{display:inline-block}.tool-lettering{display:block;width:100%;max-width:220px;height:70px;overflow:visible}.tool-lettering text{font-family:var(--font-heading);font-size:28px;font-weight:500;fill:currentColor}.tool-lettering tspan{stroke:currentColor;stroke-width:1.5;stroke-dasharray:180}.tool-cut{display:grid;position:relative;letter-spacing:.02em}.tool-cut span{grid-area:1 / 1}.tool-cut span:nth-child(1){clip-path:inset(0 0 66%)}.tool-cut span:nth-child(2){clip-path:inset(33% 0 33%)}.tool-cut span:nth-child(3){clip-path:inset(66% 0 0)}.tool-extruded{display:inline-block;transform:rotateX(0) rotateY(0) translateY(0);text-shadow:0 0 transparent,0 0 transparent,0 0 transparent,0 0 transparent,0 0 transparent,0 0 transparent,0 0 transparent,0 0 transparent,0 0 0 transparent;transition:transform .65s cubic-bezier(.22,1,.36,1),text-shadow .65s cubic-bezier(.22,1,.36,1)}.is-playing .tool-extruded{transform:rotateX(14deg) rotateY(-24deg) translateY(-3px);text-shadow:1px 1px #ad9650,2px 2px #a08a48,3px 3px #937e41,4px 4px #85713a,5px 5px #786533,6px 6px #6b592c,7px 7px #5e4e26,8px 8px #514220,12px 14px 12px rgba(0,0,0,.4)}@media(max-width:768px){.hero-section{min-height:100svh;flex-direction:column;gap:24px;padding:80px 0 100px}.hero-model-entry{position:relative;top:auto;right:auto;bottom:auto;width:100%;height:clamp(200px,42svh,400px);flex-shrink:0}.key-model-fallback{object-fit:contain}.hero-content{flex-shrink:0}.hero-title{font-size:clamp(3rem,12vw,5rem)}.hero-social{gap:10px}.social-link{gap:7px;font-size:.85rem}.social-icon{width:30px;height:30px;font-size:1rem;flex-shrink:0}.profile-section{padding:50px 0 70px}.profile-layout{grid-template-columns:1fr;gap:40px}.profile-container{padding:20px 0}.profile-description{font-size:.95rem}.tool-item{height:100px;padding:8px}.tool-name-art{font-size:clamp(14px,3.8vw,21px)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.about-page *,.about-page *:before,.about-page *:after{animation:none!important;transition:none!important}.name-follow{transform:none}}.footer{width:100%;padding:var(--space-sm) 0;text-align:center;border-top:1px solid var(--color-border);background:#11112966;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:var(--z-header);margin-top:auto}.footer-content p{font-size:.7rem;color:var(--color-text-secondary);letter-spacing:.15em;font-weight:var(--font-weight-regular);user-select:none;-webkit-user-select:none;-ms-user-select:none;opacity:.6}.app{position:relative;min-height:100vh;display:flex;flex-direction:column;user-select:none;-webkit-user-select:none;-ms-user-select:none}
