@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@200;300;400;500;600;700;900&display=swap";.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}@font-face{font-family:"8bitoperator JVE";src:url(/assets/8bitoperator_jve.ttf)format("truetype");font-display:block;font-style:normal;font-weight:400}@font-face{font-family:Mars Needs Cunnilingus;src:url(/assets/Mars_Needs_Cunnilingus.ttf)format("truetype");font-display:block;font-style:normal;font-weight:400}@font-face{font-family:Hachicro;src:url(/assets/hachicro.ttf)format("truetype");font-display:block;font-style:normal;font-weight:400}:root{--bg-color:#050505;--text-primary:#f3f4f6;--text-secondary:#9ca3af;--accent-color:#8b5cf6;--accent-color-hover:#a78bfa;--card-bg:#ffffff03;--card-border:#ffffff0d;--card-hover-border:#8b5cf64d;--blur:blur(16px);--transition:all .4s cubic-bezier(.4, 0, .2, 1)}html{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:#8b5cf659 transparent;overflow-x:hidden}html::-webkit-scrollbar{width:6px}html::-webkit-scrollbar-track{background:0 0}html::-webkit-scrollbar-thumb{background:#8b5cf659;border-radius:3px}html::-webkit-scrollbar-thumb:hover{background:#8b5cf68c}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-primary);text-shadow:0 0 2px #fff6,0 0 10px #fff3,0 0 20px #ffffff1a;font-family:Inter,Noto Serif JP,sans-serif;line-height:1.6;overflow-x:hidden}a{color:var(--accent-color);transition:var(--transition);text-decoration:none}a:hover{color:var(--accent-color-hover)}ul{list-style:none}h1,h2,h3,h4{letter-spacing:-.02em;font-weight:600;line-height:1.2}header{z-index:1000;background:0 0;justify-content:space-between;align-items:center;width:100%;max-width:1200px;padding:1.2rem 2rem;transition:top .4s cubic-bezier(.34,1.56,.64,1),padding .3s;display:flex;position:fixed;top:20px;left:50%;transform:translate(-50%)}header.scrolled{padding:.8rem 2rem;top:0}header img{object-fit:cover;border:2px solid var(--card-border);width:48px;height:48px;transition:var(--transition);filter:drop-shadow(0 0 10px #8b5cf666);border-radius:50%;box-shadow:inset 0 2px 5px #ffffff4d}header img:hover{border-color:var(--accent-color);transform:rotate(10deg)}header nav ul{isolation:isolate;background:var(--card-bg);backdrop-filter:var(--blur);border:1px solid var(--card-border);border-radius:16px;gap:.5rem;padding:.7rem 1.2rem;display:flex;position:relative;transform:translateZ(0);box-shadow:inset 0 3px 4px -2px #fff9}header nav ul li a{color:var(--text-secondary);transition:var(--transition);border:1px solid #0000;border-radius:10px;padding:.5rem 1rem;font-size:.95rem;font-weight:500}header nav ul li a:hover,header nav ul li a.active{color:var(--text-primary);background:var(--card-bg);border:1px solid var(--card-border)}#getintouch{background:linear-gradient(135deg, var(--accent-color), #6d28d9);color:#fff;transition:var(--transition);border:1px solid #ffffff1a;border-radius:30px;padding:.6rem 1.4rem;font-size:.9rem;font-weight:600;box-shadow:0 0 15px #8b5cf666,inset 0 2px 4px #fff6}#getintouch:hover{color:#fff;box-shadow:inset 0 2px 6px #fff9}#getintouch:active i{transform:translate(5px)}main{max-width:1200px;margin:0 auto;padding:0 2rem}#hero-section{flex-direction:column;justify-content:center;align-items:center;min-height:60vh;display:flex;position:relative;overflow:hidden}#hero-section:after{content:"";z-index:-1;pointer-events:none;opacity:.6;background-image:linear-gradient(#ffffff0d 1px,#0000 1px),linear-gradient(90deg,#ffffff0d 1px,#0000 1px);background-size:60px 60px;width:100%;height:100%;position:absolute;top:0;left:0;mask-image:radial-gradient(circle,#000 0%,#0000 60%)}.hero-content{text-align:left;flex-direction:column;align-items:flex-start;max-width:fit-content;display:flex}#hero-section:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(circle,#8b5cf61f 0%,#0000 70%);border-radius:50%;width:600px;height:600px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#hero-section-projects{color:var(--accent-color);letter-spacing:.5px;background:#8b5cf61a;border:1px solid #8b5cf633;border-radius:20px;margin-bottom:1.5rem;padding:.3rem 1.2rem;font-size:.8rem;display:inline-block;box-shadow:inset 0 2px 5px #fff3}#hero-section h1{background:linear-gradient(#fff 0%,#a0a0a0 100%);-webkit-text-fill-color:transparent;color:#0000;background-clip:text;margin-bottom:.5rem;font-size:3rem;font-weight:900;line-height:1.1}#hero-section-name{background:linear-gradient(135deg,#d8b4fe 0%,#8b5cf6 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 20px #8b5cf666)drop-shadow(0 0 40px #8b5cf633);background-clip:text;transition:filter .4s;display:inline-block}#hero-section-name:hover{filter:drop-shadow(0 0 25px #8b5cf6b3)drop-shadow(0 0 50px #8b5cf64d)}#hero-section p{color:var(--text-secondary);max-width:600px;margin-bottom:3rem;font-size:.8rem;line-height:1.8}#hero-section-bottom{justify-content:flex-start;align-items:center;gap:2.5rem;display:flex}#hero-section-about{background:var(--card-bg);border:1px solid var(--card-border);color:var(--text-primary);border-radius:30px;align-items:center;gap:.5rem;padding:.6rem 1.3rem;font-size:.8rem;font-weight:500;display:flex;box-shadow:0 0 15px #ffffff0d,inset 0 2px 4px -1px #fff3}#hero-section-about:hover{background:#ffffff14;border-color:#fff3;box-shadow:0 0 25px #ffffff26,inset 0 2px 8px -1px #fff6}#hero-section-about:active i{transform:translate(5px)}#hero-section-bottom ul{gap:1.2rem;display:flex}#hero-section-bottom ul li a{color:var(--text-secondary);background:var(--card-bg);border:1px solid var(--card-border);width:40px;height:40px;transition:var(--transition);border-radius:50%;justify-content:center;align-items:center;font-size:1.6rem;display:flex;overflow:hidden;box-shadow:0 0 15px #ffffff0d,inset 0 2px 4px -1px #ffffff26}#hero-section-bottom ul li a:hover{color:#fff;border-color:var(--accent-color);background:#8b5cf633;box-shadow:inset 0 2px 6px #ffffff4d}#hero-section-bottom ul li i{font-size:1.2rem}#hero-section-bottom ul li a .social-img{object-fit:cover;filter:drop-shadow(0 0 2px #fff6);border-radius:50%;width:100%;height:100%}#about{grid-gap:1.5rem;grid-template-rows:auto auto;grid-template-columns:repeat(3,1fr);margin-bottom:8rem;display:grid;position:relative}#about-top-right{grid-area:1/1/auto/3}#about-top-left{grid-area:1/3/auto/4}#about-bottom-left{grid-area:2/1/auto/2}#about-bottom-right{grid-area:2/2/auto/4}#about:after{content:"";z-index:-1;pointer-events:none;background:radial-gradient(circle,#8b5cf614 0%,#0000 70%);border-radius:50%;width:600px;height:600px;position:absolute;bottom:-10%;right:-10%}#about>div{border:1px solid var(--card-border);transition:var(--transition);-webkit-backdrop-filter:var(--blur);border-radius:32px;padding:1.5rem;position:relative;overflow:hidden;box-shadow:0 15px 40px #0009,inset 0 0 20px #ffffff0d,inset 0 1px 3px #fff3}#about>div h3{color:var(--text-primary);align-items:center;gap:.8rem;margin-bottom:2rem;font-size:1rem;font-weight:100;display:flex}#about>div h3 i{color:var(--accent-color);border-radius:12px;padding:.8rem;font-size:1rem}#about-top-left{flex-direction:column;display:flex}#about-top-left ul{flex-wrap:wrap;flex-grow:1;justify-content:center;align-items:center;gap:1.5rem;display:flex}#about-top-left ul li{background:#0000004d;border:1px solid #ffffff1a;border-radius:16px;justify-content:center;align-items:center;width:60px;height:60px;display:flex;overflow:hidden;box-shadow:0 0 10px #ffffff0d,inset 0 0 10px #ffffff26,inset 0 2px 4px #ffffff4d}.stack-icon{justify-content:center;align-items:center;width:44px;height:44px;display:flex;position:relative}.stack-icon img{z-index:1;object-fit:contain;width:32px;height:32px;position:relative}.stack-icon .stack-icon-glow{z-index:0;filter:blur(12px)brightness(2)saturate(1.6);opacity:.6;pointer-events:none;position:absolute;inset:-8px}#about-top-right ul{flex-wrap:wrap;gap:1.5rem;display:flex}#about-top-right ul li{background:#0000004d;border-radius:16px;align-items:center;width:64px;height:64px;display:flex;overflow:hidden;box-shadow:0 0 15px #8b5cf61a,inset 0 3px 8px -2px #fff3}#about-top-right-fortnite{cursor:pointer}#about-top-right-undertale:hover{cursor:url(/assets/images/undertale/red_soul.png) 8 8,url(/assets/images/undertale/red_soul.svg) 8 8,pointer}#about-top-right-undertale.undertale-soul-sequence-active,html.undertale-battle-active,html.undertale-battle-active *{cursor:none!important}.undertale-battle-overlay{z-index:10000;background:#000;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.undertale-battle-overlay,.undertale-battle-overlay *{user-select:none}.undertale-battle-overlay[hidden]{display:none}.undertale-battle-stage{aspect-ratio:4/3;width:min(100vw,133.333vh,640px);position:relative}.undertale-battle-box{box-sizing:border-box;background:#000;border:5px solid #fff;width:89.0625%;height:28.125%;transition:top .28s cubic-bezier(.16,1,.3,1),left .28s cubic-bezier(.16,1,.3,1),width .28s cubic-bezier(.16,1,.3,1),height .28s cubic-bezier(.16,1,.3,1),transform .28s cubic-bezier(.16,1,.3,1);position:absolute;top:35.9375%;left:5.46875%}.undertale-battle-enemy-character{z-index:1;pointer-events:none;opacity:0;transform-origin:50% 100%;width:120px;height:180px;transition:opacity .18s,transform .18s cubic-bezier(.16,1,.3,1);position:absolute;bottom:calc(100% + 6px);left:50%;overflow:visible;transform:translate(-50%,2px)}.undertale-battle-enemy-character[hidden]{display:none}.undertale-battle-enemy-character-visible{opacity:1;transform:translate(-50%)}.undertale-battle-box[data-state=enemyTurnTwoBase] .undertale-battle-enemy-character{width:104px;height:156px;bottom:calc(100% - 2px)}.undertale-battle-enemy-character-part{z-index:1;object-fit:fill;pointer-events:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block;position:absolute;inset:0}.undertale-battle-enemy-character-leg{z-index:1;transform-origin:50% 100%;animation:1.6s ease-in-out infinite undertaleBattleEnemyLegIdle}.undertale-battle-enemy-character-body{z-index:2;transform-origin:50% 76%;animation:1.6s ease-in-out infinite undertaleBattleEnemyBodyIdle}.undertale-battle-enemy-character-head{z-index:3;transform-origin:50% 70%;animation:1.6s ease-in-out infinite undertaleBattleEnemyHeadIdle}.undertale-battle-enemy-character-attacking .undertale-battle-enemy-character-leg{animation-name:undertaleBattleEnemyLegAttack;animation-duration:.82s}.undertale-battle-enemy-character-attacking .undertale-battle-enemy-character-body{animation-name:undertaleBattleEnemyBodyAttack;animation-duration:.76s}.undertale-battle-enemy-character-attacking .undertale-battle-enemy-character-head{animation-name:undertaleBattleEnemyHeadAttack;animation-duration:.62s}@keyframes undertaleBattleEnemyLegIdle{0%,to{transform:translate(0,0)rotate(0)}50%{transform:translateY(.7px)rotate(-.2deg)}}@keyframes undertaleBattleEnemyBodyIdle{0%,to{transform:translate(0,0)}50%{transform:translate(.6px,1.7px)}}@keyframes undertaleBattleEnemyHeadIdle{0%,to{transform:translate(0,0)rotate(0)}50%{transform:translate(1px,2.5px)rotate(.35deg)}}@keyframes undertaleBattleEnemyLegAttack{0%,to{transform:translate(0,0)rotate(0)}50%{transform:translate(-.8px,1.5px)rotate(-.45deg)}}@keyframes undertaleBattleEnemyBodyAttack{0%,to{transform:translate(0,0)}35%{transform:translate(1.4px,2.4px)}70%{transform:translate(-1px,.8px)}}@keyframes undertaleBattleEnemyHeadAttack{0%,to{transform:translate(0,0)rotate(0)}35%{transform:translate(2.4px,3.6px)rotate(.8deg)}70%{transform:translate(-1.6px,.6px)rotate(-.55deg)}}.undertale-battle-box[data-gravity-cue]{animation:.18s steps(2,end) infinite undertaleGravityCue}.undertale-battle-box[data-gravity-cue=down]{box-shadow:inset 0 -10px #6bd7ffdb}.undertale-battle-box[data-gravity-cue=up]{box-shadow:inset 0 10px #6bd7ffdb}.undertale-battle-box[data-gravity-cue=left]{box-shadow:inset 10px 0 #6bd7ffdb}.undertale-battle-box[data-gravity-cue=right]{box-shadow:inset -10px 0 #6bd7ffdb}.undertale-battle-text{color:#fff;letter-spacing:0;white-space:pre-line;pointer-events:none;text-shadow:none;image-rendering:pixelated;margin:0;font-family:"8bitoperator JVE",monospace;font-size:26px;font-weight:400;line-height:30px;position:absolute;top:8%;left:2%;right:2%}.undertale-battle-submenu,.undertale-battle-fight-meter{color:#fff;image-rendering:pixelated;font-family:"8bitoperator JVE",monospace;font-size:26px;font-weight:400;line-height:30px;position:absolute;inset:8% 2% 2%}.undertale-battle-fight-meter{left:0;right:0}.undertale-battle-enemy-attack-field{z-index:4;image-rendering:pixelated;background:#000;position:absolute;inset:0;overflow:hidden}.undertale-battle-enemy-attack-field[hidden]{display:none}.undertale-battle-enemy-gaster-layer{z-index:6;pointer-events:none;image-rendering:pixelated;position:absolute;inset:0;overflow:visible}.undertale-battle-enemy-gaster-layer[hidden]{display:none}.undertale-enemy-platform{z-index:4;box-sizing:border-box;height:8px;image-rendering:pixelated;pointer-events:none;background:#fff;border-top:4px solid #00c853;display:block;position:absolute;transform:translate(-50%,-50%)}.undertale-enemy-platform[data-surface=bottom]{border-top:0;border-bottom:4px solid #00c853}.undertale-enemy-platform[data-surface=left]{border-top:0;border-left:4px solid #00c853}.undertale-enemy-platform[data-surface=right]{border-top:0;border-right:4px solid #00c853}.undertale-enemy-platform.undertale-turn-two-platform{background:#fff;border-color:#6bd7ff}.undertale-enemy-platform.undertale-turn-two-platform[data-surface=bottom]{border-bottom-color:#6bd7ff}.undertale-enemy-platform.undertale-turn-two-platform[data-surface=left]{border-left-color:#6bd7ff}.undertale-enemy-platform.undertale-turn-two-platform[data-surface=right]{border-right-color:#6bd7ff}.undertale-enemy-platform.undertale-turn-two-platform-landed{animation:.18s steps(2,end) undertaleTurnTwoPlatformLand}@keyframes undertaleTurnTwoPlatformLand{0%,to{filter:none}50%{filter:brightness(1.75)}}.undertale-enemy-attack-projectile{z-index:2;image-rendering:pixelated;pointer-events:none;transform:translate(-50%, -50%) rotate(var(--undertale-projectile-angle)) scale(var(--undertale-projectile-scale-x,1), var(--undertale-projectile-scale-y,1));transform-origin:50%;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;display:block;position:absolute}.undertale-enemy-attack-warning{z-index:1;image-rendering:pixelated;pointer-events:none;transform:translate(-50%, -50%) rotate(var(--undertale-warning-angle,0deg));background:#fff;animation:.18s steps(2,end) infinite undertaleEnemyAttackWarning;display:block;position:absolute;box-shadow:0 0 7px #fffffff2}.undertale-enemy-attack-warning-blue{background:#6bd7ff;box-shadow:0 0 7px #6bd7fff2}.undertale-enemy-attack-warning-orange{background:#ff9d4d;box-shadow:0 0 7px #ff9d4df2}.undertale-enemy-color-gate{z-index:3;opacity:.94}.undertale-enemy-color-gate-blue{background:#6bd7ff;box-shadow:0 0 8px #6bd7fff2}.undertale-enemy-color-gate-orange{background:#ff9d4d;box-shadow:0 0 8px #ff9d4df2}.undertale-enemy-neutral-bone{z-index:3}.undertale-enemy-shutter{z-index:3;background:#fff;box-shadow:0 0 8px #ffffffe0}.undertale-enemy-rotation-bar{z-index:3;background:#fff;box-shadow:0 0 6px #ffffffe0}.undertale-enemy-lock-warning,.undertale-enemy-rotation-warning{z-index:4;background:#fff;box-shadow:0 0 8px #fffffffa}.undertale-enemy-neutral-warning,.undertale-enemy-shutter-warning{background:#fff}.undertale-enemy-bone{z-index:3}.undertale-enemy-bone-blue{filter:brightness(0)saturate()invert(81%)sepia(72%)saturate(1814%)hue-rotate(165deg)brightness(104%)contrast(103%)}.undertale-enemy-bone-orange{filter:brightness(0)saturate()invert(70%)sepia(89%)saturate(1830%)hue-rotate(337deg)brightness(105%)contrast(103%)}.undertale-enemy-gaster{z-index:5;width:114px;height:88px;image-rendering:pixelated;pointer-events:none;transform:translate(-50%, -50%) rotate(var(--undertale-gaster-angle,0deg));transform-origin:50%;display:block;position:absolute}.undertale-enemy-turn-one-circle-gaster{width:57px;height:88px}.undertale-enemy-gaster-beam{z-index:2;background-color:#fff;background-position:0,0;background-repeat:no-repeat,repeat-x;background-size:32px 100%,16px 100%}.undertale-turn-three-gaster{z-index:7}.undertale-turn-three-beam{z-index:3}.undertale-battle-box[data-state^=turn3-]{will-change:top, left, width, height}.undertale-turn-three-whiteout{z-index:10004;opacity:0;pointer-events:none;background:#fff;display:block;position:absolute;inset:0}.undertale-turn-three-whiteout[hidden]{display:none}.undertale-turn-three-fight-target{z-index:10003;image-rendering:pixelated;opacity:0;pointer-events:none;transform-origin:50%;display:block;position:absolute;transform:translate(-50%,-50%)scale(.78)}.undertale-turn-three-fight-target[hidden]{display:none}.undertale-turn-three-fight-target-active{animation:.28s cubic-bezier(.16,1,.3,1) forwards undertaleTurnThreeFightTargetEnter}.undertale-turn-three-ui-break-target{animation:.36s steps(3,end) undertaleTurnThreeUiBreakShake}.undertale-turn-three-ui-break-hidden{opacity:0}.undertale-turn-three-ui-break-fragment{z-index:10003;color:#fff;font-family:Mars Needs Cunnilingus,monospace;font-size:inherit;line-height:inherit;image-rendering:pixelated;pointer-events:none;transform-origin:50%;animation:.36s steps(4,end) forwards undertaleTurnThreeUiBreakFragment;display:block;position:absolute}.undertale-turn-three-enemy-hit{animation:.16s steps(2,end) undertaleTurnThreeEnemyHit}.undertale-battle-status-name-text,.undertale-battle-status-level-text{vertical-align:top;display:inline-block}.undertale-battle-status-level-text{margin-left:.5em}@keyframes undertaleTurnThreeFightTargetEnter{0%{opacity:.7;transform:translate(-50%,-50%)scale(.78)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes undertaleTurnThreeUiBreakShake{0%,to{transform:translate(0,0)}25%{transform:translate(-2px,1px)rotate(-1deg)}50%{transform:translate(2px,-1px)rotate(1deg)}75%{transform:translate(-1px)}}@keyframes undertaleTurnThreeUiBreakFragment{0%{opacity:1;transform:translate(0,0)rotate(0)scale(1)}to{opacity:0;transform:translate(18px,36px)rotate(14deg)scale(.76)}}@keyframes undertaleTurnThreeEnemyHit{0%,to{filter:none;transform:translate(-50%)}50%{filter:brightness(4);transform:translate(-50%)translate(3px)}}.undertale-battle-stage.undertale-battle-gaster-shake{animation:.18s steps(2,end) undertaleGasterShake}.undertale-battle-stage.undertale-battle-phase-flash:after{z-index:10002;content:"";pointer-events:none;background:#fff;animation:70ms steps(2,end) undertaleBattlePhaseFlash;display:block;position:absolute;inset:0}.undertale-battle-submenu-list{grid-template-columns:1fr;row-gap:4px;display:grid}.undertale-battle-submenu-list-items{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}.undertale-battle-submenu-option{white-space:nowrap;text-overflow:ellipsis;pointer-events:auto;min-width:0;min-height:30px;padding-left:32px;overflow:hidden}.undertale-battle-fight-target{margin:0}.undertale-battle-fight-track{aspect-ratio:546/115;width:min(100%,546px);height:auto;image-rendering:pixelated;background:url(/assets/images/undertale/spr/fight_meter_bg.png) 50%/100% 100% no-repeat;position:absolute;top:50%;left:50%;overflow:visible;transform:translate(-50%,-50%)}.undertale-battle-fight-marker{z-index:2;object-fit:contain;width:14px;max-width:none;height:128px;image-rendering:pixelated;display:block;position:absolute;top:50%;left:0;transform:translate(-50%,-50%)}.undertale-battle-slash{z-index:10001;width:26px;height:110px;image-rendering:pixelated;pointer-events:none;user-select:none;display:block;position:absolute;top:26.5625%;left:50%;transform:translate(-50%,-50%)}.undertale-battle-slash[hidden]{display:none}.undertale-battle-miss{z-index:10002;width:118px;height:30px;image-rendering:pixelated;pointer-events:none;user-select:none;display:block;position:absolute;top:26.5625%;left:50%;transform:translate(-50%,-50%)}.undertale-battle-miss[hidden]{display:none}.undertale-battle-damage{z-index:10002;color:#fff;pointer-events:none;user-select:none;image-rendering:pixelated;margin:0;font-family:Hachicro,monospace;font-size:32px;font-weight:400;line-height:1;position:absolute;top:19.6875%;left:50%;transform:translate(-50%,-50%)}.undertale-battle-damage[hidden]{display:none}.undertale-battle-game-over{z-index:10010;color:#fff;text-align:center;image-rendering:pixelated;pointer-events:none;background:#000;flex-direction:column;justify-content:center;align-items:center;font-family:"8bitoperator JVE",monospace;display:flex;position:absolute;inset:0;overflow:hidden}.undertale-battle-game-over[hidden]{display:none}.undertale-battle-game-over-soul{width:16px;height:16px;position:absolute;top:34%;left:50%;transform:translate(-50%,-50%)}.undertale-battle-game-over-soul-intact,.undertale-battle-game-over-soul-cracked{height:16px;image-rendering:pixelated;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.undertale-battle-game-over-soul-intact{width:16px}.undertale-battle-game-over-soul-cracked{width:20px}.undertale-battle-game-over-soul-intact[hidden],.undertale-battle-game-over-soul-cracked[hidden],.undertale-battle-game-over-soul-shard[hidden]{display:none}.undertale-battle-game-over-soul-shard{opacity:0;image-rendering:pixelated;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.undertale-battle-game-over-title,.undertale-battle-game-over-message{opacity:0}.undertale-battle-game-over-title{z-index:1;white-space:nowrap;margin-top:7%;font-family:Mars Needs Cunnilingus,monospace;font-size:36px;line-height:1;position:relative}.undertale-battle-game-over-message{z-index:1;white-space:pre-line;margin:30px 0 0;font-size:18px;line-height:30px;position:relative}.undertale-battle-game-over-soul-shattering .undertale-battle-game-over-soul-shard{animation:.7s steps(5,end) forwards undertaleGameOverSoulShard}.undertale-battle-game-over-active .undertale-battle-game-over-title{animation:.42s steps(3,end) 1.85s forwards undertaleGameOverTitle}.undertale-battle-game-over-active .undertale-battle-game-over-message{animation:.42s steps(3,end) 2.25s forwards undertaleGameOverMessage}@keyframes undertaleGameOverSoulShard{0%{opacity:0;transform:translate(-50%,-50%)rotate(0)scale(1)}22%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--undertale-shard-x)), calc(-50% + var(--undertale-shard-y))) rotate(var(--undertale-shard-rotate)) scale(.7)}}@keyframes undertaleGameOverTitle{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes undertaleGameOverMessage{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.undertale-battle-status{color:#fff;white-space:nowrap;pointer-events:none;width:100%;height:4.375%;image-rendering:pixelated;font-family:Mars Needs Cunnilingus,monospace;font-size:18px;font-weight:400;line-height:21px;position:absolute;top:65.625%;left:0}.undertale-battle-status-name{position:absolute;top:0;left:4.6875%}.undertale-battle-status-hp-label{position:absolute;top:50%;left:38.125%;transform:translateY(-50%)}.undertale-battle-status-hp-bar{background:#c00000;width:10.9375%;height:100%;display:block;position:absolute;top:0;left:42.9688%}.undertale-battle-status-hp-fill{background:#ff0;width:100%;height:100%;display:block}.undertale-battle-status-hp-value{position:absolute;top:0;left:55.625%}.undertale-battle-menu{width:100%;height:8.75%;position:absolute;top:72.8094%;left:0}.undertale-battle-menu img{width:17.1875%;height:100%;image-rendering:pixelated;display:block;position:absolute;top:0}.undertale-battle-menu img:first-child{left:5%}.undertale-battle-menu img:nth-child(2){left:28.9063%}.undertale-battle-menu img:nth-child(3){left:53.9063%}.undertale-battle-menu img:nth-child(4){left:78.125%}.undertale-soul-motion{z-index:10001;aspect-ratio:1;pointer-events:none;user-select:none;transform-origin:50%;will-change:transform;width:2.5%;position:absolute;transform:translate(-50%,-50%)}.undertale-soul-marker{width:100%;height:100%;image-rendering:pixelated;opacity:0;transform-origin:50%;display:block}.undertale-soul-marker.undertale-soul-visible{opacity:1;will-change:opacity}.undertale-soul-marker.undertale-soul-blue{image-rendering:pixelated}.undertale-soul-marker.undertale-soul-blink{animation:undertaleSoulWaitBlink var(--undertale-soul-wait) steps(1, end) 1}.undertale-soul-marker.undertale-soul-enemy-hit{animation:.48s steps(2,end) undertaleSoulEnemyHit}@keyframes undertaleSoulWaitBlink{0%,28%{opacity:1}29%,66%{opacity:0}67%,to{opacity:1}}@keyframes undertaleSoulEnemyHit{0%,to{opacity:1}50%{opacity:0}}@keyframes undertaleEnemyAttackWarning{0%,to{opacity:.2}50%{opacity:.95}}@keyframes undertaleGasterShake{0%,to{transform:translate(0)}25%{transform:translate(-2px,1px)}50%{transform:translate(2px,-1px)}75%{transform:translate(-1px,-1px)}}@keyframes undertaleBattlePhaseFlash{0%{opacity:.92}to{opacity:0}}@keyframes undertaleGravityCue{0%,to{opacity:.72}50%{opacity:1}}@keyframes undertaleZAction{0%,to{transform:scale(1);box-shadow:0 0 15px #8b5cf61a,inset 0 3px 8px -2px #fff3}45%{transform:scale(1.18);box-shadow:0 0 30px #fe0000d9,0 0 60px #fe000059,inset 0 3px 8px -2px #ffffff59}}#about-top-right-undertale.undertale-z-action{animation:.45s ease-out undertaleZAction}@media (prefers-reduced-motion:reduce){.undertale-battle-box{transition:none;animation:none}.undertale-battle-enemy-character{transition:none;transform:translate(-50%)}.undertale-battle-enemy-character-part{animation:none!important}#about-top-right-undertale.undertale-z-action{animation:none}.undertale-soul-marker.undertale-soul-blink{opacity:1;animation:none}.undertale-enemy-attack-warning{opacity:.8;animation:none}.undertale-enemy-platform.undertale-turn-two-platform-landed{filter:brightness(1.35);animation:none}.undertale-battle-game-over-soul-cracked,.undertale-battle-game-over-soul-shard,.undertale-battle-game-over-title,.undertale-battle-game-over-message{opacity:1;animation:none!important}.undertale-battle-game-over-soul-shard{transform:translate(-50%,-50%)}.undertale-battle-game-over-title,.undertale-battle-game-over-message{transform:none}}#about-top-right ul li img{width:100%;height:auto;transition:var(--transition)}#about-top-right ul li:hover img{filter:brightness(1.2)}@keyframes flicker{0%{filter:brightness()contrast()}30%{filter:brightness()contrast()}35%{filter:brightness(.2)contrast(1.5)sepia(.5);transform:perspective(100px)translateZ(10px)}40%{filter:brightness(0)contrast(2)}45%{filter:brightness(.4)contrast(1.2)hue-rotate(-20deg);transform:perspective(100px)translateZ(-5px)}50%{filter:brightness()contrast();transform:none}to{filter:brightness()contrast()}}#about-top-right-omori img{animation:6s infinite flicker}#about-bottom-left ul{flex-direction:column;gap:1.2rem;display:flex}#about-bottom-left ul li{color:var(--text-secondary);padding-left:2rem;font-size:.95rem;line-height:1.7;position:relative}#about-bottom-left ul li:before{content:"";color:var(--accent-color);font-family:"Font Awesome 6 Free";font-size:1rem;font-weight:900;position:absolute;top:2px;left:0}#about-bottom-right{flex-direction:column;justify-content:center;display:flex}#about-bottom-right-name{align-items:center;gap:5px;margin-bottom:.5rem;font-size:2.2rem;font-weight:700;display:flex}#about-bottom-right-name-career{background:linear-gradient(135deg,#a78bfa 0%,#8b5cf6 100%);-webkit-text-fill-color:transparent;background-clip:text}#about-bottom-right-text{color:var(--text-secondary);margin-bottom:2rem;font-size:.95rem;line-height:1.8}#about-bottom-right>div:last-child{box-shadow:none;color:var(--text-secondary);opacity:.7;background:0 0;border:none;align-items:center;gap:.5rem;font-size:.9rem;display:flex;position:absolute;bottom:1.5rem;right:1.5rem}#about-bottom-right>div:last-child i{color:var(--text-secondary);opacity:.6}#work{flex-direction:column;gap:4rem;margin-bottom:8rem;display:flex}.works-grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.projects-grid{grid-template-columns:repeat(3,1fr);gap:2rem;display:grid}.project,.work{border:1px solid var(--card-border);height:100%;transition:var(--transition);color:inherit;-webkit-backdrop-filter:var(--blur);border-radius:32px;flex-direction:column;text-decoration:none;display:flex;overflow:hidden;box-shadow:0 15px 40px #0009,inset 0 0 20px #ffffff0d,inset 0 1px 3px #fff3}.project-top{background:#0006;flex:none;width:100%;height:250px;position:relative;overflow:hidden}.work-top{background:#0006;flex:none;width:100%;height:180px;position:relative;overflow:hidden}.project-top img,.work-top img{object-fit:cover;opacity:.2;filter:grayscale()brightness(.5);width:100%;height:100%;transition:transform .6s cubic-bezier(.16,1,.3,1),opacity .4s}.project:hover .project-top img,.work:hover .work-top img{opacity:.35;filter:grayscale(0)brightness(.5)}.project-bottom{flex-direction:column;flex:1;justify-content:center;padding:2.5rem;display:flex}.work-bottom{flex-direction:column;flex:1;justify-content:center;padding:1.5rem;display:flex}.project-bottom h4,.work-bottom h4{color:var(--text-primary);background:linear-gradient(135deg,#fff 0%,#a78bfa 100%);-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.5rem;font-size:1rem;font-weight:600}.project-bottom p,.work-bottom p{color:var(--text-secondary);font-size:.95rem;line-height:1.7}#blog{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;min-height:200px;margin-bottom:8rem;padding-top:2rem;display:grid}.blog-loading{grid-column:1/-1;justify-content:center;align-items:center;padding:3rem;display:flex}.spinner{border:3px solid #8b5cf61a;border-top:3px solid var(--accent-color);border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin;box-shadow:0 0 15px #8b5cf633}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.blog-post{border:1px solid var(--card-border);transition:var(--transition);-webkit-backdrop-filter:var(--blur);color:inherit;border-radius:24px;flex-direction:column;gap:.8rem;padding:2rem;text-decoration:none;display:flex;position:relative;overflow:hidden;box-shadow:0 15px 40px #0009,inset 0 0 20px #ffffff0d,inset 0 1px 3px #fff3}.corner-ribbon{color:#0000;text-align:center;-webkit-backdrop-filter:blur(4px);z-index:10;background:#8b5cf64d;border:1px solid #ffffff1a;width:120px;height:1.5rem;position:absolute;top:12px;right:-32px;transform:rotate(45deg);box-shadow:0 2px 10px #0006}.blog-post.featured{grid-column:1/-1;gap:1.2rem;padding:3rem}.blog-post.featured .blog-date{opacity:.8;font-size:1rem}.blog-post.featured h3{margin-bottom:.5rem;font-size:1.8rem}.blog-post.featured p{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;font-size:1.1rem;line-height:1.6;display:-webkit-box;overflow:hidden}.blog-post h3{color:var(--text-primary);transition:var(--transition);font-size:1rem;font-weight:600;line-height:1.4}.blog-post p{color:var(--text-secondary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:.85rem;line-height:1.6;display:-webkit-box;overflow:hidden}.blog-date{color:var(--text-secondary);opacity:.5;letter-spacing:.05em;font-size:.75rem}#links{margin-bottom:8rem}#links ul{flex-wrap:wrap;justify-content:center;gap:1.5rem;display:flex}#links ul li{background:var(--card-bg);border:1px solid var(--card-border);width:56px;height:56px;transition:var(--transition);border-radius:16px;justify-content:center;align-items:center;display:flex;overflow:hidden;box-shadow:0 0 15px #8b5cf608,inset 0 0 10px #ffffff26}#links ul li a{justify-content:center;align-items:center;width:100%;height:100%;padding:10px;display:flex}#links ul li img{object-fit:contain;opacity:1;width:100%;height:100%;transition:var(--transition);border-radius:8px}.work-top:empty{background:linear-gradient(45deg,#00000080,#8b5cf61a)}footer{background:0 0;border-top:1px solid #ffffff0d;flex-direction:row;justify-content:space-between;align-items:center;max-width:1200px;margin:4rem auto 0;padding:3rem 4rem;display:flex;position:relative}footer:before{content:"";background:linear-gradient(90deg, transparent, var(--accent-color), transparent);width:300px;height:1px;position:absolute;top:0;left:50%;transform:translate(-50%)}footer p{color:var(--text-secondary);align-items:center;gap:1rem;font-weight:100;display:flex}footer img{border:2px solid #ffffff1a;border-radius:50%;width:36px;height:36px}footer ul{gap:1.5rem;display:flex}footer p a:hover{color:var(--accent-color)!important;transform:none!important}footer ul li a{color:var(--text-secondary);justify-content:center;align-items:center;height:100%;display:flex}footer ul li a i{background:linear-gradient(135deg, var(--text-primary) 0%, var(--text-secondary) 50%, #4b5563 100%);background-clip:text;font-size:1.8rem;color:#0000!important;text-shadow:none!important;transition:none!important}footer ul li a:hover,footer ul li a:hover i{background:linear-gradient(135deg, var(--text-primary) 0%, var(--text-secondary) 50%, #4b5563 100%)!important;color:#0000!important;text-shadow:none!important;background-clip:text!important;transition:none!important;transform:none!important}footer ul li a .social-img{object-fit:contain;filter:drop-shadow(0 0 2px #fff6);width:28px;height:28px}i[class*=fa-]{text-shadow:0 0 2px #fff6}@keyframes fadeIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes victorySlide{0%{opacity:0;transform:translate(-50%,-100%)scale(.8)}10%{opacity:1;transform:translate(-50%)scale(1)}90%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,-20px)scale(.9)}}.victory-overlay{z-index:9999;pointer-events:none;width:600px;max-width:90vw;animation:5s forwards victorySlide;position:fixed;top:-20px;left:50%;transform:translate(-50%)}.victory-overlay img{width:100%;height:auto}#about-top-right-cyberpunk{cursor:pointer}@media (width<=992px){#hero-section h1{font-size:4rem}#about,.works-grid,.projects-grid{grid-template-columns:1fr}#about-top-left,#about-top-right,#about-bottom-left,#about-bottom-right{grid-area:auto/1/auto/-1}#about:after{display:none}footer{text-align:center;flex-direction:column;gap:2rem;padding:3rem 2rem}footer p{flex-direction:column;gap:.5rem}header{padding:1.2rem 2rem}header nav{display:none}}@media (width<=576px){#hero-section h1{font-size:3rem}#hero-section p{font-size:1.1rem}#about>div{padding:2rem}main{padding:100px 1.5rem 0}.blog-post.featured h3{font-size:1.5rem}footer{padding:3rem 1.5rem}header{padding:1rem 1.5rem}}#cyberpunk-player{z-index:9998;opacity:0;font-family:Rajdhani,Inter,sans-serif;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .3s;position:fixed;bottom:20px;left:20px;transform:translateY(120%)}#cyberpunk-player.active{opacity:1;transform:translateY(0)}.cyberpunk-lyrics-outer{width:280px;margin-bottom:10px}.cyberpunk-lyrics-toggle{color:#fcee0a;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:#0a0a0ef2;border:1px solid #fcee0a66;border-radius:8px;justify-content:space-between;align-items:center;width:100%;padding:.5rem .75rem;font-family:Rajdhani,Inter,sans-serif;font-size:.7rem;font-weight:700;transition:all .2s;display:flex;box-shadow:0 0 10px #fcee0a1a}.cyberpunk-lyrics-toggle:hover{background:#fcee0a14}.cyberpunk-lyrics-toggle i{font-size:.65rem;transition:transform .3s}.cyberpunk-lyrics-toggle.open i{transform:rotate(180deg)}.cyberpunk-lyrics-scroll{background:#0a0a0ef2;border:1px solid #fcee0a66;border-top:none;border-radius:0 0 8px 8px;width:100%;max-height:0;margin-top:-4px;padding:0 1px;transition:max-height .35s cubic-bezier(.4,0,.2,1);overflow:hidden}.cyberpunk-lyrics-scroll.open{max-height:220px;overflow-y:auto}.cyberpunk-lyrics-lines{color:#9ca3af;padding:.75rem;font-size:.8rem;line-height:1.8}.lyrics-line{white-space:nowrap;text-overflow:ellipsis;border-radius:3px;padding:.15rem .25rem;transition:all .2s;overflow:hidden}.lyrics-line.active{color:#fcee0a;text-shadow:0 0 8px #fcee0a66;white-space:normal;background:#fcee0a1a;font-weight:600}.lyrics-placeholder{text-align:center;color:#6b7280;padding:1rem 0;font-size:.75rem}.cyberpunk-lyrics-scroll{scrollbar-width:none;-ms-overflow-style:none}.cyberpunk-lyrics-scroll::-webkit-scrollbar{display:none}.cyberpunk-player-inner{background:#0a0a0ef2;border:1px solid #fcee0a66;border-radius:8px;width:280px;padding:.75rem 1rem;position:relative;overflow:hidden;box-shadow:0 0 10px #fcee0a26,0 0 30px #fcee0a14,inset 0 1px #ffffff0d}.cyberpunk-player-inner:before{content:"";opacity:.7;background:linear-gradient(90deg,#fcee0a,#00f0ff,#fcee0a);height:2px;position:absolute;top:0;left:0;right:0}.cyberpunk-player-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.cyberpunk-player-label{letter-spacing:.15em;color:#fcee0a;text-transform:uppercase;font-size:.65rem;font-weight:700}.cyberpunk-player-close{color:#9ca3af;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:1.2rem;line-height:1;transition:color .2s;display:flex}.cyberpunk-player-close:hover{color:#fff}.cyberpunk-player-title{color:#fff;margin-bottom:.15rem;font-size:.9rem;font-weight:600;line-height:1.3}.cyberpunk-player-artist{color:#9ca3af;margin-bottom:.75rem;font-size:.75rem}.cyberpunk-player-controls{align-items:center;gap:.75rem;display:flex}.cyberpunk-player-btn{color:#fcee0a;cursor:pointer;background:#fcee0a1a;border:1px solid #fcee0a66;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.85rem;transition:all .2s;display:inline-flex}.cyberpunk-player-btn:hover{background:#fcee0a33;box-shadow:0 0 10px #fcee0a4d}.cyberpunk-player-visual{flex:1;align-items:flex-end;gap:3px;height:20px;display:flex}.cyberpunk-player-visual span{opacity:.3;background:linear-gradient(#00f0ff,#fcee0a);border-radius:1px;width:3px;height:4px;transition:height .3s}#cyberpunk-player.playing .cyberpunk-player-visual span{animation:.6s ease-in-out infinite alternate cyberBar}#cyberpunk-player.playing .cyberpunk-player-visual span:first-child{animation-duration:.5s;animation-delay:0s}#cyberpunk-player.playing .cyberpunk-player-visual span:nth-child(2){animation-duration:.7s;animation-delay:.1s}#cyberpunk-player.playing .cyberpunk-player-visual span:nth-child(3){animation-duration:.4s;animation-delay:.2s}#cyberpunk-player.playing .cyberpunk-player-visual span:nth-child(4){animation-duration:.6s;animation-delay:.15s}#cyberpunk-player.playing .cyberpunk-player-visual span:nth-child(5){animation-duration:.8s;animation-delay:50ms}@keyframes cyberBar{0%{opacity:.3;height:4px}to{opacity:.9;height:18px}}
