:root{--sileo-spring-easing:linear(0,0.002 0.6%,0.007 1.2%,0.015 1.8%,0.026 2.4%,0.041 3.1%,0.06 3.8%,0.108 5.3%,0.157 6.6%,0.214 8%,0.467 13.7%,0.577 16.3%,0.631 17.7%,0.682 19.1%,0.73 20.5%,0.771 21.8%,0.808 23.1%,0.844 24.5%,0.874 25.8%,0.903 27.2%,0.928 28.6%,0.952 30.1%,0.972 31.6%,0.988 33.1%,1.01 35.7%,1.025 38.5%,1.034 41.6%,1.038 45%,1.035 50.1%,1.012 64.2%,1.003 73%,0.999 83.7%,1);--sileo-duration:600ms;--sileo-height:40px;--sileo-width:350px;--sileo-state-success:oklch(0.723 0.219 142.136);--sileo-state-loading:oklch(0.556 0 0);--sileo-state-error:oklch(0.637 0.237 25.331);--sileo-state-warning:oklch(0.795 0.184 86.047);--sileo-state-info:oklch(0.685 0.169 237.323);--sileo-state-action:oklch(0.623 0.214 259.815)}[data-sileo-toast]{position:relative;cursor:pointer;pointer-events:auto;touch-action:none;border:0;background:transparent;padding:0;width:var(--sileo-width);height:var(--_h,var(--sileo-height));opacity:0;transform:translateZ(0) scale(.95);transform-origin:center;contain:layout style;overflow:visible}[data-sileo-toast][data-state=loading]{cursor:default}[data-sileo-toast][data-ready=true]{opacity:1;transform:translateZ(0) scale(1);transition:transform calc(var(--sileo-duration) * .66) var(--sileo-spring-easing),opacity calc(var(--sileo-duration) * .66) var(--sileo-spring-easing),margin-bottom calc(var(--sileo-duration) * .66) var(--sileo-spring-easing),margin-top calc(var(--sileo-duration) * .66) var(--sileo-spring-easing),height var(--sileo-duration) var(--sileo-spring-easing)}[data-sileo-viewport][data-position^=top]
	[data-sileo-toast]:not([data-ready=true]){transform:translateY(-6px) scale(.95)}[data-sileo-viewport][data-position^=bottom]
	[data-sileo-toast]:not([data-ready=true]){transform:translateY(6px) scale(.95)}[data-sileo-toast][data-ready=true][data-exiting=true]{opacity:0;pointer-events:none}[data-sileo-viewport][data-position^=top]
	[data-sileo-toast][data-ready=true][data-exiting=true]{transform:translateY(-6px) scale(.95)}[data-sileo-viewport][data-position^=bottom]
	[data-sileo-toast][data-ready=true][data-exiting=true]{transform:translateY(6px) scale(.95)}[data-sileo-canvas]{position:absolute;left:0;right:0;pointer-events:none;transform:translateZ(0);contain:layout style;overflow:visible}[data-sileo-canvas][data-edge=top]{bottom:0;transform:scaleY(-1) translateZ(0)}[data-sileo-canvas][data-edge=bottom]{top:0}[data-sileo-svg]{overflow:visible}[data-sileo-header]{position:absolute;z-index:20;display:flex;align-items:center;padding:.5rem;height:var(--sileo-height);overflow:hidden;left:var(--_px,0);transform:var(--_ht);max-width:var(--_pw)}[data-sileo-toast][data-ready=true] [data-sileo-header]{transition:transform var(--sileo-duration) var(--sileo-spring-easing),left var(--sileo-duration) var(--sileo-spring-easing),max-width var(--sileo-duration) var(--sileo-spring-easing)}[data-sileo-header][data-edge=top]{bottom:0}[data-sileo-header][data-edge=bottom]{top:0}[data-sileo-header-stack]{position:relative;display:inline-flex;align-items:center;height:100%}[data-sileo-header-inner]{display:flex;align-items:center;gap:.5rem;white-space:nowrap;opacity:1;filter:blur(0);transform:translateZ(0)}[data-sileo-header-inner][data-layer=current]{position:relative;z-index:1;animation:sileo-header-enter var(--sileo-duration) var(--sileo-spring-easing) both}[data-sileo-header-inner][data-exiting=true],[data-sileo-header-inner][data-layer=current]:not(:only-child){will-change:opacity,filter}[data-sileo-header-inner][data-layer=prev]{position:absolute;left:0;top:0;z-index:0;pointer-events:none}[data-sileo-header-inner][data-exiting=true]{animation:sileo-header-exit calc(var(--sileo-duration) * .7) ease forwards}[data-sileo-badge]{display:flex;height:24px;width:24px;flex-shrink:0;align-items:center;justify-content:center;padding:2px;box-sizing:border-box;border-radius:9999px;color:var(--sileo-tone,currentColor);background-color:var(--sileo-tone-bg,transparent)}[data-sileo-title]{font-size:.825rem;line-height:1rem;font-weight:500;text-transform:capitalize;color:var(--sileo-tone,currentColor)}:is([data-sileo-badge],[data-sileo-title],[data-sileo-button])[data-state]{--_c:var(--sileo-state-success)}:is([data-sileo-badge],[data-sileo-title],[data-sileo-button])[data-state=loading]{--_c:var(--sileo-state-loading)}:is([data-sileo-badge],[data-sileo-title],[data-sileo-button])[data-state=error]{--_c:var(--sileo-state-error)}:is([data-sileo-badge],[data-sileo-title],[data-sileo-button])[data-state=warning]{--_c:var(--sileo-state-warning)}:is([data-sileo-badge],[data-sileo-title],[data-sileo-button])[data-state=info]{--_c:var(--sileo-state-info)}:is([data-sileo-badge],[data-sileo-title],[data-sileo-button])[data-state=action]{--_c:var(--sileo-state-action)}:is([data-sileo-badge],[data-sileo-title])[data-state]{--sileo-tone:var(--_c);--sileo-tone-bg:color-mix(in oklch,var(--_c) 20%,transparent)}[data-sileo-content]{position:absolute;left:0;z-index:10;width:100%;pointer-events:none;opacity:var(--_co,0)}[data-sileo-content]:not([data-visible=true]){content-visibility:hidden}[data-sileo-toast][data-ready=true] [data-sileo-content]{transition:opacity calc(var(--sileo-duration) * .08) ease calc(var(--sileo-duration) * .04)}[data-sileo-content][data-edge=top]{top:0}[data-sileo-content][data-edge=bottom]{top:var(--sileo-height)}[data-sileo-content][data-visible=true]{pointer-events:auto}[data-sileo-toast][data-ready=true]
	[data-sileo-content][data-visible=true]{transition:opacity calc(var(--sileo-duration) * .6) ease calc(var(--sileo-duration) * .3)}[data-sileo-description]{width:100%;text-align:left;padding:1rem;font-size:.875rem;line-height:1.25rem;contain:layout style paint;content-visibility:auto}[data-sileo-button]{display:flex;align-items:center;justify-content:center;height:1.75rem;padding:0 .625rem;margin-top:.75rem;border-radius:9999px;border:0;font-size:.75rem;font-weight:500;cursor:pointer;color:var(--sileo-btn-color,currentColor);background-color:var(--sileo-btn-bg,transparent);transition:background-color .15s ease}[data-sileo-button]:hover{background-color:var(--sileo-btn-bg-hover,transparent)}[data-sileo-button][data-state]{--sileo-btn-color:var(--_c);--sileo-btn-bg:color-mix(in oklch,var(--_c) 15%,transparent);--sileo-btn-bg-hover:color-mix(in oklch,var(--_c) 25%,transparent)}[data-sileo-icon=spin]{animation:sileo-spin 1s linear infinite}@keyframes sileo-spin{to{transform:rotate(1turn)}}@keyframes sileo-header-enter{0%{opacity:0;filter:blur(6px)}to{opacity:1;filter:blur(0)}}@keyframes sileo-header-exit{0%{opacity:1;filter:blur(0)}to{opacity:0;filter:blur(6px)}}[data-sileo-viewport]{position:fixed;z-index:50;display:flex;gap:.75rem;padding:.75rem;pointer-events:none;max-width:calc(100vw - 1.5rem);contain:layout style}[data-sileo-viewport][data-position^=top]
	[data-sileo-toast]:not([data-ready=true]){margin-bottom:calc(-1 * (var(--sileo-height) + .75rem))}[data-sileo-viewport][data-position^=bottom]
	[data-sileo-toast]:not([data-ready=true]){margin-top:calc(-1 * (var(--sileo-height) + .75rem))}[data-sileo-viewport][data-position^=top]{top:0;flex-direction:column-reverse}[data-sileo-viewport][data-position^=bottom]{bottom:0;flex-direction:column}[data-sileo-viewport][data-position$=left]{left:0;align-items:flex-start}[data-sileo-viewport][data-position$=right]{right:0;align-items:flex-end}[data-sileo-viewport][data-position$=center]{left:50%;transform:translateX(-50%);align-items:center}@media (prefers-reduced-motion:no-preference){[data-sileo-toast][data-ready=true]:hover,[data-sileo-toast][data-ready=true][data-exiting=true]{will-change:transform,opacity,height}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms;animation-iteration-count:1;transition-duration:.01ms}}*{margin:0;padding:0;box-sizing:border-box}:root{--accent-hover:#ff4d5a;--accent-indigo:#4a69bd;--border-color:#2a2a2e;--build-revision:20260326;--font-sans:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,sans-serif;--font-mono:"SF Mono","Fira Code","Roboto Mono",monospace}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;overflow-x:hidden;background-image:radial-gradient(ellipse 80% 50% at 50% 50%,rgba(196,30,58,.15),transparent 70%);background-attachment:fixed}[data-sileo-viewport]{z-index:9999!important}.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;padding:24px 48px;background:rgba(10,10,12,.6);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:all .3s ease}.navbar.scrolled{padding:16px 48px;background:rgba(10,10,12,.9);border-bottom:1px solid var(--border-color)}.nav-content{max-width:1100px;margin:0 auto;justify-content:space-between}.logo,.nav-content{display:flex;align-items:center}.logo{font-size:20px;font-weight:700;letter-spacing:-.5px;gap:8px;text-decoration:none;color:var(--text-primary);cursor:pointer}.hero-counter{font-family:var(--font-mono);font-size:14px;font-weight:400;color:var(--accent);letter-spacing:2px;margin-bottom:12px;opacity:.8}.japanese{color:#facc15;font-size:16px;font-weight:400;opacity:.9}.nav-links{display:flex;gap:40px}.mobile-menu-button{display:none;flex-direction:column;justify-content:center;align-items:center;width:44px;height:44px;background:transparent;border:none;cursor:pointer;padding:10px;gap:6px;z-index:1001}.mobile-menu-button.open{z-index:2001}.hamburger-line{display:block;width:24px;height:2px;background:var(--text-primary);border-radius:2px;transition:all .3s cubic-bezier(.4,0,.2,1);transform-origin:center}.mobile-menu-button.open .hamburger-line:first-child{transform:translateY(8px) rotate(45deg)}.mobile-menu-button.open .hamburger-line:nth-child(2){opacity:0;transform:scaleX(0)}.mobile-menu-button.open .hamburger-line:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.mobile-menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(5,5,7,.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:2000;display:flex;justify-content:flex-end}.mobile-menu-drawer{width:100%;max-width:360px;height:100%;border-left:1px solid var(--border-color);display:flex;flex-direction:column;padding:24px;overflow-y:auto}.mobile-menu-header{border-bottom:1px solid var(--border-color)}.mobile-menu-title{font-size:13px}.mobile-menu-close{background:none;border:none;color:var(--text-secondary);font-size:32px;line-height:1;padding:4px;transition:color .3s ease}.mobile-menu-close:hover{color:var(--accent)}.mobile-menu-nav{display:flex;flex-direction:column;gap:8px;flex:1 1}.mobile-menu-link{align-items:baseline;gap:16px;padding:20px 16px;border-radius:12px}.mobile-menu-link:hover{background:rgba(230,57,70,.1);border-color:rgba(230,57,70,.3)}.mobile-menu-number{font-size:12px;opacity:.7}.mobile-menu-footer{border-top:1px solid var(--border-color)}.mobile-menu-tagline{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:2px}.mobile-menu-socials{display:flex;justify-content:center;gap:24px}.mobile-menu-socials a{color:var(--text-secondary);transition:all .3s ease;opacity:.7}.mobile-menu-socials a:hover{color:var(--accent);opacity:1;transform:translateY(-2px)}@media (max-width:768px){.mobile-menu-button{display:flex}}.hero{min-height:100vh;justify-content:center;padding:100px 20px 40px;position:relative}.hero,.hero-container{display:flex;align-items:center}.hero-container{justify-content:space-between;width:100%;max-width:1100px;gap:40px}.hero-content{flex:1 1;animation:fadeIn 1s ease-out forwards;max-width:600px;z-index:2}.hero-image-wrapper{flex:1 1;display:flex;justify-content:flex-end;animation:fadeIn 1s ease-out .5s backwards;z-index:1}.hero-image{max-width:100%;height:auto;max-height:85vh;object-fit:contain;mask-image:radial-gradient(ellipse at 50% 50%,#000 50%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse at 50% 50%,#000 50%,transparent 70%);filter:drop-shadow(0 0 30px rgba(230,57,70,.15))}.hero h1{font-size:72px;font-weight:800;letter-spacing:-2px;margin-bottom:8px;line-height:1.1}.hero .subtitle{font-size:24px;font-weight:500;color:var(--text-secondary);margin-bottom:24px;font-family:var(--font-mono)}.hero .tagline{font-size:20px;color:var(--text-secondary);font-weight:400;max-width:600px;margin-bottom:40px}.hero-cta{display:inline-block;padding:16px 32px;border:1px solid var(--border-color);color:var(--text-primary);text-decoration:none;font-size:14px;font-weight:500;text-transform:uppercase;letter-spacing:1px;transition:all .3s ease;position:relative;overflow:hidden}.hero-cta:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--text-primary);transform:scaleX(0);transform-origin:right;transition:transform .3s ease;z-index:-1}.hero-cta:hover{color:var(--bg-primary);border-color:var(--text-primary)}.hero-cta:hover:before{transform:scaleX(1);transform-origin:left}.scroll-indicator{position:absolute;bottom:40px;left:20px;display:flex;align-items:center;gap:16px;animation:fadeIn 1s ease-out 1s backwards}.scroll-indicator span{font-family:var(--font-mono);font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:2px;transform:rotate(-90deg);transform-origin:left center;margin-left:10px}.scroll-indicator .arrow{font-size:16px;color:var(--accent);animation:bounce 2s infinite}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(8px)}}section{padding:140px 20px;display:flex;align-items:center;justify-content:center}.section-content{max-width:1100px;margin:0 auto;width:100%;position:relative}section h2{font-size:40px;font-weight:700;letter-spacing:-1px;margin-bottom:64px;display:inline-block}section h2:after{bottom:-10px;width:40px;background:var(--accent)}.about{background:var(--bg-secondary);border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.about p{font-size:20px;line-height:1.6;color:var(--text-secondary);max-width:800px;margin:0 0 64px}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:32px;gap:32px}.skill-card{border-top:1px solid var(--border-color);padding:24px 0 0;transition:transform .3s ease}.skill-card h3{font-family:var(--font-mono);font-size:16px;font-weight:500;color:var(--text-primary);margin-bottom:16px;text-transform:uppercase;letter-spacing:1px}.skill-card h3:before{content:">";color:var(--accent);margin-right:8px}.skill-card p{font-size:15px;color:var(--text-secondary);margin:0}.projects-grid{display:grid;grid-template-columns:1fr;grid-gap:48px;gap:48px}.project-card{background:var(--bg-secondary);border:1px solid var(--border-color);transition:border-color .3s ease}.project-card,.project-info{display:flex;flex-direction:column}.project-info{flex:1 1}.project-card:hover{border-color:var(--text-secondary)}.project-header{font-family:var(--font-mono);font-size:48px;font-weight:300;color:var(--bg-tertiary);position:absolute;bottom:24px;right:32px;line-height:1;pointer-events:none}.project-info{padding:48px}.project-category{font-family:var(--font-mono);font-size:12px;color:var(--accent);text-transform:uppercase;letter-spacing:1px;display:block;margin-bottom:16px}.project-info a{text-decoration:none;color:inherit;display:inline-block}.project-info h3{font-size:32px;font-weight:700;margin-bottom:16px;letter-spacing:-.5px;position:relative;display:inline-block}.project-info h3:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:2px;background:var(--accent);transition:width .3s ease}.project-info a:hover h3:after{width:100%}.project-title-row{display:flex;align-items:center;gap:16px;margin-bottom:16px;flex-wrap:wrap}.project-title-row h3{margin-bottom:0}.project-info p{font-size:16px;color:var(--text-secondary);margin-bottom:32px;max-width:600px}.tech-stack{font-family:var(--font-mono);font-size:13px;color:var(--text-secondary);padding-top:24px;padding-bottom:24px;border-top:1px solid var(--border-color);display:inline-block}.project-badges{display:flex;align-items:center;gap:12px;margin-bottom:0;flex-wrap:wrap}.project-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:rgba(230,57,70,.1);border:1px solid rgba(230,57,70,.2);border-radius:4px;font-size:10px;font-weight:500;color:var(--accent);text-transform:uppercase;letter-spacing:.5px;font-family:var(--font-mono)}.project-badge svg{font-size:12px;opacity:.9}.project-info a.project-badge{color:var(--accent);display:inline-flex;align-items:center;gap:6px}.project-badge.status-building{background:rgba(34,197,94,.1);border-color:rgba(34,197,94,.2);color:#22c55e}.status-dot{width:6px;height:6px;border-radius:50%;background-color:currentColor;box-shadow:0 0 8px currentColor;animation:pulse-dot 2s infinite}@keyframes pulse-dot{0%{transform:scale(.95);opacity:1}50%{transform:scale(1.3);opacity:.7}to{transform:scale(.95);opacity:1}}.project-badge.status-paused{background:hsla(0,0%,100%,.03);border-color:hsla(0,0%,100%,.08);color:var(--text-secondary)}.project-cta{display:inline-block;padding:14px 32px;border:1px solid var(--border-color);color:var(--text-primary);text-decoration:none;font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:1px;transition:all .3s ease;background:transparent;margin-top:auto;align-self:flex-start;cursor:pointer}.project-cta:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:rgba(230,57,70,.05)}.project-cta:disabled{opacity:.5;cursor:not-allowed;border-color:var(--text-secondary);color:var(--text-secondary)}.empty-card{border:1px dashed var(--border-color);background:transparent;align-items:center;justify-content:center;text-align:center;padding:64px 0}.empty-card .project-info{padding:0}.empty-card h3{font-size:20px;margin-bottom:8px;color:var(--text-secondary)}.empty-card p{margin:0;font-family:var(--font-mono);font-size:13px}.contact{background:var(--bg-secondary);border-top:1px solid var(--border-color);text-align:center;padding:160px 20px}.contact .section-content{display:flex;flex-direction:column;align-items:center}.contact h2:after{left:50%;transform:translateX(-50%)}.contact p{font-size:20px;color:var(--text-secondary);margin-bottom:48px}.contact-form{width:100%;max-width:500px;display:flex;flex-direction:column;gap:20px}.form-group input,.form-group textarea{width:100%;padding:16px 20px;background:hsla(0,0%,100%,.02);border:1px solid hsla(0,0%,100%,.06);border-radius:12px;color:var(--text-primary);font-family:inherit;font-size:15px;letter-spacing:.3px;transition:all .3s cubic-bezier(.4,0,.2,1);box-sizing:border-box}.form-group input:-ms-input-placeholder,.form-group textarea:-ms-input-placeholder{color:hsla(0,0%,100%,.3)}.form-group input::placeholder,.form-group textarea::placeholder{color:hsla(0,0%,100%,.3)}.form-group input:focus,.form-group textarea:focus{outline:none;background:hsla(0,0%,100%,.04);border-color:rgba(230,57,70,.5);box-shadow:0 0 0 4px rgba(230,57,70,.1)}.form-group textarea{resize:vertical;min-height:140px}.submit-button{width:100%;margin-top:16px;border-radius:12px;padding:18px 24px}.cf-turnstile{margin:16px 0;display:flex;justify-content:center}.cf-turnstile iframe{border-radius:8px}.cta-button{display:inline-block;padding:16px 48px;background:var(--text-primary);color:var(--bg-primary);text-decoration:none;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:1px;transition:all .3s ease}.cta-button:hover{background:var(--accent);color:#fff}.footer{background:var(--bg-secondary);border-top:1px solid var(--border-color);text-align:center;padding:80px 20px;position:relative;overflow:hidden}.footer-particles{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;pointer-events:none;z-index:0}.particle{position:absolute;font-family:var(--font-mono);font-size:14px;font-weight:500;color:rgba(230,57,70,.4);bottom:-30px;animation:float-up linear infinite;-webkit-user-select:none;-ms-user-select:none;user-select:none}.particle svg{width:16px;height:16px;display:block}.particle:first-child{left:15%;animation-duration:14s;animation-delay:0s}.particle:nth-child(2){left:38%;animation-duration:16s;animation-delay:2s}.particle:nth-child(3){left:62%;animation-duration:12s;animation-delay:4s}.particle:nth-child(4){left:85%;animation-duration:18s;animation-delay:1s}@keyframes float-up{0%{transform:translateY(0) rotate(0deg);opacity:0}10%{opacity:.6}90%{opacity:.6}to{transform:translateY(-400px) rotate(1turn);opacity:0}}.footer-content{position:relative;z-index:1;max-width:1100px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}.footer-logo{height:96px;margin-bottom:24px;opacity:.9}.footer p{font-family:var(--font-mono);font-size:13px;color:var(--text-secondary);margin-bottom:8px}.footer-icon{width:16px;height:16px;opacity:.7;vertical-align:middle}.footer-icon svg{stroke:currentColor}.copyright{font-size:11px;margin-bottom:24px!important;opacity:.5}.social-links{display:flex;gap:24px;margin-top:16px}.social-links a{font-family:var(--font-mono);color:var(--text-primary);text-decoration:none;font-size:14px;text-transform:uppercase;letter-spacing:1px;opacity:.7;transition:all .3s ease}.social-links a:hover{opacity:1;color:var(--accent)}.decorative-banner{position:fixed;top:0;left:40px;width:60px;z-index:1500;pointer-events:none;filter:drop-shadow(0 15px 30px rgba(230,57,70,.3));opacity:.9;animation:floatBanner 6s ease-in-out infinite}@keyframes floatBanner{0%,to{transform:translateY(0)}50%{transform:translateY(10px)}}.project-card{position:relative;overflow:visible}.project-hover-banner{position:absolute;top:0;right:40px;width:45px;z-index:10;opacity:0;transform:translateY(-20px) rotate(5deg);transition:all .4s cubic-bezier(.175,.885,.32,1.275);pointer-events:none;filter:drop-shadow(0 15px 30px rgba(230,57,70,.2))}.project-card:hover .project-hover-banner{opacity:1;transform:translateY(0) rotate(0deg)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(5,5,7,.7);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px}.modal-content{background:rgba(18,18,20,.75);border:1px solid hsla(0,0%,100%,.08);border-radius:20px;padding:48px 40px;width:100%;max-width:480px;position:relative;box-shadow:0 30px 60px -12px rgba(0,0,0,.8),0 0 40px rgba(230,57,70,.05);text-align:center;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.modal-content h2{font-size:32px;margin-bottom:32px;font-weight:700;letter-spacing:-.5px;background-image:linear-gradient(180deg,#fff,hsla(0,0%,100%,.7));background-clip:text;-webkit-background-clip:text;color:transparent}.modal-close{background:none;border:none;font-size:28px;line-height:1;padding:8px;transition:color .3s ease}@media (max-width:768px){.decorative-banner{left:20px;width:45px}.modal-content{padding:32px 24px;border-radius:16px}.navbar{padding:12px 20px}.nav-links{display:none}.hero{padding:80px 20px 20px;min-height:auto}.hero-container{flex-direction:column-reverse;text-align:center;justify-content:flex-start;margin-top:0;padding-top:20px;gap:24px}.hero-content{display:flex;flex-direction:column;align-items:center;margin-top:16px}.hero-image-wrapper{justify-content:center;margin-bottom:8px;margin-top:50px;width:100%;display:flex;align-items:flex-end}.hero-image{max-height:42vh;border-radius:12px;box-shadow:0 20px 60px rgba(196,30,58,.15)}.hero h1{font-size:48px}.hero .subtitle{font-size:18px}.hero .tagline{font-size:16px}section{padding:100px 24px}section h2{font-size:32px;margin-bottom:48px}.skills-grid{grid-template-columns:1fr;gap:40px}.project-info{padding:32px 24px}.project-header{font-size:32px;top:16px;right:24px}}.sakura-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;pointer-events:none;z-index:1}.sakura-petal{background:linear-gradient(135deg,#fcc9b9,hsla(14,92%,86%,.3));opacity:0}.zen-ripples-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;pointer-events:none;z-index:0}@keyframes zen-ripple-expand{0%{transform:scale(0);opacity:0;border-width:2px}10%{opacity:.15}50%{opacity:.08;border-width:1px}to{transform:scale(4);opacity:0;border-width:.5px}}.zen-ripple{position:absolute;width:100px;height:100px;border:1px solid rgba(196,30,58,.2);border-radius:50%;transform:scale(0);opacity:0;pointer-events:none;animation:zen-ripple-expand ease-out infinite}.zen-ripple:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:70%;height:70%;border:1px solid rgba(212,175,55,.15);border-radius:50%}.sumi-particles-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;pointer-events:none;z-index:1}@keyframes sumi-float{0%{transform:translateY(100vh) translateX(0) scale(1);opacity:0}5%{opacity:.3}95%{opacity:.3}to{transform:translateY(-20vh) translateX(30px) scale(.6);opacity:0}}.sumi-particle{position:absolute;width:3px;height:3px;background:hsla(0,0%,63%,.4);border-radius:50%;filter:blur(1px);opacity:0;pointer-events:none;animation:sumi-float linear infinite}.jp-vertical-text{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.jp-vertical-subtitle{font-family:"Noto Serif JP",serif;font-size:14px;color:var(--accent-gold);letter-spacing:.3em;-ms-writing-mode:tb-rl;writing-mode:vertical-rl;text-orientation:upright;opacity:.8}.jp-subtitle{font-family:"Noto Serif JP",serif;font-size:16px;color:var(--accent);margin-right:12px;opacity:.9}.jp-button{display:inline-flex;align-items:center;gap:12px;padding:18px 36px;text-decoration:none;font-size:13px;letter-spacing:.15em}.jp-button .cta-en{font-size:11px;opacity:.7;text-transform:uppercase;letter-spacing:.1em}.decorative-banner{filter:drop-shadow(0 15px 30px rgba(196,30,58,.3))}section h2{position:relative;padding-bottom:16px}section h2:after{content:"";position:absolute;bottom:0;left:0;width:60px;height:2px;background:linear-gradient(90deg,var(--accent),transparent)}.particle.jp-kanji{font-family:"Noto Serif JP",serif;font-size:18px;color:rgba(196,30,58,.5);text-shadow:0 0 10px rgba(196,30,58,.2)}.accent-gold{color:var(--accent-gold)}.accent-indigo{color:var(--accent-indigo)}.jp-section-title{font-size:14px;color:var(--accent-gold);margin-left:16px;font-weight:400;letter-spacing:.2em;opacity:.7}.jp-section-title,.jp-skill{font-family:"Noto Serif JP",serif}.jp-skill{font-size:13px;color:var(--accent);margin-left:8px;opacity:.8;letter-spacing:.1em}.tatami-line:after{bottom:0;width:80px;background:linear-gradient(90deg,var(--accent),var(--accent-gold),transparent)}.work h2{display:flex;align-items:baseline}.work h2:after{display:none}.jp-modal{background:hsla(0,0%,5%,.95);border:1px solid rgba(196,30,58,.2);border-radius:16px;padding:48px 40px;position:relative;overflow:hidden}.jp-modal:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent),var(--accent-gold),transparent);opacity:.6}.jp-modal-header{text-align:center;margin-bottom:40px;position:relative}.jp-modal-kanji{font-family:"Noto Serif JP",serif;font-size:32px;color:var(--accent);display:block;margin-bottom:8px;opacity:.8;letter-spacing:.3em}.jp-modal h2{font-size:28px;font-weight:600;margin-bottom:4px;background:none;-webkit-background-clip:initial;background-clip:border-box;background-clip:initial;color:var(--text-primary)}.jp-modal-subtitle{font-family:var(--font-sans);font-size:13px;color:var(--text-secondary);opacity:.8}.jp-form-group{margin-bottom:24px}.jp-label{display:flex;align-items:baseline;gap:8px;margin-bottom:8px;font-size:13px}.jp-label-en{color:var(--text-primary);font-weight:500}.jp-label-jp{font-family:"Noto Serif JP",serif;font-size:11px;color:var(--text-secondary);opacity:.6}.jp-input{width:100%;padding:16px 18px;background:hsla(0,0%,100%,.03);border:1px solid hsla(0,0%,100%,.08);border-radius:2px;color:var(--text-primary);font-size:15px;transition:all .3s ease;font-family:var(--font-sans)}.jp-input:focus{outline:none;border-color:var(--accent);background:rgba(196,30,58,.05);box-shadow:0 0 0 3px rgba(196,30,58,.1)}.jp-input:-ms-input-placeholder{color:hsla(0,0%,100%,.25)}.jp-input::placeholder{color:hsla(0,0%,100%,.25)}.jp-textarea{min-height:120px;resize:vertical;line-height:1.6}.jp-submit-button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:18px 32px;width:100%;background:transparent;border:1px solid var(--accent);color:var(--accent);cursor:pointer;transition:all .4s ease;position:relative;overflow:hidden}.jp-submit-button:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .4s cubic-bezier(.4,0,.2,1);z-index:-1}.jp-submit-button:hover:not(:disabled):before{transform:scaleX(1);transform-origin:left}.jp-submit-button:hover:not(:disabled){color:var(--bg-primary)}.jp-submit-button:disabled{opacity:.4;cursor:not-allowed;border-color:var(--text-secondary);color:var(--text-secondary)}.jp-submit-text{font-family:"Noto Serif JP",serif;font-size:16px;letter-spacing:.2em}.jp-submit-en{font-size:10px;opacity:.7;text-transform:uppercase;letter-spacing:.1em}.modal-close{position:absolute;top:16px;right:16px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;color:var(--text-secondary);font-size:24px;cursor:pointer;transition:all .3s ease;border-radius:2px}.modal-close:hover{color:var(--accent);border-color:rgba(196,30,58,.3);background:rgba(196,30,58,.1)}.nav-links a{display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;color:var(--text-secondary);font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:1px;transition:color .3s ease;position:relative;padding:4px 0}.nav-links a:hover{color:var(--text-primary)}.nav-links a:after{content:"";position:absolute;bottom:-2px;left:50%;transform:translateX(-50%);width:0;height:1px;background:var(--accent);transition:width .3s ease}.nav-links a:hover:after{width:60%}.nav-text{font-size:13px;font-weight:500}.nav-kanji{font-family:"Noto Serif JP",serif;font-size:7px;color:var(--text-secondary);opacity:.4;letter-spacing:.05em;font-weight:300;transition:opacity .3s ease,color .3s ease}.nav-links a:hover .nav-kanji{opacity:.7;color:var(--accent-gold)}.mobile-menu-overlay{background:rgba(5,5,7,.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.mobile-menu-drawer{background:var(--bg-secondary);border-left:1px solid rgba(196,30,58,.15);max-width:380px}.mobile-menu-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:48px;padding-bottom:24px;border-bottom:1px solid rgba(196,30,58,.1)}.mobile-menu-title-group{display:flex;flex-direction:column;gap:4px}.mobile-menu-title-jp{font-family:"Noto Serif JP",serif;font-size:14px;color:var(--text-secondary);opacity:.6;letter-spacing:.2em;font-weight:300}.mobile-menu-title{font-family:var(--font-mono);font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:2px}.mobile-menu-close{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid rgba(196,30,58,.2);border-radius:2px;cursor:pointer;transition:all .3s ease}.close-kanji{font-family:"Noto Serif JP",serif;font-size:16px;color:var(--text-secondary);opacity:.6;font-weight:300;transition:color .3s ease}.mobile-menu-close:hover .close-kanji{color:var(--accent);opacity:1}.mobile-menu-close:hover{background:rgba(196,30,58,.1);border-color:var(--accent)}.mobile-menu-link{display:flex;align-items:center;gap:24px;padding:24px 20px;text-decoration:none;color:var(--text-primary);border-radius:2px;transition:all .3s ease;border:1px solid transparent;margin-bottom:8px}.mobile-menu-link:hover{background:rgba(196,30,58,.05);border-color:rgba(196,30,58,.15);padding-left:28px}.mobile-menu-number{font-family:var(--font-mono);font-size:11px;color:var(--accent);opacity:.5;min-width:24px}.mobile-menu-link-content{display:flex;flex-direction:column;gap:4px}.mobile-menu-text{font-size:24px;font-weight:600;letter-spacing:-.5px}.mobile-menu-kanji{font-family:"Noto Serif JP",serif;font-size:10px;color:var(--text-secondary);opacity:.5;font-weight:300;letter-spacing:.05em}.mobile-menu-footer{margin-top:auto;padding-top:32px;border-top:1px solid rgba(196,30,58,.1);text-align:center}.mobile-menu-tagline{display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:24px}.tagline-jp{font-family:"Noto Serif JP",serif;font-size:13px;opacity:.5;letter-spacing:.15em;font-weight:300}.tagline-en,.tagline-jp{color:var(--text-secondary)}.tagline-en{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:2px}@media (max-width:768px){.jp-modal{padding:36px 24px;margin:16px;max-width:calc(100% - 32px);border-radius:20px}.jp-modal-kanji{font-size:28px}.jp-modal h2{font-size:24px}.jp-label{font-size:12px}.jp-input{padding:14px 16px;font-size:16px}.nav-links{display:none}}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--bg-primary:#0a0a0c;--bg-secondary:#121214;--bg-tertiary:#1c1c1f;--accent:#c41e3a;--accent-hover:#e63946;--accent-secondary:#4a69bd;--accent-gold:#d4af37;--accent-pink:#fcc9b9;--text-primary:#f0f0f0;--text-secondary:#999;--text-muted:#666;--border-color:#2a2a2a;--border-light:#333;--font-jp:"Noto Sans JP",-apple-system,BlinkMacSystemFont,sans-serif;--font-serif-jp:"Noto Serif JP",Georgia,serif}.jp-vertical{-ms-writing-mode:tb-rl;writing-mode:vertical-rl;text-orientation:mixed}.asymmetric-grid{display:grid;grid-template-columns:1fr 1.618fr 1fr;grid-gap:40px;gap:40px}.jp-divider{position:relative;height:1px;background:linear-gradient(90deg,transparent,var(--border-color),transparent);margin:80px 0}.jp-divider:before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:8px;height:8px;background:var(--accent);border-radius:50%;opacity:.5}.ink-hover{position:relative;overflow:hidden}.ink-hover:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:radial-gradient(circle,rgba(196,30,58,.15),transparent 70%);border-radius:50%;transform:translate(-50%,-50%);transition:width .6s ease,height .6s ease}.ink-hover:hover:before{width:300%;height:300%}.jp-button{position:relative;padding:16px 40px;border:1px solid var(--border-color);background:transparent;color:var(--text-primary);font-family:var(--font-jp);font-size:14px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);overflow:hidden}.jp-button:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .4s cubic-bezier(.4,0,.2,1);z-index:-1}.jp-button:hover{color:var(--bg-primary);border-color:var(--accent)}.jp-button:hover:before{transform:scaleX(1);transform-origin:left}.tatami-line{position:relative}.tatami-line:after{content:"";position:absolute;bottom:-8px;left:0;width:60px;height:2px;background:var(--accent);opacity:.8}@keyframes kanji-float{0%,to{transform:translateY(0) rotate(0deg);opacity:.3}50%{transform:translateY(-20px) rotate(5deg);opacity:.6}}.kanji-float{animation:kanji-float 8s ease-in-out infinite}@keyframes sakura-fall{0%{transform:translateY(-10vh) rotate(0deg) translateX(0);opacity:.8}to{transform:translateY(110vh) rotate(2turn) translateX(100px);opacity:0}}.sakura-petal{position:absolute;width:12px;height:12px;background:linear-gradient(135deg,var(--accent-pink),transparent);border-radius:50% 0 50% 50%;opacity:.6;pointer-events:none;animation:sakura-fall linear infinite}.shoji-reveal{-webkit-clip-path:polygon(0 0,0 0,0 100%,0 100%);clip-path:polygon(0 0,0 0,0 100%,0 100%);transition:-webkit-clip-path .8s cubic-bezier(.4,0,.2,1);transition:clip-path .8s cubic-bezier(.4,0,.2,1);transition:clip-path .8s cubic-bezier(.4,0,.2,1),-webkit-clip-path .8s cubic-bezier(.4,0,.2,1)}.shoji-reveal.revealed{-webkit-clip-path:polygon(0 0,100% 0,100% 100%,0 100%);clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}@media (max-width:768px){.jp-vertical{-ms-writing-mode:lr-tb;writing-mode:horizontal-tb}.asymmetric-grid{grid-template-columns:1fr}}