/*! tailwindcss v4.1.8 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-duration:initial}}}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.mx-auto{margin-inline:auto}.flex{display:flex}.grid{display:grid}.inline-block{display:inline-block}.aspect-\[16\/9\]{aspect-ratio:16/9}.h-full{height:100%}.w-full{width:100%}.max-w-\[180px\]{max-width:180px}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.justify-center{justify-content:center}.overflow-hidden{overflow:hidden}.object-cover{object-fit:cover}.opacity-0{opacity:0}.opacity-100{opacity:1}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.duration-700{--tw-duration:.7s;transition-duration:.7s}body,html{color:#4a5759;scroll-behavior:smooth;background:0 0;min-height:100vh;margin:0;padding:0;font-family:Inter,Segoe UI,sans-serif;line-height:1.6;position:relative}body:before{content:"";z-index:-1;opacity:0;filter:brightness(1.1)saturate(.8);background:url(/bg.jpg) 50%/cover no-repeat;width:100%;height:100%;transition:opacity 1.5s;position:fixed;top:0;left:0}body.loaded:before{opacity:1}body.scrolled:before{opacity:.4}@keyframes fadeInBackground{0%{opacity:0}to{opacity:.15}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.App{overflow-x:hidden}.App,.hero{position:relative}.hero{opacity:1;background-position:50%;background-size:cover;height:100vh;transition:opacity .8s}.hero.scrolled{opacity:.4}.hero-content{width:100%;height:100%}.hero.visible{opacity:1}.section{text-align:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background-color:#ffffffd9;border-radius:0;width:calc(100% - 2cm);max-width:none;margin:80px auto;padding:80px 40px;transition:box-shadow .3s;box-shadow:0 4px 6px -1px #4a57591a,0 2px 4px -1px #4a57590f,inset 0 0 0 1px #ffffff4d}.projects{text-align:left;margin:2rem 0;padding:0;list-style:none}.projects li{margin-bottom:1.5rem;padding-left:1.5rem;position:relative}.projects li strong{color:#4a5759;margin-bottom:.5rem;display:block}h1,h2,h3,h4,h5,h6{color:#4a5759;letter-spacing:-.025em;margin-bottom:1rem;font-weight:600;line-height:1.2}p{color:#4a5759;margin-bottom:1.5rem;font-size:1.125rem}.reveal{opacity:0;transition:all 1.2s cubic-bezier(.4,0,.2,1);position:relative;overflow:visible;transform:translateY(40px)}.reveal.visible{opacity:1;overflow:visible;transform:translateY(0)}a{color:#4299e1;text-decoration:none;transition:color .2s}a:hover{color:#2b6cb0}.footer{text-align:center;color:#4a5759;margin-top:4rem;padding:2rem 1rem;font-size:.9rem}.project-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;margin-top:2rem;display:grid}.project-card{text-align:left;cursor:pointer;background:#f1f1f1;flex-direction:column;padding:0;transition:background .3s;display:flex;overflow:hidden}.project-image{background-color:#fff;border-radius:6px;justify-content:center;width:calc(100% - 2rem);height:180px;margin:1rem auto .5rem}.project-image,.project-title{align-items:center;display:flex}.project-title{color:#4a5759;justify-content:space-between;padding:1rem;font-size:1.1rem;font-weight:700}.project-body{padding:0 1rem 1rem;transition:max-height .4s;overflow:hidden}.project-description{color:#4a5759;font-size:.95rem}.store-button{color:#fff;background-color:#4a5759;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;padding:8px 16px;font-size:.9rem;font-weight:500;text-decoration:none;transition:background-color .3s,color .3s,border-color .3s;display:inline-flex}.store-button--active:hover{color:#4a5759;background-color:#fff;border-color:#4a5759}.store-button--disabled{color:#6b7280;pointer-events:none;opacity:.8;background-color:#e5e7eb}.mobile-icons{justify-content:center;align-items:center;gap:16px;width:100%;display:flex}.mobile-icon{object-fit:cover;width:120px;height:120px;box-shadow:none;background:linear-gradient(145deg,#fff,#e6e6e6);border-radius:24px;transition:transform .25s,box-shadow .25s}.mobile-icon:hover{transform:translateY(-6px);box-shadow:inset 0 1px 4px #fffc,inset 0 -2px 6px #00000014,0 12px 28px #00000029}.contact-info{flex-direction:column;gap:.5rem;margin-top:1rem;display:flex}.contact-item{color:#4a5759;align-items:center;gap:.5rem;font-size:1rem;display:flex}.skills-grid{flex-wrap:wrap;justify-content:center;gap:2rem;max-width:1000px;margin:1rem auto 0;display:flex}.skill-category{flex-direction:column;align-items:center;width:280px;margin-bottom:2rem;display:flex}.skill-title-wrapper{margin-bottom:1.5rem;display:inline-block;position:relative}.skill-title{text-align:center;color:#fff;background-position:0;background-size:300% 300%;border-radius:2rem;width:200px;padding:.75rem 1.5rem;font-size:1.2rem;position:relative}.skill-color-0{background-color:#b0c4b1}.skill-color-1{background-color:#edafb8}.skill-color-2{background-color:#a2d2ff}.read-more-btn{color:#fff;opacity:0;z-index:2;pointer-events:auto;background-color:#4a5759;border:none;border-radius:999px;padding:.25rem .6rem;font-size:.7rem;text-decoration:none;transition:all .3s;position:absolute;bottom:-10px;right:-10px;transform:translateY(5px)}.skill-title-wrapper.visible .read-more-btn{animation:fadeInReadMore .6s forwards}.read-more-btn:hover{color:#4a5759;background-color:#fff}@keyframes fadeInReadMore{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.skill-items{flex-direction:column;gap:.5rem;display:flex}.skill-item{color:#4a5759;opacity:0;font-size:1rem;animation:fadeInUp .6s forwards;transform:translateY(10px)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.section{margin:40px auto;padding:60px 24px}p{font-size:1rem}.projects li{padding-left:1rem}body:before{opacity:1;z-index:-1;pointer-events:none;background-attachment:scroll;position:fixed}}.about-content{text-align:center;color:#4a5759;flex-direction:column;align-items:center;display:flex}.about-image{object-fit:cover;opacity:0;border-radius:50%;width:180px;height:180px;margin-bottom:20px;transition:opacity 1.2s,transform 3s;transform:scale(1)}.about-image.animate{opacity:1;transform:scale(1.07)}.hidden{display:none}@keyframes scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.passion-image-wrapper{justify-content:center;align-items:center;margin:0 auto;padding:0;display:flex}.passion-image{width:100%;max-width:320px;height:auto;box-shadow:none;background:0 0;border-radius:0;margin:0 auto;display:block}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}.floating-menu{position:fixed;bottom:20px;right:20px;display:flex;gap:12px;align-items:center;opacity:0;transform:translateY(30px);transition:all .5s ease;z-index:999}.floating-menu.show{opacity:1;transform:translateY(0)}.github-icon,.linkedin-icon{font-size:32px;color:#4a5759;transition:transform .2s ease;display:flex;align-items:center;justify-content:center;height:100%}.github-icon:hover,.linkedin-icon:hover{transform:scale(1.1)}.toggle-wrapper{width:60px;height:32px;background:#ccc;border-radius:16px;position:relative;cursor:pointer;transition:background .3s ease}.toggle-button{width:28px;height:28px;border-radius:50%;font-size:12px;line-height:28px;text-align:center;position:absolute;top:2px;left:2px;transition:left .3s ease,background .3s ease}.toggle-button.jp{left:2px;background:#4a5759;color:#fff}.toggle-button.en{left:30px;background:#fff;color:#4a5759}body{font-family:sans-serif;display:flex;justify-content:center;align-items:center;min-height:100vh}.book{perspective:1000px}.small-book .pages{width:400px;height:200px;position:relative;transform-style:preserve-3d}.page{width:200px;height:200px;position:absolute;top:0;transform-origin:0 0;transition:transform 1s;background-size:cover;background-position:50%;backface-visibility:hidden;cursor:pointer}.page:nth-child(odd){right:0;transform:rotateY(0deg);z-index:1}.page:nth-child(2n){left:0;transform:rotateY(180deg);transform-origin:100% 0}.page.flipped:nth-child(odd){transform:rotateY(-180deg);z-index:0}.page.flipped:nth-child(2n){transform:rotateY(0deg);z-index:2}.book-wrapper{position:relative}.arrow-right{position:absolute;left:-3rem;top:50%;transform:translateY(-50%);font-size:3rem;color:#4a5759;z-index:20;transition:opacity .6s ease;pointer-events:none;animation:wiggleRight 1.5s ease-in-out infinite}.arrow-right.hidden{opacity:0}@keyframes wiggleRight{0%{transform:translateY(-50%) translateX(0)}25%{transform:translateY(-50%) translateX(4px)}50%{transform:translateY(-50%) translateX(0)}75%{transform:translateY(-50%) translateX(4px)}to{transform:translateY(-50%) translateX(0)}}@media (max-width:480px){.small-book .pages{transform:scale(.8);transform-origin:top center}}