:root{--black:#0a0a0a;--white:#fafafa;--blue:#1300ff}*{box-sizing:border-box}html,body{background:var(--black);min-height:100%;color:var(--white);margin:0;font-family:Helvetica Neue,Arial,sans-serif;overflow:hidden}button,a{font:inherit}button{cursor:pointer;border:0}.site-shell,.landing,.portfolio{width:100%;min-height:100svh;position:relative}.hello{z-index:300;background:var(--black);place-content:center;justify-items:center;gap:24px;animation:.55s cubic-bezier(.7,0,.2,1) 1.9s forwards hello-away;display:grid;position:fixed;inset:0}.hello p{letter-spacing:-.045em;margin:0;font-size:31px;animation:.4s 1.55s forwards hey-away}.hello-orb{background:var(--white);border-radius:999px;width:54px;height:25px;animation:1.85s cubic-bezier(.2,.85,.25,1) forwards hello-orb;position:relative}.hello-smiley{object-fit:contain;opacity:0;filter:drop-shadow(0 15px 24px #000);width:92px;height:92px;animation:.78s cubic-bezier(.16,1,.3,1) 1.12s forwards smiley-dissolve;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.36)}.landing{background:radial-gradient(circle at 50% 55%,#151515 0,var(--black) 52%);place-items:center;display:grid}.landing-copy{z-index:3;text-align:center;flex-direction:column;align-items:center;display:flex;position:relative}.landing-sphere{flex:none;width:92px;height:92px;margin:0 0 18px;position:relative}.landing-orb{object-fit:contain;filter:drop-shadow(0 16px 26px #000);width:100%;height:100%;display:block}.landing h1 span{display:block}.landing h1{letter-spacing:0;margin:0 0 27px;font-size:clamp(25px,2.2vw,36px);font-weight:450;line-height:1.06}.enter-button,.menu-button{background:var(--white);color:var(--black);border-radius:999px;padding:13px 16px;font-size:18px;transition:transform .25s,background .25s}.enter-button:hover,.menu-button:hover{background:#dfff00;transform:scale(1.06)}.menu-button.menu-hover-suppressed:hover{background:var(--white);transform:none}.enter-button span,.menu-button span{margin-left:6px}.portfolio{background:var(--black);isolation:isolate}.webgl-spiral{z-index:2;touch-action:none;position:absolute;inset:0;overflow:hidden}.webgl-spiral:after{content:"";z-index:2;pointer-events:none;background:linear-gradient(to bottom,var(--black) 0%,#0a0a0ab8 3%,#0a0a0a24 7%,transparent 12%,transparent 88%,#0a0a0a29 93%,#0a0a0ac2 97%,var(--black) 100%);position:absolute;inset:0}.webgl-spiral canvas{width:100%;height:100%;display:block}.spiral-hover-title{z-index:3;pointer-events:none;min-width:360px;color:var(--black);opacity:0;white-space:nowrap;text-align:left;background:#fffffff5;border-radius:13px;flex-direction:column;align-items:flex-start;padding:12px 16px 11px;transition:opacity .22s,transform .3s cubic-bezier(.2,.8,.2,1);display:flex;position:absolute;bottom:26px;left:50%;transform:translate(-50%,12px);box-shadow:0 12px 35px #0008}.spiral-hover-title.visible{opacity:1;transform:translate(-50%)}.spiral-hover-title strong{letter-spacing:-.02em;font-size:15px;font-weight:500}.spiral-hover-title small{color:#686868;letter-spacing:.05em;margin-top:3px;font-size:10px}.grid{z-index:-2;opacity:.22;background-image:linear-gradient(#282828 1px,#0000 1px),linear-gradient(90deg,#282828 1px,#0000 1px);background-size:4vw 4vw;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 28%,#0000 82%);mask-image:radial-gradient(#000 28%,#0000 82%)}.topbar{z-index:30;pointer-events:none;justify-content:space-between;align-items:flex-start;display:flex;position:fixed;inset:26px 26px auto}.topbar>*{pointer-events:auto}.gaze-shell{--gaze-x:0deg;--gaze-y:0deg;--eye-x:0px;--eye-y:0px;transform:perspective(700px) rotateX(var(--gaze-y)) rotateY(var(--gaze-x)) scale(1.005);transform-style:preserve-3d;will-change:transform;transition:transform .22s cubic-bezier(.22,1,.36,1),filter .55s;position:relative}.gaze-shell:after{content:"";z-index:1;pointer-events:none;transform:translate(calc(var(--eye-x) * .28),calc(var(--eye-y) * .28)) translateZ(6px);background:radial-gradient(circle at 32% 24%,#ffffff42,#0000 34%);border-radius:50%;transition:transform .22s cubic-bezier(.22,1,.36,1);position:absolute;inset:12%}.gaze-eyes{z-index:2;width:38%;height:26%;transform:translate(calc(-50% + var(--eye-x)),calc(-50% + var(--eye-y))) translateZ(12px);pointer-events:none;justify-content:center;gap:12%;transition:transform .2s cubic-bezier(.22,1,.36,1);display:flex;position:absolute;top:39%;left:50%}.gaze-eyes i{background:#fff;border-radius:999px;width:32%;height:100%;display:block;box-shadow:0 0 7px #fff8}.mark-area{width:90px;height:90px;position:relative}.mark-shell{width:90px;height:90px;color:inherit;view-transition-name:site-mascot;background:0 0;border-radius:50%;padding:0}.mark-shell:not(.mark-back){cursor:default}.mark-back{cursor:pointer}.mark{object-fit:contain;filter:drop-shadow(0 8px 15px #000);width:90px;height:90px}.mark-shell:hover{filter:hue-rotate(150deg)saturate(1.7)drop-shadow(0 12px 22px #000)}.mark-shell:hover .mark{animation:1.35s ease-in-out infinite mark-breathe}.mascot-message{min-width:max-content;color:var(--black);background:var(--white);letter-spacing:-.01em;opacity:0;visibility:hidden;transform-origin:0 100%;pointer-events:none;border-radius:14px 14px 14px 4px;padding:11px 15px;font-size:17px;font-weight:500;transition:opacity .2s,transform .35s cubic-bezier(.16,1,.3,1),visibility 0s linear .35s;position:absolute;top:8px;left:calc(100% + 13px);transform:translate(-8px,5px)scale(.92);box-shadow:0 10px 30px #0007}.mascot-message.visible{opacity:1;visibility:visible;transition:opacity .2s,transform .35s cubic-bezier(.16,1,.3,1),visibility;transform:none}.view-switch{align-items:center;gap:19px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.view-switch button{color:#777;letter-spacing:.035em;white-space:nowrap;background:0 0;padding:14px 0;font-size:21px}.view-switch button:first-child{letter-spacing:.075em}.view-switch>span{font-size:24px;font-weight:800;line-height:1}.view-switch button.active{color:var(--white)}.work-field{--mx:0px;--my:0px;transform:translate3d(var(--mx),var(--my),0);perspective:1100px;transform-style:preserve-3d;transition:transform .75s cubic-bezier(.2,.7,.2,1);position:absolute;inset:0}.work-card{--sx:0px;--sy:0px;--ss:.8;--sr:0deg;--rx:0deg;--skew:0deg;--curve:20px;--blur:0px;--alpha:1;width:22vw;min-width:250px;transform:translate(-50%,-50%) translate3d(var(--sx),var(--sy),0) perspective(1050px) rotateY(var(--sr)) rotateX(var(--rx)) rotateZ(var(--skew)) scale(var(--ss));transform-origin:50%;filter:blur(var(--blur));opacity:var(--alpha);will-change:transform,filter;transition:filter .35s,opacity .35s;position:absolute;top:50%;left:50%}.card-button{width:100%;color:inherit;text-align:left;background:0 0;padding:0;display:block}.picture-wrap{aspect-ratio:1.78;background:#222;border-radius:28px;display:block;overflow:hidden;transform:translateZ(0);box-shadow:0 18px 38px #0008}.work-card img{object-fit:cover;width:100%;height:100%;transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .4s;display:block;transform:scale(1.04)}.work-card:hover{filter:blur()!important;opacity:1!important}.work-card:hover img{filter:saturate(1.2);transform:scale(1.08)}.work-info{display:none}.showreel-card{z-index:20;width:238px;height:238px;color:inherit;filter:drop-shadow(0 16px 30px #000b);background:0 0;padding:0;text-decoration:none;transition:transform .65s cubic-bezier(.16,1,.3,1);position:fixed;bottom:-90px;left:-84px;transform:rotate(-13deg)}.showreel-card:hover{transform:translate(34px,-29px)rotate(-8deg)scale(1.06)}.showreel-image{border-radius:10px;transition:transform .65s cubic-bezier(.16,1,.3,1),border-radius .4s;position:absolute;inset:38px;overflow:hidden;transform:rotate(13deg)}.showreel-card:hover .showreel-image{border-radius:50%;transform:rotate(8deg)scale(1.04)}.showreel-image img{object-fit:cover;filter:brightness(.76)saturate(.92);width:100%;height:100%;display:block}.orbit-copy{animation:18s linear infinite spin;position:absolute;inset:0}.orbit-copy span{--total:42;height:50%;color:var(--white);letter-spacing:.12em;transform-origin:50% 100%;transform:translate(-50%,-100%) rotate(calc(var(--char) * (360deg / var(--total))));font-size:17px;position:absolute;top:50%;left:50%}.sound-button{z-index:30;background:var(--white);width:52px;height:52px;color:var(--black);border-radius:50%;place-items:center;transition:transform .25s,background .25s;display:grid;position:fixed;bottom:30px;right:30px}.sound-button:hover{background:#dfff00;transform:scale(1.08)}.play-icon{border-top:7px solid #0000;border-bottom:7px solid #0000;border-left:11px solid var(--black);width:0;height:0;margin-left:4px}.equalizer{align-items:center;gap:3px;height:19px;display:flex}.equalizer i{background:var(--black);border-radius:4px;width:3px;height:7px;animation:.7s ease-in-out infinite alternate eq;display:block}.equalizer i:nth-child(2){animation-delay:-.36s}.equalizer i:nth-child(3){animation-delay:-.18s}.equalizer i:nth-child(4){animation-delay:-.52s}.portfolio-list{height:100svh;overflow-y:auto}.portfolio-list .work-field{flex-direction:column;align-items:center;width:min(960px,100vw - 140px);margin:0 auto;padding:145px 0 100px;display:flex;position:relative;inset:auto;overflow:visible;transform:none!important}.portfolio-list .work-card{width:100%;min-width:0;animation:list-row-in .65s calc(var(--i) * 45ms) both;transition:opacity .3s;position:relative;inset:auto;transform:none}.portfolio-list .work-field:hover .work-card:not(:hover){opacity:.38}.portfolio-list .card-button{justify-content:center;align-items:center;min-height:84px;display:flex;position:relative;overflow:visible}.portfolio-list .picture-wrap{z-index:1;aspect-ratio:1.72;opacity:0;pointer-events:none;border-radius:18px;width:300px;transition:opacity .3s,transform .5s cubic-bezier(.16,1,.3,1);position:absolute;top:50%;left:50%;transform:translate(-50%,-70%)scale(.88)}.portfolio-list .work-card:hover .picture-wrap,.portfolio-list .work-card:focus-within .picture-wrap{opacity:1;transform:translate(-50%,-76%)scale(1)}.portfolio-list .work-card img{transform:none}.portfolio-list .work-info{z-index:2;text-align:center;margin:0;display:block;position:relative}.portfolio-list .work-info>span{display:block}.portfolio-list .work-info strong{color:var(--white);letter-spacing:-.045em;font-size:clamp(42px,4.2vw,60px);font-weight:500;line-height:1;display:block}.portfolio-list .work-info small,.portfolio-list .work-info b{display:none}.portfolio-animation{height:100svh;overflow-y:auto}.animation-view{z-index:2;grid-template-columns:repeat(2,minmax(0,1fr));align-content:center;gap:28px;width:min(1060px,100vw - 180px);min-height:100svh;margin:0 auto;padding:126px 0 86px;display:grid;position:relative}.animation-study{min-width:0}.animation-study header{text-transform:uppercase;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:12px;display:flex}.animation-study h2{letter-spacing:.045em;margin:0;font-size:clamp(17px,1.55vw,23px);font-weight:600}.animation-study header span{color:#777;letter-spacing:.11em;white-space:nowrap;font-size:10px}.animation-stage{aspect-ratio:1512/982;background:#111;border:1px solid #ffffff35;border-radius:20px;position:relative;overflow:hidden;transform:translateZ(0);box-shadow:0 18px 45px #0007}.animation-stage:after{content:"";z-index:8;opacity:0;pointer-events:none;background:linear-gradient(90deg,#0000,#fff 20% 80%,#0000);height:3px;position:absolute;top:-8%;left:-12%;right:-12%;box-shadow:0 0 18px #fff8}.animation-stage img{object-fit:cover;opacity:0;clip-path:inset(100% 0 0);filter:blur(7px)saturate(1.18);will-change:opacity,transform,clip-path,filter;width:100%;height:100%;position:absolute;inset:0;transform:translateY(12%)scale(1.075)}.animation-study-three .animation-stage img{animation:6s cubic-bezier(.16,1,.3,1) -.5s infinite paused home-motion-three}.animation-study-three .animation-stage img:nth-child(2){animation-delay:-2.5s}.animation-study-three .animation-stage img:nth-child(3){animation-delay:-4.5s}.animation-study-four .animation-stage img{animation:8s cubic-bezier(.16,1,.3,1) -.4s infinite paused home-motion-four}.animation-study-four .animation-stage img:nth-child(2){animation-delay:-2.4s}.animation-study-four .animation-stage img:nth-child(3){animation-delay:-4.4s}.animation-study-four .animation-stage img:nth-child(4){animation-delay:-6.4s}.animation-study:hover .animation-stage img,.animation-study:focus-within .animation-stage img{animation-play-state:running}.animation-study:hover .animation-stage:after,.animation-study:focus-within .animation-stage:after{animation:2s cubic-bezier(.16,1,.3,1) infinite motion-scan}.menu-panel{z-index:60;color:var(--black);opacity:0;visibility:hidden;pointer-events:none;background:#00000080;transition:opacity .45s,visibility 0s linear .95s;position:fixed;inset:0}.menu-panel.open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .45s,visibility}.menu-sheet{background:var(--white);transform-origin:100%;border-radius:16px;flex-direction:column;width:min(32.315vw,465px);min-width:420px;height:calc(100svh - 60px);padding:20px 20px 20px 45px;transition:transform .95s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;top:30px;right:30px;overflow:hidden;transform:translate(calc(100% + 45px))scaleX(.72)}.menu-panel.open .menu-sheet{transform:none}.close-control{align-self:flex-end;align-items:center;gap:12px;font-size:18px;font-weight:500;display:flex}.close-button{background:var(--black);width:48px;height:48px;color:var(--white);border-radius:50%;padding:0;transition:transform .25s;position:relative}.close-button:hover{transform:rotate(8deg)}.close-button i{background:currentColor;width:16px;height:1px;position:absolute;top:23px;left:16px;transform:rotate(45deg)}.close-button i:last-child{transform:rotate(-45deg)}.menu-panel nav{flex-direction:column;align-items:flex-start;gap:15px;margin-top:clamp(80px,14vh,130px);display:flex}.menu-panel nav a,.menu-panel nav button{color:var(--black);letter-spacing:-.05em;background:0 0;padding:0;font-size:clamp(58px,5.55vw,80px);font-weight:500;line-height:1;text-decoration:none;transition:padding-left .45s cubic-bezier(.16,1,.3,1),opacity .3s,transform .45s cubic-bezier(.16,1,.3,1);position:relative}.menu-panel nav a:before,.menu-panel nav button:before{content:"";opacity:0;background:currentColor;border-radius:50%;width:.18em;height:.18em;transition:opacity .25s,transform .45s cubic-bezier(.16,1,.3,1);position:absolute;top:50%;left:0;transform:translate(-1em,-50%)scale(.25)}.menu-panel nav a:hover,.menu-panel nav button:hover,.menu-panel nav a:focus-visible,.menu-panel nav button:focus-visible{padding-left:.42em;transform:translate(.05em)}.menu-panel nav a:hover:before,.menu-panel nav button:hover:before,.menu-panel nav a:focus-visible:before,.menu-panel nav button:focus-visible:before{opacity:1;transform:translateY(-50%)scale(1)}.menu-panel nav:hover>:not(:hover){opacity:.32}.menu-panel nav .mobile-visual-link{display:none}.about-view{z-index:2;place-items:center;padding:118px clamp(28px,7vw,124px) 56px;display:grid;position:absolute;inset:0;overflow:auto}.about-profile{grid-template-columns:minmax(240px,360px) minmax(430px,720px);align-items:center;gap:clamp(42px,7vw,110px);width:min(1190px,100%);animation:.9s cubic-bezier(.16,1,.3,1) both about-in;display:grid;position:relative;top:-18px;left:28px}.about-visual{align-self:center}.about-photo-frame{aspect-ratio:4/5;background:#ffffff0d;border:1px solid #ffffff73;width:min(100%,330px);margin-inline:auto;padding:8px;position:relative;transform:rotate(-1.5deg);box-shadow:-22px 22px #75c9c855,22px -18px #d9a1ff2e}.about-photo-frame:after{content:"";z-index:-1;background:linear-gradient(115deg,#48bfcb80,#987ee870);border:1px solid #ffffff24;height:36%;position:absolute;bottom:-25px;left:-34px;right:20%;transform:rotate(-4deg)}.about-photo-frame img{object-fit:contain;object-position:center bottom;filter:saturate(.82)contrast(1.03);width:100%;height:100%;display:block}.software-row{flex-wrap:wrap;justify-content:center;gap:9px;margin-top:36px;display:flex}.software-row span{color:#f1f1f1;letter-spacing:-.03em;background:#181818d9;border:1px solid #ffffff2e;border-radius:10px;place-items:center;width:47px;height:47px;font-size:13px;font-weight:700;display:grid;box-shadow:0 9px 22px #0005,inset 0 1px #ffffff19}.software-row span:first-child{color:#b79cff}.software-row span:nth-child(2){color:#c3a7ff}.software-row span:nth-child(3){color:#66bfff}.software-row span:nth-child(4){color:#ffae51}.software-row span:nth-child(5){color:#ff9b54}.software-row span:nth-child(6){color:#d6a8ff}.about-details{flex-direction:column;gap:30px;display:flex}.about-intro{width:100%;max-width:none}.about-kicker{font-family:Haettenschweiler,Arial Narrow,Helvetica Neue,sans-serif;font-stretch:75%;color:#f5f5f5!important;letter-spacing:.012em!important;margin:0 0 14px!important;font-size:clamp(42px,4.8vw,76px)!important;font-weight:400!important;line-height:.88!important}.about-intro h1{color:#f2f2f2;letter-spacing:-.065em;margin:0;font-size:clamp(34px,4vw,62px);font-weight:520;line-height:.9}.about-status{color:#111;text-align:center;background:#ededed;justify-content:center;width:min(430px,100%);margin:24px 0 21px;padding:9px 12px;font-size:13px;display:flex}.about-intro>p:last-child{color:#a4a4a4;width:100%;max-width:none;margin:0;font-size:clamp(14px,1.18vw,17px);line-height:1.5}.education-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.education-grid article{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:center;will-change:transform;background:#ffffff13;border:1px solid #ffffff2e;border-radius:28px;flex-direction:column;justify-content:center;align-items:center;min-height:142px;padding:18px 24px;transition:background .3s,border-color .3s,box-shadow .3s;animation:7.4s ease-in-out infinite alternate skill-drift-a;display:flex;box-shadow:inset 0 1px 1px #fff1,0 8px 20px #0003}.education-grid article:nth-child(2){animation-name:skill-drift-b;animation-duration:8.1s;animation-delay:-2.4s}.education-grid article:nth-child(3){animation-name:skill-drift-c;animation-duration:8.8s;animation-delay:-4.1s}.education-grid article:hover{background:#ffffff21;border-color:#ffffff45;box-shadow:inset 0 1px 1px #fff2,0 10px 24px #0002}.education-grid strong,.education-grid span,.education-grid small{display:block}.education-grid strong{color:#f5f5f5;letter-spacing:-.04em;font-size:clamp(20px,1.9vw,31px);font-weight:500;line-height:1}.education-grid span{color:#dedede;margin-top:10px;font-size:14px;line-height:1.15}.education-grid small{color:#777;margin-top:2px;font-size:11px;line-height:1.15}.skills-view{z-index:2;text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:120px clamp(24px,8vw,150px);animation:.9s cubic-bezier(.16,1,.3,1) both about-in;display:flex;position:absolute;inset:0}.skills-view h1{letter-spacing:-.07em;margin:0 0 34px;font-size:clamp(62px,8vw,126px);font-weight:500;line-height:.82}.skills-list{flex-wrap:wrap;justify-content:center;gap:14px;width:min(940px,82vw);display:flex}.skills-list span{color:#d8d8d8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);will-change:transform;background:#ffffff13;border:1px solid #ffffff2e;border-radius:999px;padding:15px 22px;font-size:clamp(15px,1.35vw,20px);animation:6.8s ease-in-out infinite alternate skill-drift-a;box-shadow:inset 0 1px 1px #fff1,0 8px 20px #0003}.skills-list span:nth-child(3n+2){animation-name:skill-drift-b;animation-duration:7.7s;animation-delay:-2.4s}.skills-list span:nth-child(3n){animation-name:skill-drift-c;animation-duration:8.4s;animation-delay:-4.1s}.skills-list span:nth-child(2n){color:#f1f1f1;background:#ffffff21;border-color:#ffffff45;box-shadow:inset 0 1px 1px #fff2,0 8px 22px #0002}.menu-footer{flex-direction:column;align-items:flex-start;gap:24px;margin-top:auto;font-size:18px;display:flex}.menu-footer>a{color:inherit;text-underline-offset:4px}.social-links{gap:10px;display:flex}.social-links a{width:48px;height:48px;color:var(--white);background:var(--black);border-radius:50%;place-items:center;font-size:14px;font-weight:600;text-decoration:none;display:grid}.social-links:hover a:not(:hover){color:#8b8b8b;background:#dedede}.social-links a{transition:color .3s,background .3s,transform .3s}.social-links a:hover{transform:translateY(-4px)}.bilibili-icon{object-fit:contain;filter:grayscale()brightness(0)invert();width:27px;height:24px;transition:filter .3s;display:block}.social-links a:hover .bilibili-icon{filter:grayscale()brightness(0)}.project-detail{z-index:200;overscroll-behavior:contain;padding:72px 0 100px;animation:.5s cubic-bezier(.2,.8,.2,1) both detail-in;position:fixed;inset:0;overflow:hidden auto}.project-detail.detail-dark{background:#080808}.project-detail.detail-light{background:#f2f2f0}.detail-pages{width:min(72vw,1180px);margin:0 auto;overflow:hidden;box-shadow:0 22px 70px #0003}.detail-pages img{object-fit:contain;object-position:top center;width:100%;height:auto;margin:0;display:block}.detail-close{z-index:20;color:var(--black);background:var(--white);border-radius:999px;padding:14px 18px;transition:transform .25s,background .25s;position:fixed;top:30px;right:30px;box-shadow:0 8px 28px #0007}.detail-close:hover{background:#dfff00;transform:scale(1.06)}.detail-close span{margin-left:8px}.showreel-overlay{z-index:100;background:#000;animation:.5s cubic-bezier(.2,.8,.2,1) both detail-in;position:fixed;inset:0}.showreel-overlay iframe{border:0;width:100%;height:100%;display:block}.sound-button.visual-sound{z-index:130;color:#f2f2f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#17191fbd;border:1px solid #ffffff45;box-shadow:0 0 24px #7592ff4a,inset 0 1px 1px #fff3}.sound-button.visual-sound:hover{background:#303644}.sound-button.visual-sound .play-icon{border-left-color:#f2f2f2}.sound-button.visual-sound .equalizer i{background:#f2f2f2}body.detail-open{overflow:hidden}@keyframes orb-float{50%{transform:translateY(7px)rotate(4deg)}}@keyframes hello-orb{0%{background:var(--white);transform:translateY(0)scale(1)}34%{transform:translateY(-13px)scale(.92,1.08)}55%{transform:translateY(5px)scale(1.16,.82)}72%{background:var(--white);transform:translateY(-4px)scale(1.12)}to{background:0 0;transform:translateY(0)scale(2.35)}}@keyframes smiley-dissolve{0%{opacity:0;transform:translate(-50%,-50%)scale(.36)}44%{opacity:.68}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes hey-away{to{opacity:0;transform:translateY(8px)}}@keyframes hello-away{to{opacity:0;visibility:hidden;transform:scale(1.025)}}@keyframes landing-in{to{opacity:1}}@keyframes landing-item{to{opacity:1;filter:blur();transform:none}}@keyframes sphere-reveal{0%,54%{opacity:0;clip-path:ellipse(18% 8%)}76%{opacity:.55;clip-path:ellipse(48% 48%)}90%,to{opacity:1;clip-path:ellipse(50% 50%)}}@keyframes sphere-mask{0%{opacity:1;border-radius:999px;width:32%;height:14%;transform:translate(-50%,-50%)}12%{width:40%;height:12%;transform:translate(-50%,-145%)}24%{width:34%;height:17%;transform:translate(-50%,-50%)}37%{width:45%;height:12%;transform:translate(-50%,-170%)}50%{border-radius:999px;width:36%;height:18%;transform:translate(-50%,-50%)}76%{opacity:1;border-radius:50%;width:100%;height:100%;transform:translate(-50%,-50%)}90%,to{opacity:0;border-radius:50%;width:100%;height:100%;transform:translate(-50%,-50%)}}@keyframes eq{0%{height:5px}to{height:19px}}@keyframes list-row-in{0%{opacity:0;filter:blur(8px);transform:translateY(20px)}to{opacity:1;filter:none;transform:none}}@keyframes float{50%{transform:translateY(15px)rotate(8deg)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes card-in{0%{opacity:0;filter:blur(14px);transform:translate(-50%,-50%) rotate(var(--r)) scale(.65)}}@keyframes detail-in{0%{opacity:0}}@keyframes about-in{0%{opacity:0;filter:blur(10px);transform:translateY(24px)}}@keyframes mark-breathe{0%,to{transform:translateY(0)scale(1)}35%{transform:translateY(-12px)scale(1.06)}70%{transform:translateY(7px)scale(.97)}}@keyframes skill-drift-a{0%{transform:translate(-4px,4px)rotate(-1.5deg)}to{transform:translate(6px,-6px)rotate(1.5deg)}}@keyframes skill-drift-b{0%{transform:translate(5px,-3px)rotate(1deg)}to{transform:translate(-6px,7px)rotate(-1.2deg)}}@keyframes skill-drift-c{0%{transform:translate(-3px,-6px)rotate(-1deg)}to{transform:translate(7px,4px)rotate(1.3deg)}}@keyframes home-motion-three{0%{opacity:0;clip-path:inset(100% 0 0);filter:blur(7px)saturate(1.18);transform:translateY(12%)scale(1.075)}9%,27%{opacity:1;clip-path:inset(0);filter:none;transform:none}33%{opacity:0;clip-path:inset(0 0 100%);filter:blur(5px)saturate(1.1);transform:translateY(-12%)scale(.96)}34%,to{opacity:0;clip-path:inset(100% 0 0);filter:blur(7px);transform:translateY(12%)scale(1.075)}}@keyframes home-motion-four{0%{opacity:0;clip-path:inset(100% 0 0);filter:blur(7px)saturate(1.18);transform:translateY(12%)scale(1.075)}7%,20%{opacity:1;clip-path:inset(0);filter:none;transform:none}25%{opacity:0;clip-path:inset(0 0 100%);filter:blur(5px)saturate(1.1);transform:translateY(-12%)scale(.96)}26%,to{opacity:0;clip-path:inset(100% 0 0);filter:blur(7px);transform:translateY(12%)scale(1.075)}}@keyframes motion-scan{0%{opacity:0;top:-8%}12%{opacity:.65}70%{opacity:.22}to{opacity:0;top:108%}}@media (width<=800px){.topbar{align-items:center;inset:15px 15px auto}.mark-area,.mark,.mark-shell{width:74px;height:74px}.mascot-message{white-space:nowrap;border-radius:10px 10px 10px 3px;width:max-content;min-width:0;max-width:min(220px,100vw - 105px);padding:8px 11px;font-size:12px;line-height:1.15;top:9px;left:calc(100% + 7px)}.about-view{place-items:start center;padding:112px 18px 56px}.about-profile{grid-template-columns:1fr;align-items:start;gap:18px;width:min(520px,100%);top:-8px;left:0}.about-visual{justify-self:center;place-items:center;width:100%;display:grid}.about-photo-frame{aspect-ratio:4/5;background:#ffffff0d;border:1px solid #ffffff73;width:min(42vw,168px);margin:0 auto;padding:6px;transform:rotate(-1deg);box-shadow:-10px 10px #75c9c844,10px -8px #d9a1ff24}.about-photo-frame:after{height:30%;display:block;bottom:-11px;left:-13px;right:24%}.about-photo-frame img{object-position:left bottom;height:calc(100% - 6px);margin-top:6px}.about-details{gap:22px}.about-intro h1{font-size:clamp(34px,10vw,48px)}.about-kicker{text-align:center}.about-status{letter-spacing:.015em;white-space:nowrap;width:100%;padding:10px 7px;font-size:12px;font-weight:500}.education-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.education-grid article{border-radius:18px;min-height:96px;padding:10px 4px}.education-grid strong{letter-spacing:-.02em;font-size:15px}.education-grid span{margin-top:7px;font-size:9px}.education-grid small{margin-top:2px;font-size:7.5px}.mark-shell:hover{filter:none}.mark-shell:hover .mark{animation:none}.mark-shell:active{filter:brightness(1.08)drop-shadow(0 9px 16px #000)}.skills-view{padding:115px 18px 90px}.skills-view h1{margin-bottom:25px;font-size:64px}.skills-list{gap:8px;width:100%}.skills-list span{padding:10px 14px;font-size:14px}.menu-button{font-size:15px}.menu-button:hover{background:var(--white);transform:none}.view-switch{gap:10px;top:62px}.view-switch button{font-size:17px}.view-switch>span{font-size:22px}.work-card{width:62vw;min-width:210px}.showreel-card{display:none}.portfolio-list .work-field{width:calc(100vw - 32px);padding:145px 0 90px}.portfolio-list .card-button{height:66px;min-height:66px}.portfolio-list .work-info strong{letter-spacing:.01em;white-space:nowrap;font-size:clamp(27px,9vw,40px);line-height:1}.portfolio-list .work-field:hover .work-card:not(:hover){opacity:1}.portfolio-list .work-card:hover .picture-wrap,.portfolio-list .work-card:focus-within .picture-wrap{opacity:0;transform:translate(-50%,-70%)scale(.88)}.portfolio-list .work-card:hover img{filter:none;transform:none}.animation-view{grid-template-columns:1fr;align-content:start;gap:26px;width:min(480px,100vw - 42px);padding:118px 0 84px}.animation-stage{border-radius:15px}.animation-study header{margin-bottom:9px}.animation-study h2{font-size:16px}.animation-study header span{font-size:8px}.spiral-hover-title{display:none}.sound-button:hover{background:var(--white);transform:none}.sound-button.visual-sound:hover{background:#17191fbd}.menu-sheet{width:calc(100vw - 40px);min-width:0;height:calc(100svh - 40px);top:20px;right:20px}.menu-panel nav .mobile-visual-link{display:block}.landing-sphere{width:78px;height:78px;margin-bottom:15px}.detail-close{padding:12px 15px;top:18px;right:18px}.project-detail{padding:64px 0 72px}.detail-pages{width:92vw}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@view-transition{navigation:auto}::view-transition-group(site-mascot){animation-duration:.72s;animation-timing-function:cubic-bezier(.16,1,.3,1)}
