@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.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}.anime-loader{--loader-ink:#0b0812;--loader-panel:#100c16e0;--loader-cream:#fff4ea;--loader-sakura:#ff8fab;--loader-sakura-deep:#ff4f86;--loader-gold:#efd18a;--loader-gold-deep:#c9a24a;--loader-duration:2.6s;--font-jp:var(--font-zen-maru), "Yu Gothic", "Hiragino Maru Gothic ProN", sans-serif;--font-display:var(--font-dela), var(--font-zen-maru), sans-serif;z-index:2147483000;color:var(--loader-cream);background:var(--loader-ink);isolation:isolate;user-select:none;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}html.is-anime-loading{overflow:hidden}.anime-loader.is-gone{pointer-events:none;display:none!important}.anime-loader__atmosphere,.anime-loader__waves,.anime-loader__scan,.anime-loader__vignette,.anime-loader__petals{pointer-events:none;position:absolute;inset:0}.anime-loader__atmosphere{background:radial-gradient(900px 420px at 50% -10%,#ff4f8638,#0000 58%),radial-gradient(700px 340px at 110% 90%,#efd18a1f,#0000 60%),radial-gradient(500px 280px at -10% 80%,#785ab429,#0000 55%)}.anime-loader__waves{opacity:.45;background-color:#0000;background-image:radial-gradient(circle at 50% 120%,#0000 34%,#ff8fab29 35% 40%,#0000 41%),radial-gradient(circle at 0 120%,#0000 34%,#efd18a1a 35% 40%,#0000 41%),radial-gradient(circle at 100% 120%,#0000 34%,#efd18a1a 35% 40%,#0000 41%);background-repeat:repeat;background-size:52px 26px;animation:18s linear infinite loader-waves;mask-image:linear-gradient(#0000,#000 18% 82%,#0000)}.anime-loader__scan{opacity:.12;mix-blend-mode:overlay;background:repeating-linear-gradient(#fff4ea2e 0 1px,#0000 1px 4px)}.anime-loader__vignette{background:radial-gradient(#0000 42%,#0000008c 100%)}.anime-loader__corners,.anime-loader__meta-row{pointer-events:none;position:absolute;inset:1.25rem 1.4rem}.anime-loader__corners span{border:2px solid color-mix(in srgb, var(--loader-gold) 75%, white);width:2.1rem;height:2.1rem;position:absolute}.anime-loader__corners span:first-child{border-bottom:0;border-right:0;top:0;left:0}.anime-loader__corners span:nth-child(2){border-bottom:0;border-left:0;top:0;right:0}.anime-loader__corners span:nth-child(3){border-top:0;border-right:0;bottom:0;left:0}.anime-loader__corners span:nth-child(4){border-top:0;border-left:0;bottom:0;right:0}.anime-loader__meta-row{font-family:var(--font-jp);letter-spacing:.22em;text-transform:uppercase;color:color-mix(in srgb, var(--loader-cream) 70%, var(--loader-sakura));justify-content:space-between;align-items:start;font-size:.72rem;display:flex;bottom:auto}.anime-loader__meta-row b{color:var(--loader-gold);font-weight:700}.anime-loader__skip{border:1px solid color-mix(in srgb, var(--loader-gold) 35%, transparent);font-family:var(--font-jp);letter-spacing:.18em;text-transform:uppercase;color:color-mix(in srgb, var(--loader-cream) 70%, transparent);cursor:pointer;background:0 0;border-radius:999px;margin:0;padding:.35rem .7rem;font-size:.72rem;position:absolute;bottom:1.25rem;right:1.4rem}.anime-loader__stage{z-index:1;background:var(--loader-panel);border:1px solid color-mix(in srgb, var(--loader-gold) 38%, transparent);width:min(38rem,100vw - 2.5rem);box-shadow:0 0 0 6px color-mix(in srgb, var(--loader-ink) 80%, transparent), 0 30px 80px #00000073;backdrop-filter:blur(10px);justify-items:center;gap:1.05rem;padding:2.1rem 1.5rem 1.7rem;display:grid;position:relative;overflow:visible}.anime-loader__kicker{font-family:var(--font-jp);letter-spacing:.42em;color:var(--loader-sakura);margin:0;font-size:.92rem;font-weight:700}.anime-loader__title{font-family:var(--font-display);letter-spacing:.08em;background:linear-gradient(180deg, #fffaf4 20%, var(--loader-gold) 72%, var(--loader-sakura) 100%);color:#0000;text-shadow:none;filter:drop-shadow(0 8px 18px #ff4f862e);-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(1.7rem,6vw,2.7rem);line-height:1}.anime-loader__title:after{content:"";background:var(--loader-sakura-deep);width:.55rem;height:.55rem;box-shadow:0 0 12px var(--loader-sakura);vertical-align:.12em;margin-left:.35rem;animation:.9s step-end infinite loader-blink;display:inline-block}.anime-loader__bar-row{grid-template-columns:auto 1fr auto;align-items:center;gap:.7rem;width:100%;margin-top:.85rem;display:grid}.anime-loader__jewel{background:linear-gradient(135deg, var(--loader-gold), var(--loader-sakura-deep));width:.85rem;height:.85rem;box-shadow:0 0 12px color-mix(in srgb, var(--loader-sakura) 70%, transparent);rotate:45deg}.anime-loader__bar{height:1.85rem;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--loader-gold) 55%, white), inset 0 0 0 3px #2a1624, 0 0 0 1px #ff4f8640;background:#160d16;padding:4px;position:relative;overflow:visible}.anime-loader__track{background:repeating-linear-gradient(-65deg,#fff4ea0a 0 6px,#0000 6px 12px),#2a1524;height:100%;position:relative;overflow:hidden}.anime-loader__fill{background:linear-gradient(90deg, #ff3e7a 0%, var(--loader-sakura) 42%, #ffd0a8 78%, var(--loader-gold) 100%);width:6%;height:100%;animation:loader-progress var(--loader-duration) cubic-bezier(.15, .8, .25, 1) forwards;position:relative;box-shadow:0 0 22px #ff4f86b3}.anime-loader__fill:before{content:"";background:linear-gradient(90deg,#0000,#ffffff73,#0000);width:42%;animation:1.15s linear infinite loader-shine;position:absolute;inset:0 auto 0 0}.anime-loader__fill:after{content:"";mix-blend-mode:screen;background:#fff7ef;width:10px;height:100%;position:absolute;top:0;right:0;box-shadow:0 0 16px 4px #fff4eab3}.anime-loader__ticks{pointer-events:none;background:repeating-linear-gradient(90deg,#0000 0 calc(10% - 1px),#fff4ea29 calc(10% - 1px) 10%);position:absolute;inset:4px}.anime-loader__rider{width:1.85rem;height:1.85rem;animation:loader-bob .7s ease-in-out infinite, loader-ride var(--loader-duration) cubic-bezier(.15, .8, .25, 1) forwards;filter:drop-shadow(0 4px 8px #ff4f8673);pointer-events:none;z-index:2;margin-left:-.9rem;position:absolute;top:-1.35rem;left:0}.anime-loader__percent{min-width:3.4rem;font-family:var(--font-display);letter-spacing:.04em;color:var(--loader-gold);text-align:right;font-variant-numeric:tabular-nums;margin:0;font-size:1.35rem}.anime-loader__percent span{font-family:var(--font-jp);letter-spacing:0;color:var(--loader-sakura);margin-left:.1rem;font-size:.72rem}.anime-loader__caption{font-family:var(--font-jp);letter-spacing:.28em;color:color-mix(in srgb, var(--loader-cream) 62%, var(--loader-sakura));margin:.15rem 0 0;font-size:.86rem}.anime-loader.is-complete .anime-loader__title{background:linear-gradient(180deg, #fff, var(--loader-gold));-webkit-background-clip:text;background-clip:text}.anime-loader.is-complete .anime-loader__fill{background:linear-gradient(90deg, var(--loader-sakura-deep), var(--loader-gold));width:100%;animation:none}.anime-loader.is-complete .anime-loader__rider{animation:none;left:100%}.anime-loader.is-leaving{pointer-events:none;animation:.7s forwards loader-exit}.petal{background:linear-gradient(135deg, #ffd0dc, var(--loader-sakura-deep));opacity:.8;width:12px;height:12px;animation:petal-fall var(--dur,8s) linear var(--delay,0s) infinite;border-radius:.15rem 70%;position:absolute;top:-8vh}.petal:nth-child(odd){opacity:.55;scale:.75}@keyframes loader-waves{0%{background-position:0 0,0 0,0 0}to{background-position:52px 26px,52px 26px,-52px 26px}}@keyframes loader-shine{0%{transform:translate(-120%)}to{transform:translate(280%)}}@keyframes loader-blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes loader-progress{0%{width:6%}18%{width:28%}52%{width:67%}82%{width:91%}to{width:100%}}@keyframes loader-ride{0%{left:6%}18%{left:28%}52%{left:67%}82%{left:91%}to{left:100%}}@keyframes loader-bob{0%,to{transform:translateY(0)rotate(-14deg)}50%{transform:translateY(-5px)rotate(10deg)}}@keyframes petal-fall{0%{opacity:0;transform:translate(0,0)rotate(0)}12%{opacity:.48}to{transform:translate3d(var(--drift,40px), 118vh, 0) rotate(420deg);opacity:.08}}@keyframes loader-exit{0%{opacity:1;filter:blur()}to{opacity:0;filter:blur(8px);visibility:hidden}}@media (width<=640px){.anime-loader__meta-row,.anime-loader__skip{letter-spacing:.1em}.anime-loader__stage{gap:.85rem;padding:1.5rem 1rem 1.2rem}.anime-loader__percent{min-width:2.8rem;font-size:1.1rem}}@media (prefers-reduced-motion:reduce){.anime-loader__waves,.anime-loader__fill:before,.anime-loader__title:after,.petal{animation:none}.anime-loader__rider{animation:loader-ride var(--loader-duration) linear forwards}.anime-loader__fill{animation-timing-function:linear}.anime-loader.is-leaving{animation-duration:.2s}}:root{color-scheme:dark;--bg:#08070d;--bg-elevated:#100d188c;--bg-panel:#0a081261;--text:#f2eef6;--muted:#9b93a8;--line:#d6c4e038;--accent:#d7b6cc;--accent-2:#b5a0c8;--accent-soft:#baa0c81f;--glow:0 0 36px #baa0c824;--shadow-panel:0 12px 40px #00000038;--font-sans:var(--font-outfit), "Segoe UI", sans-serif;--font-display:var(--font-kaushan), var(--font-yuji), cursive;--font-jp:var(--font-zen-kaku), "Yu Gothic", "Hiragino Sans", sans-serif;--space:clamp(.8rem, 2vw, 1.15rem);--max:86rem;--header-h:4.15rem}[data-theme=light]{color-scheme:light;--bg:#efe8e4;--bg-elevated:#fffcfae0;--bg-panel:#fffaf8d1;--text:#141014;--muted:#584e56;--line:#4e344433;--accent:#b83f6a;--accent-2:#6f4f8a;--accent-soft:#b83f6a1f;--glow:0 0 28px #b83f6a29;--shadow-panel:0 12px 32px #2814201a}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}html,body{-webkit-user-select:none;user-select:none;min-height:100%;margin:0}input,textarea,select{-webkit-user-select:text;user-select:text}body{min-height:100vh;padding:var(--space);font-family:var(--font-sans);color:var(--text);background:radial-gradient(920px 460px at 50% -12%, #c4b2d61a, transparent 58%), radial-gradient(700px 380px at 100% 100%, #9680b00f, transparent 52%), var(--bg);flex-direction:column;gap:.75rem;line-height:1.55;display:flex;position:relative;overflow-x:hidden}[data-theme=light] body{background:radial-gradient(980px 520px at 48% -18%, #dc8ca852, transparent 58%), radial-gradient(720px 420px at 100% 100%, #a082c433, transparent 55%), radial-gradient(560px 340px at 0% 70%, #f0b49642, transparent 50%), linear-gradient(180deg, #f4ece8 0%, var(--bg) 42%, #e8dfda 100%)}body:before,body:after{content:"";pointer-events:none;z-index:0;position:fixed;inset:0}body:before{opacity:.18;background-image:linear-gradient(#d2c4e014 1px,#0000 1px),linear-gradient(90deg,#d2c4e014 1px,#0000 1px);background-size:56px 56px;mask-image:radial-gradient(#000 38%,#0000 82%)}[data-theme=light] body:before{opacity:.28;background-image:linear-gradient(#78586c12 1px,#0000 1px),linear-gradient(90deg,#78586c12 1px,#0000 1px)}body:after{background:radial-gradient(circle at 50% 16%,#e8d6ec14,#0000 26%),radial-gradient(circle at 18% 72%,#baa0c80d,#0000 22%),radial-gradient(circle at 86% 38%,#dcc6e20f,#0000 20%)}[data-theme=light] body:after{background:radial-gradient(circle at 50% 12%,#ec96b261,#0000 28%),radial-gradient(circle at 12% 78%,#a880c438,#0000 24%),radial-gradient(circle at 88% 36%,#ecb08c42,#0000 22%)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,textarea{font:inherit}.skip-link{left:var(--space);z-index:30;background:var(--text);color:var(--bg);border-radius:999px;padding:.5rem .8rem;position:absolute;top:-4rem}.skip-link:focus{top:.8rem}.panel{isolation:isolate;border:1px solid var(--line);background:var(--bg-panel);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 7%, transparent), var(--shadow-panel), var(--glow), inset 0 0 48px color-mix(in srgb, var(--accent-2) 5%, transparent);backdrop-filter:blur(18px)saturate(1.12);position:relative}[data-theme=light] .panel{box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 8%, transparent), var(--shadow-panel), inset 0 1px 0 #ffffffb8, inset 0 0 40px color-mix(in srgb, var(--accent) 4%, transparent);backdrop-filter:blur(20px)saturate(1.2)}.panel__body{z-index:1;height:100%;position:relative}.panel__corners,.panel__corners i{pointer-events:none}.panel__corners i{z-index:3;width:11px;height:11px;position:absolute}.panel__corners i:first-child,.panel__corners i:nth-child(2),.panel__corners i:nth-child(3),.panel__corners i:nth-child(4){border-color:var(--accent);border-style:solid}.panel__corners i:first-child{filter:drop-shadow(0 0 5px color-mix(in srgb, var(--accent) 45%, transparent));border-width:1.5px 0 0 1.5px;top:-1px;left:-1px}.panel__corners i:nth-child(2){filter:drop-shadow(0 0 5px color-mix(in srgb, var(--accent) 45%, transparent));border-width:1.5px 1.5px 0 0;top:-1px;right:-1px}.panel__corners i:nth-child(3){filter:drop-shadow(0 0 5px color-mix(in srgb, var(--accent) 45%, transparent));border-width:0 0 1.5px 1.5px;bottom:-1px;left:-1px}.panel__corners i:nth-child(4){filter:drop-shadow(0 0 5px color-mix(in srgb, var(--accent) 45%, transparent));border-width:0 1.5px 1.5px 0;bottom:-1px;right:-1px}[data-theme=light] .panel__corners i:first-child,[data-theme=light] .panel__corners i:nth-child(2),[data-theme=light] .panel__corners i:nth-child(3),[data-theme=light] .panel__corners i:nth-child(4){filter:none}.site-header,.site-footer,.page-home,.page-inner{z-index:1;position:relative}.site-header{flex:none}.header-inner{min-height:var(--header-h);grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:0 1.1rem;display:grid}.wordmark{letter-spacing:.18em;text-transform:uppercase;align-items:center;gap:.55rem;font-size:.92rem;font-weight:700;display:inline-flex}.wordmark__mark{width:1.35rem;height:1.35rem;color:var(--accent);filter:drop-shadow(0 0 6px color-mix(in srgb, var(--accent) 40%, transparent))}[data-theme=light] .wordmark__mark{filter:none}.nav,.header-actions{align-items:center;gap:1.35rem;display:flex}.header-actions{justify-self:end}.nav-toggle{border:1px solid var(--line);width:2.35rem;height:2.35rem;color:var(--text);cursor:pointer;background:0 0;place-items:center;margin:0;padding:0;display:none}.nav-toggle__bars{gap:.28rem;width:1rem;display:grid}.nav-toggle__bars i{background:currentColor;width:100%;height:1.5px;transition:transform .2s,opacity .2s;display:block}.site-header.is-nav-open .nav-toggle__bars i:first-child{transform:translateY(.34rem)rotate(45deg)}.site-header.is-nav-open .nav-toggle__bars i:nth-child(2){opacity:0}.site-header.is-nav-open .nav-toggle__bars i:nth-child(3){transform:translateY(-.34rem)rotate(-45deg)}.nav a{color:var(--muted);letter-spacing:.22em;text-transform:uppercase;padding:.35rem 0;font-size:.74rem;font-weight:600;position:relative}.nav a:hover,.nav a[aria-current=page]{color:var(--text)}.nav a[aria-current=page]:after{content:"";background:var(--accent);height:2px;box-shadow:0 0 10px color-mix(in srgb, var(--accent) 40%, transparent);position:absolute;bottom:0;left:0;right:0}[data-theme=light] .nav a[aria-current=page]:after{box-shadow:none}.theme-pair{align-items:center;gap:.35rem;display:flex}.theme-btn{width:2.05rem;height:2.05rem;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;display:grid}.theme-btn:hover,.theme-btn.is-active{color:var(--accent);filter:drop-shadow(0 0 6px color-mix(in srgb, var(--accent) 35%, transparent))}.page-home{flex:auto;grid-template-columns:minmax(16.5rem,1fr) minmax(22rem,1.55fr) minmax(16.5rem,1fr);gap:.75rem;min-height:0;display:grid}.page-home>.panel{height:100%;min-height:0;overflow:hidden}body.is-home{height:100dvh;max-height:100dvh;overflow:hidden}body.is-home .page-home{flex:1 1 0;min-height:0}body.is-home .site-footer{flex:none}.page-inner{width:min(100%, var(--max));flex-direction:column;flex:auto;gap:1rem;margin-inline:auto;padding:.15rem 0 .4rem;display:flex}.panel-head{justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:1.1rem;display:flex}.panel-kicker{letter-spacing:.28em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:700}.panel-jp{font-family:var(--font-jp);color:var(--accent);letter-spacing:.18em;text-shadow:0 0 10px color-mix(in srgb, var(--accent) 28%, transparent);margin:0;font-size:.78rem}.panel-head__aside{align-items:center;gap:.4rem;display:inline-flex}.panel-head__icon{width:1.15rem;height:1.15rem;color:var(--accent)}.footer-brand{gap:.1rem;display:grid}.footer-brand:hover .panel-kicker{color:var(--accent)}code{color:var(--accent);font-size:.9em}.button-inline{width:auto}.page-inner .skill-list{flex:none;grid-template-columns:repeat(2,minmax(0,1fr))}.page-inner .timeline{flex:none;max-width:40rem}.page-inner .timeline--full{max-width:46rem}.card h3{font-size:1.2rem}.skills-panel,.experience-panel{overflow:hidden}.skills-panel .panel__body,.experience-panel .panel__body{flex-direction:column;height:100%;min-height:0;padding:1.15rem 1.05rem 1rem;display:flex;overflow:hidden}.skills-panel .panel__body{background:radial-gradient(420px 180px at 8% -8%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 58%), radial-gradient(280px 220px at 110% 108%, color-mix(in srgb, var(--accent-2) 12%, transparent), transparent 52%);padding:1.25rem 1.1rem 1.05rem}[data-theme=light] .skills-panel .panel__body{background:radial-gradient(420px 180px at 8% -8%, color-mix(in srgb, var(--accent) 20%, transparent), transparent 58%), radial-gradient(280px 220px at 110% 108%, color-mix(in srgb, var(--accent-2) 14%, transparent), transparent 52%)}[data-theme=light] .skills-panel__glow{opacity:.45}.skills-panel__fx{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.skills-panel__glow{background:radial-gradient(circle, color-mix(in srgb, var(--accent) 22%, transparent), transparent 68%);filter:blur(8px);width:70%;height:42%;position:absolute;top:-12%;left:-18%}.skills-panel__vert{z-index:0;writing-mode:vertical-rl;font-family:var(--font-jp);letter-spacing:.5em;color:color-mix(in srgb, var(--accent) 38%, transparent);pointer-events:none;margin:0;font-size:1.35rem;position:absolute;top:5.2rem;left:.35rem}.skills-panel .panel-head,.skills-panel .skill-list,.skills-panel .skills-panel__lede,.skills-panel .button{z-index:1;position:relative}.skills-panel .panel-head{border-bottom:1px solid color-mix(in srgb, var(--line) 80%, transparent);margin-bottom:.55rem;padding-bottom:.7rem}.skills-panel__count{border:1px solid color-mix(in srgb, var(--accent) 40%, var(--line));min-width:1.45rem;height:1.25rem;color:var(--accent);letter-spacing:.04em;box-shadow:0 0 12px color-mix(in srgb, var(--accent) 18%, transparent);place-items:center;padding:0 .3rem;font-size:.64rem;font-weight:700;display:grid}.skills-panel__lede{color:var(--muted);letter-spacing:.04em;margin:0 0 .9rem;font-size:.78rem}.skills-panel .skill-list{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--accent) 35%, transparent) transparent;flex:auto;gap:.5rem;min-height:0;padding-right:.15rem;overflow-y:auto;mask-image:linear-gradient(#000 0% 88%,#0000 100%)}.experience-panel .timeline{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--accent) 35%, transparent) transparent;flex:auto;min-height:0;padding-right:.15rem;overflow-y:auto;mask-image:linear-gradient(#000 0% 88%,#0000 100%)}.skills-panel .skill{border:1px solid color-mix(in srgb, var(--line) 88%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--text) 4%, transparent), transparent 42%), color-mix(in srgb, var(--bg) 28%, transparent);box-shadow:inset 0 0 18px color-mix(in srgb, var(--skill-color) 6%, transparent);padding:.45rem .55rem .42rem;transition:border-color .2s,box-shadow .2s,background .2s}[data-theme=light] .skills-panel .skill{background:linear-gradient(180deg, #ffffffa6, transparent 48%), color-mix(in srgb, var(--bg) 45%, white);box-shadow:inset 0 0 0 1px #ffffff80,0 4px 14px #301c280a}.skills-panel .skill:hover{border-color:color-mix(in srgb, var(--fill) 48%, var(--line));box-shadow:0 0 18px color-mix(in srgb, var(--fill) 14%, transparent), inset 0 0 22px color-mix(in srgb, var(--skill-color) 10%, transparent)}.skill-list,.timeline{flex:auto;align-content:start;gap:1rem;display:grid}.skill{--skill-color:var(--accent);--fill:color-mix(in srgb, var(--skill-color) 78%, var(--text));grid-template-columns:auto 1fr auto;grid-template-areas:"glyph name pct""glyph bar bar";align-items:center;gap:.28rem .65rem;display:grid}[data-theme=light] .skill{--fill:color-mix(in srgb, var(--skill-color) 92%, #1a0a12)}.skill-glyph{grid-area:glyph;width:2.35rem;height:2.35rem;position:relative}.skill-glyph svg{width:100%;height:100%;transform:rotate(-90deg)}.skill-glyph__well{background:radial-gradient(circle at 32% 28%, color-mix(in srgb, var(--skill-color) 28%, transparent), transparent 62%), color-mix(in srgb, var(--bg) 72%, var(--text) 8%);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--text) 12%, transparent), 0 3px 8px #00000038;border-radius:50%;position:absolute;inset:5px}.skill-glyph__well[data-plate=dark]{background:#0a0a0a;box-shadow:inset 0 0 0 1px #ffffff29,0 3px 10px #00000059}.skill-glyph__well[data-plate=light]{background:#f4f1ea;box-shadow:inset 0 0 0 1px #281c161a,0 3px 8px #0000001f}[data-theme=light] .skill-glyph__well{background:radial-gradient(circle at 32% 28%, color-mix(in srgb, var(--skill-color) 35%, transparent), transparent 62%), color-mix(in srgb, var(--bg) 55%, #ddd4ce);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--text) 16%, transparent), 0 3px 8px #2814201f}[data-theme=light] .skill-glyph__well[data-plate=light]{background:#e8e0d4;box-shadow:inset 0 0 0 1px #281c1624,0 3px 8px #2814201a}[data-theme=light] .skill-glyph__well[data-plate=dark]{background:#0a0a0a;box-shadow:inset 0 0 0 1px #ffffff2e,0 3px 10px #00000047}.skill-glyph__track,.skill-glyph__fill{fill:none;stroke-width:2.4px}.skill-glyph__track{stroke:color-mix(in srgb, var(--text) 12%, transparent)}.skill-glyph__fill{stroke:var(--fill);stroke-linecap:round;stroke-dasharray:var(--ring,97.4);stroke-dashoffset:var(--ring,97.4);filter:drop-shadow(0 0 4px color-mix(in srgb, var(--fill) 55%, transparent));animation:1.15s cubic-bezier(.22,1,.36,1) forwards skill-ring;animation-delay:var(--delay,0s)}.skill-icon{z-index:1;object-fit:contain;width:.92rem;height:.92rem;margin:auto;position:absolute;inset:0}[data-theme=light] .skill-icon{filter:saturate(1.35)contrast(1.12)brightness(.92)}[data-theme=light] .skill-icon.invert-on-dark{filter:saturate(1.4)contrast(1.15)brightness(.88)}.skill-glyph__well[data-plate=dark]+.skill-icon{width:1.02rem;height:1.02rem}html:not([data-theme=light]) .skill-icon.invert-on-dark{filter:invert()}.skill-name{text-overflow:ellipsis;white-space:nowrap;grid-area:name;min-width:0;font-size:.82rem;font-weight:600;line-height:1.2;overflow:hidden}.skill-pct{color:var(--muted);font-variant-numeric:tabular-nums;grid-area:pct;font-size:.72rem}.skill-pct em{color:var(--fill);text-shadow:0 0 10px color-mix(in srgb, var(--fill) 35%, transparent);font-style:normal;font-weight:700}.skill-bar{background:linear-gradient(90deg, color-mix(in srgb, var(--text) 5%, transparent), color-mix(in srgb, var(--text) 9%, transparent));height:8px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--fill) 22%, transparent), inset 0 1px 2px #0000002e;border-radius:999px;grid-area:bar;position:relative;overflow:hidden}[data-theme=light] .skill-bar{background:color-mix(in srgb, var(--text) 9%, #e6ddd8);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--fill) 28%, transparent), inset 0 1px 2px #301c2814}.skill-bar__ticks{background:repeating-linear-gradient(90deg, transparent 0 9%, color-mix(in srgb, var(--text) 10%, transparent) 9% 10%);pointer-events:none;position:absolute;inset:0;mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.skill-bar__fill{border-radius:inherit;background:linear-gradient(180deg, #ffffff61, transparent 46%), linear-gradient(90deg, color-mix(in srgb, var(--fill) 55%, white), var(--fill) 55%, color-mix(in srgb, var(--fill) 70%, var(--accent-2)));width:0;height:100%;box-shadow:0 0 12px color-mix(in srgb, var(--fill) 38%, transparent);animation:1.2s cubic-bezier(.22,1,.36,1) forwards skill-fill;animation-delay:var(--delay,0s);display:block;position:relative}[data-theme=light] .skill-bar__fill{background:linear-gradient(180deg, #ffffff38, transparent 50%), linear-gradient(90deg, color-mix(in srgb, var(--fill) 88%, #2a1018), var(--fill) 42%, color-mix(in srgb, var(--fill) 82%, var(--accent-2)));box-shadow:0 0 14px color-mix(in srgb, var(--fill) 48%, transparent)}[data-theme=light] .skill-bar__spark{box-shadow:0 0 8px 2px color-mix(in srgb, var(--fill) 80%, white), 0 0 16px color-mix(in srgb, var(--fill) 65%, transparent);background:#fff8f5}[data-theme=light] .skill-glyph__fill{filter:drop-shadow(0 0 5px color-mix(in srgb, var(--fill) 65%, transparent))}[data-theme=light] .skill-pct em{text-shadow:0 0 8px color-mix(in srgb, var(--fill) 40%, transparent)}.skill-bar__fill:after{content:"";width:42%;animation:skill-sheen 2.4s ease-in-out calc(var(--delay,0s) + 1s) infinite;background:linear-gradient(90deg,#0000,#ffffff73,#0000);position:absolute;inset:0 auto 0 -40%}.skill-bar__spark{width:9px;height:9px;box-shadow:0 0 8px 2px color-mix(in srgb, var(--fill) 70%, white), 0 0 16px color-mix(in srgb, var(--fill) 55%, transparent);background:#fff;border-radius:50%;position:absolute;top:50%;right:0;translate:40% -50%}@keyframes skill-ring{to{stroke-dashoffset:calc(var(--ring,97.4) - (var(--ring,97.4) * var(--level) / 100))}}@keyframes skill-fill{to{width:calc(var(--level) * 1%)}}@keyframes skill-sheen{0%,to{opacity:0;transform:translate(0)}18%{opacity:.85}55%{opacity:0;transform:translate(280%)}}.button{min-height:2.55rem;font:inherit;cursor:pointer;letter-spacing:.12em;text-transform:uppercase;border:1px solid #0000;justify-content:center;align-items:center;gap:.45rem;padding:.5rem 1rem;font-weight:600;text-decoration:none;display:inline-flex}.button-line{border-color:color-mix(in srgb, var(--accent-2) 48%, transparent);width:100%;color:var(--text);letter-spacing:.16em;background:0 0;margin-top:auto;font-size:.68rem}.button-line:hover{border-color:var(--accent);box-shadow:var(--glow)}.button-cta{border:1px solid color-mix(in srgb, var(--accent) 45%, white);color:#fff;background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 28%, transparent), color-mix(in srgb, var(--accent-2) 24%, transparent));min-height:2.85rem;box-shadow:0 0 22px color-mix(in srgb, var(--accent) 18%, transparent);backdrop-filter:blur(10px);padding-inline:1.25rem;font-size:.74rem}.button-cta:hover{filter:brightness(1.08)}[data-theme=light] .button-cta{color:#fff;border-color:color-mix(in srgb, var(--accent) 55%, #fff);background:linear-gradient(120deg, color-mix(in srgb, var(--accent) 96%, #6e2040), color-mix(in srgb, var(--accent-2) 85%, var(--accent)));box-shadow:0 8px 22px color-mix(in srgb, var(--accent) 32%, transparent), inset 0 1px 0 #ffffff47}[data-theme=light] .button-line:hover{background:color-mix(in srgb, var(--accent) 8%, transparent)}.button-ghost{border-color:var(--line);color:var(--text);background:0 0}.hero-panel{color:#f7f2ff;background:linear-gradient(#08060e1f 8%,#08060e5c 48%,#08060ec7 100%),url(/images/hero.png) 50%/cover no-repeat;overflow:hidden}[data-theme=light] body.is-home{background:linear-gradient(#fff8f647 0%,#f6ece82e 40%,#ece0dc6b 100%),url(/images/dashboard-light.jpg) 50%/cover no-repeat fixed}[data-theme=light] body.is-home:before{opacity:.12;background-image:linear-gradient(#50304014 1px,#0000 1px),linear-gradient(90deg,#50304014 1px,#0000 1px)}[data-theme=light] body.is-home:after{background:radial-gradient(at 50% 0,#ffffff38,#0000 42%),radial-gradient(at 50% 100%,#2818201f,#0000 48%)}[data-theme=light] body.is-home .panel{background:color-mix(in srgb, var(--bg-panel) 72%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 10%, transparent), 0 14px 36px #2814201f, inset 0 1px 0 #ffffff8c}[data-theme=light] body.is-home .skills-panel .panel__body,[data-theme=light] body.is-home .experience-panel .panel__body{background:linear-gradient(#fffcfa6b,#fff6f247)}[data-theme=light] body.is-home .hero-panel{color:#fff8f4;background:linear-gradient(#fffaf814 0%,#2816201f 38%,#180c1494 72%,#10080ec7 100%),url(/images/dashboard-light.jpg) 50% 42%/cover no-repeat}[data-theme=light] body.is-home .hero-hello{color:#ffdee9;text-shadow:0 2px 12px #28101c59}[data-theme=light] body.is-home .hero-name{background:linear-gradient(#fff 12%,#ffe8f0 52%,#f0b8c8 100%);filter:drop-shadow(0 8px 18px #28101c59);-webkit-background-clip:text;background-clip:text}[data-theme=light] body.is-home .hero-role,[data-theme=light] body.is-home .hero-bio,[data-theme=light] body.is-home .hero-jp-vert,[data-theme=light] body.is-home .scroll-hint{color:#fff6f2e6;text-shadow:0 2px 10px #180a1273}[data-theme=light] body.is-home .site-header.panel,[data-theme=light] body.is-home .site-footer.panel{background:color-mix(in srgb, var(--bg-panel) 78%, transparent)}.hero-panel .panel__body{text-align:center;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;min-height:0;padding:1.4rem 1.3rem 1.1rem;display:flex}body.is-home .scroll-hint{display:none}.hero-jp-vert{z-index:3;writing-mode:vertical-rl;font-family:var(--font-jp);letter-spacing:.42em;color:#fff2ff9e;margin:0;font-size:.78rem;position:absolute;top:1.15rem;left:.85rem}.hero-copy{z-index:3;justify-items:center;gap:.55rem;max-width:28rem;display:grid;position:relative}.hero-hello{color:color-mix(in srgb, var(--accent) 55%, white);text-shadow:0 0 14px color-mix(in srgb, var(--accent) 30%, transparent);margin:0;font-size:.95rem;font-weight:500}.hero-name{font-family:var(--font-display);letter-spacing:.02em;background:linear-gradient(#fff 16%,#eee4f4 58%,#cbb6d8 100%);color:#0000;filter:drop-shadow(0 8px 16px #aa8cbe47);-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(3.1rem,6.2vw,5rem);font-weight:400;line-height:.82}.hero-role{letter-spacing:.16em;text-transform:uppercase;color:#fff4ffeb;align-items:center;gap:.7rem;margin:.15rem 0 0;font-size:.82rem;display:flex}.hero-role:before,.hero-role:after{content:"";background:#ffffff8c;width:2.2rem;height:1px}.hero-bio{color:#ece2f5d1;max-width:24rem;margin:.15rem 0 .45rem;font-size:.92rem}.scroll-hint{z-index:3;color:#fff4ffb3;letter-spacing:.28em;justify-items:center;gap:.28rem;margin-top:1.15rem;font-size:.62rem;display:grid;position:relative}.mouse{border:1.5px solid;border-radius:999px;justify-items:center;width:1.05rem;height:1.6rem;padding-top:.28rem;display:grid}.mouse i{background:currentColor;border-radius:999px;width:2px;height:6px;animation:1.4s ease-in-out infinite wheel}.timeline{gap:1.15rem;padding-left:1.15rem;position:relative}.timeline:before{content:"";background:linear-gradient(var(--accent-2), color-mix(in srgb, var(--accent-2) 10%, transparent));width:1px;position:absolute;top:.35rem;bottom:.2rem;left:4px}.timeline-item{position:relative}.timeline-item:before{content:"";background:color-mix(in srgb, var(--accent) 80%, white);width:9px;height:9px;box-shadow:0 0 10px color-mix(in srgb, var(--accent) 40%, transparent);border-radius:50%;position:absolute;top:.35rem;left:-1.15rem}.timeline-period{color:var(--muted);letter-spacing:.08em;margin:0 0 .15rem;font-size:.72rem}.timeline-title{letter-spacing:0;font-size:.95rem;font-weight:600;font-family:var(--font-sans);margin:0}.timeline-company{color:var(--accent);margin:.12rem 0 .35rem;font-size:.78rem;font-weight:600}.timeline-summary{color:var(--muted);margin:0;font-size:.8rem}.timeline--full{gap:2rem;max-width:46rem}.timeline--full .timeline-title{font-size:1.15rem}.timeline--full .timeline-company{margin-bottom:.65rem;font-size:.85rem}.timeline-body{gap:.65rem;display:grid}.timeline-body p{color:var(--muted);margin:0;font-size:.92rem;line-height:1.55}.timeline-highlights{margin-top:.85rem}.timeline-highlights__label{color:var(--text);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .4rem;font-size:.72rem;font-weight:600}.timeline-highlights ul{color:var(--muted);gap:.35rem;margin:0;padding-left:1.05rem;font-size:.88rem;line-height:1.5;display:grid}.timeline-highlights li::marker{color:var(--accent)}.site-footer{padding:.95rem 1.1rem .7rem}.footer-inner{grid-template-columns:auto 1fr auto;align-items:center;gap:1.2rem;display:grid}.footer-contacts{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;display:grid}.contact-item{min-width:0;color:var(--text);align-items:center;gap:.55rem;margin:0;display:flex}.contact-item svg{width:1.15rem;height:1.15rem;color:var(--accent);flex:none}.contact-item span{min-width:0;font-size:.82rem;display:grid}.contact-item b{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:.65rem;font-weight:600}.social-pill{border:1px solid var(--line);border-radius:999px;align-items:center;gap:.15rem;padding:.28rem .45rem;display:flex}.social-pill a{width:2rem;height:2rem;color:var(--muted);border-radius:999px;place-items:center;display:grid}.social-pill a:hover{color:var(--accent)}.social-pill svg{width:1.05rem;height:1.05rem}.footer-copy{text-align:center;color:var(--muted);letter-spacing:.04em;margin:.85rem 0 .15rem;font-size:.75rem}.page-hero .panel__body{padding:1.4rem 1.3rem 1.3rem}.page-hero h1,.section h2,.card h3{font-family:var(--font-sans);letter-spacing:-.03em;margin:0;line-height:1.1}.page-hero h1{margin-top:.25rem;font-size:clamp(2.2rem,5vw,3.4rem)}#experience{scroll-margin-top:1rem}.lede,.prose p,.muted,.card p{color:var(--muted)}.lede{max-width:40rem;margin:.7rem 0 0;font-size:1.05rem}.actions{flex-wrap:wrap;gap:.75rem;margin-top:1rem;display:flex}.section .panel__body{flex-direction:column;gap:1rem;padding:1.15rem 1.2rem 1.3rem;display:flex}.section-head{justify-content:space-between;align-items:end;gap:1rem;display:flex}.grid{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:.9rem;display:grid}.card{flex-direction:column;gap:.7rem;min-height:13.5rem;padding:1.15rem;transition:border-color .2s,box-shadow .2s;display:flex}.card:hover{border-color:color-mix(in srgb, var(--accent) 70%, var(--line))}.meta{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:.75rem;font-size:.82rem;display:flex}.tags{flex-wrap:wrap;gap:.4rem;margin-top:auto;display:flex}.tag{border:1px solid var(--line);color:var(--muted);padding:.15rem .5rem;font-size:.75rem}.projects-hero{min-height:clamp(15rem,32vw,20rem);position:relative;overflow:hidden}.projects-hero__media{z-index:0;pointer-events:none;width:min(58%,42rem);position:absolute;inset:-6% -1% -6% auto;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#0003 10%,#000000b3 24%,#000 40% 100%);mask-image:linear-gradient(90deg,#0000 0%,#0003 10%,#000000b3 24%,#000 40% 100%)}.projects-hero__media img,.projects-hero__img{object-fit:cover;object-position:center;filter:saturate(1.05)brightness(.92);width:100%;height:100%;display:block}.projects-hero__img--light,[data-theme=light] .projects-hero__img--dark{display:none}[data-theme=light] .projects-hero__img--light{object-position:center 40%;filter:saturate(1.12)brightness(1.02)contrast(1.04);display:block}[data-theme=light] .projects-hero{min-height:clamp(16rem,36vw,22rem)}[data-theme=light] .projects-hero__badge,[data-theme=light] .projects-hero__stat{background:color-mix(in srgb, var(--bg-panel) 82%, white);backdrop-filter:blur(12px)}.projects-hero__media:before,.projects-hero__media:after{content:"";pointer-events:none;position:absolute;inset:0}.projects-hero__media:before{background:radial-gradient(95% 80% at 72% 48%, transparent 35%, color-mix(in srgb, var(--bg-panel) 42%, transparent) 78%, color-mix(in srgb, var(--bg-panel) 88%, transparent) 100%)}.projects-hero__media:after{background:linear-gradient(90deg, var(--bg-panel) 0%, color-mix(in srgb, var(--bg-panel) 82%, transparent) 12%, color-mix(in srgb, var(--bg) 40%, transparent) 30%, transparent 48%), linear-gradient(180deg, color-mix(in srgb, var(--bg-panel) 85%, transparent) 0%, color-mix(in srgb, var(--bg-panel) 35%, transparent) 14%, transparent 28%, transparent 72%, color-mix(in srgb, var(--bg-panel) 40%, transparent) 86%, color-mix(in srgb, var(--bg-panel) 90%, transparent) 100%)}.projects-hero__body{z-index:1;align-content:center;gap:.85rem;max-width:34rem;padding:1.55rem 1.4rem 1.5rem;display:grid;position:relative}.projects-hero__badge{border:1px solid color-mix(in srgb, var(--accent) 42%, var(--line));background:color-mix(in srgb, var(--bg-panel) 70%, transparent);width:fit-content;color:var(--accent);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:.55rem;margin:0;padding:.28rem .7rem;font-size:.7rem;font-weight:700;display:inline-flex}.projects-hero__badge span:first-child{font-family:var(--font-jp);letter-spacing:.12em}.projects-hero__title{font-family:var(--font-sans);letter-spacing:-.04em;margin:0;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;line-height:1.05}.projects-hero__title span{color:var(--accent);background:linear-gradient(120deg, var(--accent), color-mix(in srgb, var(--accent-2) 70%, var(--accent)));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.projects-hero__lede{max-width:28rem;color:var(--muted);margin:0;font-size:1.02rem;line-height:1.55}.projects-hero__stats{flex-wrap:wrap;gap:.65rem;margin-top:.35rem;display:flex}.projects-hero__stat{border:1px solid color-mix(in srgb, var(--accent) 28%, var(--line));background:color-mix(in srgb, var(--bg-panel) 72%, transparent);min-height:2.4rem;color:var(--text);backdrop-filter:blur(10px);align-items:center;gap:.55rem;padding:.35rem .8rem;font-size:.82rem;font-weight:600;display:inline-flex}.projects-hero__stat-icon{width:1.15rem;height:1.15rem;color:var(--accent);place-items:center;display:grid}.projects-hero__stat-icon svg{width:100%;height:100%}.projects-toolbar{margin-top:.15rem}.projects-toolbar__inner{z-index:1;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.85rem 1rem;padding:.75rem .9rem;display:flex;position:relative}.projects-filters{flex-wrap:wrap;gap:.45rem;display:flex}.projects-filters__btn{min-height:2.15rem;color:var(--muted);font:inherit;letter-spacing:.04em;cursor:pointer;background:0 0;border:1px solid #0000;padding:.35rem .85rem;font-size:.78rem;font-weight:600;transition:color .2s,border-color .2s,background .2s,box-shadow .2s}.projects-filters__btn:hover{color:var(--text);border-color:color-mix(in srgb, var(--accent) 35%, var(--line))}.projects-filters__btn.is-active{color:var(--text);border-color:color-mix(in srgb, var(--accent) 55%, var(--line));background:color-mix(in srgb, var(--accent) 16%, transparent);box-shadow:0 0 16px color-mix(in srgb, var(--accent) 14%, transparent)}.projects-toolbar__aside{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.projects-sort{color:var(--muted);align-items:center;gap:.45rem;font-size:.78rem;font-weight:600;display:inline-flex}.projects-sort select{border:1px solid var(--line);background:color-mix(in srgb, var(--bg) 65%, transparent);min-height:2.15rem;color:var(--text);font:inherit;padding:.3rem .7rem;font-size:.78rem}.projects-view{gap:.3rem;display:inline-flex}.projects-view button{border:1px solid var(--line);width:2.15rem;height:2.15rem;color:var(--muted);cursor:pointer;background:0 0;place-items:center;display:grid}.projects-view button.is-active,.projects-view button:hover{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 55%, var(--line))}.projects-board{gap:.9rem;display:grid}.projects-board--grid{grid-template-columns:repeat(3,minmax(0,1fr))}.projects-board--list{grid-template-columns:1fr}.projects-card{flex-direction:column;min-width:0;transition:border-color .2s,box-shadow .2s;display:flex;overflow:hidden}.projects-card>.panel__corners{z-index:2;position:absolute;inset:0}.projects-card:hover{border-color:color-mix(in srgb, var(--accent) 60%, var(--line));box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 10%, transparent), 0 16px 40px #00000047, var(--glow)}[data-theme=light] .projects-card:hover{box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 12%, transparent), 0 16px 36px #301c281a, var(--glow)}.projects-card--list{grid-template-columns:15rem minmax(0,1fr);align-items:stretch;display:grid}.projects-card__media{z-index:1;background:linear-gradient(145deg, color-mix(in srgb, var(--accent) 12%, transparent), transparent 50%), color-mix(in srgb, var(--bg) 70%, transparent);aspect-ratio:16/10;cursor:pointer;border:0;width:100%;margin:0;padding:0;display:block;position:relative;overflow:hidden}.projects-card--list .projects-card__media{aspect-ratio:auto;align-self:stretch;width:100%;height:100%;min-height:0;max-height:none}.projects-card--list .projects-card__body{justify-content:center;padding-block:.95rem}.projects-card__media img{object-fit:cover;object-position:center;width:100%;height:100%;transition:transform .4s;display:block}.projects-card:hover .projects-card__media img{transform:scale(1.04)}.projects-card__year{border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);background:color-mix(in srgb, var(--bg) 55%, transparent);color:var(--text);letter-spacing:.08em;backdrop-filter:blur(8px);padding:.22rem .55rem;font-size:.7rem;font-weight:700;position:absolute;top:.7rem;left:.7rem}.projects-card__body{z-index:1;flex-direction:column;flex:1;gap:.55rem;min-width:0;padding:1rem 1.05rem 1.05rem;display:flex;position:relative}.projects-card__kicker{color:var(--accent);letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:.7rem;font-weight:700}.projects-card__body h3{font-family:var(--font-sans);letter-spacing:-.03em;margin:0;font-size:1.2rem;line-height:1.15}.projects-card__body>p{color:var(--muted);margin:0;font-size:.9rem;line-height:1.5}.projects-card__body .tags{margin-top:.15rem}.projects-card__footer{justify-content:space-between;align-items:center;gap:.75rem;margin-top:auto;padding-top:.55rem;display:flex}.projects-card__links{flex-wrap:wrap;gap:.75rem;display:flex}.projects-card__links a{color:var(--muted);align-items:center;gap:.35rem;font-size:.78rem;font-weight:600;display:inline-flex}.projects-card__links a:hover{color:var(--accent)}.projects-card__links svg{width:.95rem;height:.95rem}.projects-card__open{border:1px solid color-mix(in srgb, var(--accent) 55%, var(--line));width:2.55rem;height:2.55rem;color:var(--accent);cursor:pointer;background:0 0;border-radius:999px;flex:none;place-items:center;transition:background .2s,border-color .2s,box-shadow .2s,color .2s;display:grid}.projects-card__open:hover,.projects-card__open:focus-visible{color:var(--text);border-color:var(--accent);background:color-mix(in srgb, var(--accent) 16%, transparent);box-shadow:0 0 18px color-mix(in srgb, var(--accent) 22%, transparent)}.projects-empty{color:var(--muted);margin:.4rem 0 0}.projects-pagination{justify-content:center;align-items:center;gap:.4rem;margin-top:.35rem;display:flex}.projects-pagination button{border:1px solid var(--line);min-width:2.2rem;height:2.2rem;color:var(--muted);font:inherit;cursor:pointer;background:0 0;place-items:center;padding:0 .55rem;font-size:.82rem;font-weight:600;display:grid}.projects-pagination button:disabled{opacity:.4;cursor:not-allowed}.projects-pagination button.is-active,.projects-pagination button:not(:disabled):hover{color:var(--text);border-color:color-mix(in srgb, var(--accent) 55%, var(--line));background:color-mix(in srgb, var(--accent) 18%, transparent)}.project-modal{z-index:200;background:color-mix(in srgb, var(--bg) 48%, #0000009e);backdrop-filter:blur(12px);place-items:center;padding:1rem;animation:.22s project-modal-in;display:grid;position:fixed;inset:0;overflow:hidden}[data-theme=light] .project-modal{background:color-mix(in srgb, var(--bg) 55%, #28182447)}.project-modal__dialog{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));width:min(68rem,100%);max-height:min(92dvh,56rem);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 12%, transparent), 0 24px 80px #00000073, var(--glow);outline:none;flex-direction:column;animation:.28s cubic-bezier(.22,1,.36,1) project-dialog-in;display:flex;overflow:hidden}[data-theme=light] .project-modal__dialog{box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 14%, transparent), 0 24px 64px #301c2829, var(--glow)}.project-modal__body{z-index:1;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--accent) 45%, transparent) transparent;flex-direction:column;flex:auto;gap:1.15rem;min-height:0;padding:1.15rem 1.25rem 1.3rem;display:flex;position:relative;overflow:hidden auto}.project-modal__body::-webkit-scrollbar{width:8px}.project-modal__body::-webkit-scrollbar-track{background:0 0}.project-modal__body::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--accent) 45%, transparent);background-clip:padding-box;border:2px solid #0000;border-radius:999px}.project-modal__top{flex:none;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.project-modal__year{color:var(--accent);letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:700}.project-modal__close{color:var(--accent);font:inherit;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;align-items:center;gap:.55rem;margin:0;padding:0;font-size:.72rem;font-weight:700;display:inline-flex}.project-modal__close-icon{border:1px solid color-mix(in srgb, var(--accent) 55%, var(--line));width:1.85rem;height:1.85rem;color:var(--accent);place-items:center;transition:border-color .2s,box-shadow .2s;display:grid}.project-modal__close:hover .project-modal__close-icon,.project-modal__close:focus-visible .project-modal__close-icon{border-color:var(--accent);box-shadow:0 0 14px color-mix(in srgb, var(--accent) 28%, transparent)}.project-modal__hero{grid-template-columns:minmax(16rem,.9fr) minmax(18rem,1.2fr);align-items:stretch;gap:1.35rem 1.5rem;min-width:0;display:grid}.project-modal__copy{flex-direction:column;gap:.75rem;min-width:0;display:flex}.project-modal__title{font-family:var(--font-sans);letter-spacing:-.04em;margin:0;font-size:clamp(1.85rem,3.4vw,2.55rem);font-weight:700;line-height:1.05}.project-modal__category{border:1px solid color-mix(in srgb, var(--accent) 45%, var(--line));width:fit-content;max-width:100%;color:var(--accent);letter-spacing:.14em;text-transform:uppercase;border-radius:999px;align-items:center;margin:0;padding:.28rem .7rem;font-size:.68rem;font-weight:700;display:inline-flex}.project-modal__description{color:var(--text);max-width:34rem;margin:0;font-size:.95rem;line-height:1.6}.project-modal__stacks{gap:.65rem;margin-top:auto;padding-top:.35rem;display:grid}.project-stack{flex-wrap:wrap;gap:.65rem .75rem;margin:0;padding:0;list-style:none;display:flex}.project-stack__item{border:1px solid color-mix(in srgb, var(--accent) 42%, var(--line));background:color-mix(in srgb, var(--bg) 55%, transparent);color:var(--text);align-items:stretch;display:inline-flex;transform:skew(-14deg)}.project-stack__inner{white-space:nowrap;align-items:center;gap:.45rem;min-height:2.1rem;padding:.35rem .95rem;font-size:.82rem;font-weight:600;display:inline-flex;transform:skew(14deg)}.project-stack__inner img{object-fit:contain;flex:none;width:1rem;height:1rem}[data-theme=light] .project-stack__item{background:color-mix(in srgb, var(--bg) 40%, white);border-color:color-mix(in srgb, var(--accent) 48%, var(--line))}[data-theme=light] .project-stack__inner img{filter:saturate(1.35)contrast(1.12)brightness(.92)}.project-modal__gallery{grid-template-rows:minmax(0,1fr) auto;align-content:start;gap:.75rem;min-width:0;display:grid}.project-modal__stage{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--line));background:linear-gradient(145deg, color-mix(in srgb, var(--accent) 10%, transparent), transparent 45%), color-mix(in srgb, var(--bg) 70%, transparent);aspect-ratio:16/10;box-shadow:0 0 28px color-mix(in srgb, var(--accent) 14%, transparent);position:relative;overflow:hidden}.project-modal__track{will-change:transform;width:100%;height:100%;transition:transform .45s cubic-bezier(.22,1,.36,1);display:flex}.project-modal__slide{flex:0 0 100%;width:100%;height:100%;margin:0;position:relative}.project-modal__slide img{object-fit:cover;user-select:none;pointer-events:none;width:100%;height:100%;display:block}.project-thumbs{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.45rem;min-width:0;display:grid}.project-thumbs__track{scroll-behavior:smooth;scrollbar-width:none;gap:.45rem;min-width:0;padding-bottom:.1rem;display:flex;overflow:auto hidden}.project-thumbs__track::-webkit-scrollbar{display:none}.project-thumbs__item{border:1px solid var(--line);background:color-mix(in srgb, var(--bg) 70%, transparent);cursor:pointer;flex:0 0 3.6rem;width:3.6rem;height:3.6rem;padding:0;transition:border-color .2s,box-shadow .2s,transform .2s;position:relative;overflow:hidden}.project-thumbs__item img{object-fit:cover;width:100%;height:100%;display:block}.project-thumbs__item.is-active,.project-thumbs__item:hover{border-color:color-mix(in srgb, var(--accent) 75%, var(--line));box-shadow:0 0 12px color-mix(in srgb, var(--accent) 28%, transparent);transform:translateY(-1px)}.project-thumbs__nav{width:1.7rem;height:1.7rem;color:var(--accent);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid}.project-thumbs__nav:hover,.project-thumbs__nav:focus-visible{color:var(--text);filter:drop-shadow(0 0 8px color-mix(in srgb, var(--accent) 35%, transparent))}.project-features{border:1px solid color-mix(in srgb, var(--accent) 28%, var(--line));background:color-mix(in srgb, var(--bg) 42%, transparent);grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem 1.2rem;margin:0;padding:1rem 1.05rem;list-style:none;display:grid}.project-features__item{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.7rem;min-width:0;display:grid}.project-features__icon{width:2.35rem;height:2.35rem;color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);clip-path:polygon(50% 0,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%);box-shadow:0 0 16px color-mix(in srgb, var(--accent) 18%, transparent);place-items:center;display:grid}.project-features__icon svg{width:1.05rem;height:1.05rem}.project-features__item h3{letter-spacing:-.02em;margin:0 0 .25rem;font-size:.92rem;font-weight:700;line-height:1.25}.project-features__item p{color:var(--muted);margin:0;font-size:.8rem;line-height:1.45}.project-modal__actions{flex:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.project-modal__btn{gap:.55rem;width:100%;min-height:2.85rem;font-size:.72rem}.project-modal__btn--ghost{border-color:color-mix(in srgb, var(--accent) 55%, var(--line));color:var(--text);background:0 0}.project-modal__btn--ghost:hover{border-color:var(--accent);box-shadow:0 0 18px color-mix(in srgb, var(--accent) 18%, transparent)}.project-modal__btn--solid{border-color:color-mix(in srgb, var(--accent) 45%, white);color:#fff;background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 34%, transparent), color-mix(in srgb, var(--accent-2) 30%, transparent));box-shadow:0 0 22px color-mix(in srgb, var(--accent) 18%, transparent)}.project-modal__btn--solid:hover{filter:brightness(1.08)}[data-theme=light] .project-modal__btn--solid{border-color:color-mix(in srgb, var(--accent) 55%, #fff);background:linear-gradient(120deg, color-mix(in srgb, var(--accent) 96%, #6e2040), color-mix(in srgb, var(--accent-2) 85%, var(--accent)));box-shadow:0 8px 22px color-mix(in srgb, var(--accent) 30%, transparent), inset 0 1px 0 #ffffff47}@keyframes project-modal-in{0%{opacity:0}to{opacity:1}}@keyframes project-dialog-in{0%{opacity:0;transform:translateY(.6rem)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.project-modal__track{transition:none}.project-thumbs__track{scroll-behavior:auto}}.prose{max-width:44rem}.prose p{font-size:1.02rem}.prose a,.lede a{color:var(--accent);text-underline-offset:.18em;text-decoration:underline}.form{gap:.9rem;max-width:34rem;display:grid}.form label{letter-spacing:.06em;text-transform:uppercase;gap:.35rem;font-size:.88rem;font-weight:600;display:grid}.form input,.form textarea{color:var(--text);background:color-mix(in srgb, var(--bg) 70%, transparent);border:1px solid var(--line);padding:.75rem .85rem}.form input:focus,.form textarea:focus{border-color:var(--accent);box-shadow:var(--glow);outline:none}.form textarea{resize:vertical;min-height:8rem}.form-status{color:var(--muted);margin:0}.sakura{pointer-events:none;z-index:2;position:fixed;inset:0;overflow:hidden}.sakura__petal{width:var(--size,10px);height:var(--size,10px);opacity:.42;animation:petal-fall var(--dur,12s) linear var(--delay,0s) infinite;background:linear-gradient(135deg,#ffe8f4eb,#d6b0cc8c);border-radius:.15rem 70%;position:absolute;top:-8vh;box-shadow:0 0 10px 3px #e4c4dc47}.sparkle{width:var(--size,8px);height:var(--size,8px);color:#fff4fae6;animation:twinkle var(--dur,2.8s) ease-in-out var(--delay,0s) infinite;filter:drop-shadow(0 0 6px #ecd6e8b3);position:absolute}.sparkle:before,.sparkle:after{content:"";background:currentColor;border-radius:999px;position:absolute;top:50%;left:50%;translate:-50% -50%}.sparkle:before{width:1.4px;height:100%}.sparkle:after{width:100%;height:1.4px}.bokeh{width:var(--size,10px);height:var(--size,10px);filter:blur(1.2px);opacity:.45;animation:bokeh-drift var(--dur,14s) ease-in-out var(--delay,0s) infinite;background:radial-gradient(circle,#fff0f8b3,#d6badc14 62%,#0000 70%);border-radius:50%;position:absolute}.glint{width:var(--size,4px);height:var(--size,4px);animation:twinkle var(--dur,2.6s) ease-in-out var(--delay,0s) infinite;background:#fff6fce0;border-radius:50%;position:absolute;box-shadow:0 0 8px 2px #e4c8dc6b}.hero-fx{pointer-events:none;z-index:2;position:absolute;inset:0;overflow:hidden}.hero-fx .sakura__petal{animation-name:petal-cross}[data-theme=light] .sparkle{color:#b83f6ac7;filter:drop-shadow(0 0 5px #b83f6a66)}[data-theme=light] .sakura__petal{opacity:.58;background:linear-gradient(135deg,#ffbed2f2,#b83f6a9e);box-shadow:0 0 10px 2px #b8507847}[data-theme=light] body.is-home .sakura__petal{opacity:.28}[data-theme=light] .bokeh{opacity:.58;background:radial-gradient(circle,#ec96b2b3,#a86ea01f 62%,#0000 70%)}[data-theme=light] .glint{background:#b83f6acc;box-shadow:0 0 8px 2px #b8507866}[data-theme=light] .panel-jp{text-shadow:none}[data-theme=light] .form input,[data-theme=light] .form textarea{background:#ffffffb8}[data-theme=light] .projects-filters__btn.is-active{background:color-mix(in srgb, var(--accent) 12%, white);box-shadow:0 4px 14px color-mix(in srgb, var(--accent) 12%, transparent)}[data-theme=light] .projects-sort select{background:#ffffffc7}[data-theme=light] .social-pill{background:color-mix(in srgb, var(--bg-panel) 80%, white)}@keyframes wheel{0%,to{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(6px)}}@keyframes twinkle{0%,to{opacity:.12;transform:scale(.45)rotate(0)}45%{opacity:.95;transform:scale(1)rotate(18deg)}}@keyframes bokeh-drift{0%,to{opacity:.18;transform:translate(0,0)scale(.85)}50%{transform:translate3d(var(--drift,18px), -22px, 0) scale(1.15);opacity:.5}}@keyframes petal-cross{0%{opacity:0;transform:translate(0,0)rotate(0)}18%{opacity:.42}to{transform:translate3d(var(--drift,24px), 72%, 0) rotate(300deg);opacity:0}}@media (width<=1100px){body.is-home{height:auto;max-height:none;overflow:hidden auto}[data-theme=light] body.is-home{background-attachment:scroll}body.is-home .scroll-hint{display:grid}.page-home{grid-template-columns:1fr}.page-home>.panel{height:auto;min-height:0;overflow:visible}.projects-board--grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skills-panel .panel__body,.experience-panel .panel__body{height:auto;overflow:visible}.skills-panel .skill-list,.experience-panel .timeline{overflow:visible;mask-image:none}.hero-panel{order:-1;min-height:min(72vh,38rem)}.hero-panel .panel__body{height:auto;min-height:inherit}.footer-inner{grid-template-columns:1fr;justify-items:start}.footer-contacts{width:100%}.social-pill{justify-self:start}}@media (width<=960px){.site-header{z-index:40}.header-inner{z-index:1;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.65rem;min-height:3.6rem;padding:.55rem .85rem;position:relative}.wordmark{letter-spacing:.14em;min-width:0;font-size:.82rem}.wordmark span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.header-actions{gap:.45rem}.nav-toggle{display:grid}.nav{z-index:45;border:1px solid var(--line);background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:blur(16px);flex-direction:column;align-items:stretch;gap:.15rem;padding:.55rem;display:none;position:absolute;top:calc(100% + .45rem);left:0;right:0;box-shadow:0 18px 40px #00000059}[data-theme=light] .nav{background:color-mix(in srgb, var(--bg-panel) 92%, white);box-shadow:0 16px 36px #301c281f}.site-header.is-nav-open .nav{display:flex}.nav a{letter-spacing:.14em;border:1px solid #0000;padding:.75rem .85rem;font-size:.78rem}.nav a:hover,.nav a[aria-current=page]{border-color:color-mix(in srgb, var(--accent) 35%, var(--line));background:color-mix(in srgb, var(--accent) 10%, transparent)}.nav a[aria-current=page]:after{display:none}body.is-nav-open{overflow:hidden}}@media (width<=760px){.footer-contacts{grid-template-columns:1fr}.hero-name{font-size:3.4rem}.page-inner .skill-list,.projects-board--grid,.projects-card--list,.projects-card--list{grid-template-columns:1fr}.projects-card--list .projects-card__media{aspect-ratio:16/10;height:auto;max-height:14rem}.project-modal__hero,.project-features,.project-modal__actions{grid-template-columns:1fr}.project-modal__stacks{margin-top:.15rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.sakura__petal,.sparkle,.bokeh,.glint,.mouse i,.skill-glyph__fill,.skill-bar__fill,.skill-bar__fill:after{animation:none}.skill-glyph__fill{stroke-dashoffset:calc(var(--ring,97.4) - (var(--ring,97.4) * var(--level) / 100))}.skill-bar__fill{width:calc(var(--level) * 1%)}}.skills-realm{gap:1rem;display:grid}.skills-hero h1{font-family:var(--font-display);letter-spacing:.02em;font-weight:400}.skills-sky-panel .panel__body{padding:1.2rem 1rem 1.4rem}.skills-sky{--orbit:72s;isolation:isolate;aspect-ratio:1;width:min(100%,38rem);margin:.4rem auto .2rem;position:relative}.skills-sky__fx{pointer-events:none;z-index:0;position:absolute;inset:8%}.skills-sky__aura{z-index:0;pointer-events:none;background:conic-gradient(from 20deg, transparent 0%, color-mix(in srgb, var(--accent) 28%, transparent) 14%, transparent 30%, color-mix(in srgb, var(--accent-2) 22%, transparent) 52%, transparent 68%, color-mix(in srgb, var(--accent) 16%, transparent) 84%, transparent 100%);filter:blur(16px);opacity:.8;border-radius:50%;animation:26s linear infinite sky-spin;position:absolute;inset:10%}.skills-sky__lines{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.skills-sky__orbit{fill:none;stroke:color-mix(in srgb, var(--accent) 32%, transparent);stroke-width:.28px;stroke-dasharray:1.6 1.8;transform-origin:50%;animation:48s linear infinite sky-spin}.skills-sky__orbit--inner{stroke:color-mix(in srgb, var(--accent-2) 40%, transparent);stroke-dasharray:.7 1.4;animation-duration:32s;animation-direction:reverse}.skills-sky__comet{fill:none;stroke:color-mix(in srgb, var(--accent) 88%, white);stroke-width:.7px;stroke-linecap:round;stroke-dasharray:10 228.8;filter:drop-shadow(0 0 2px color-mix(in srgb, var(--accent) 70%, transparent));animation:7.5s linear infinite sky-comet}.skills-sky__comet--inner{stroke:color-mix(in srgb, var(--accent-2) 80%, white);stroke-width:.5px;stroke-dasharray:6 132.2;animation-name:sky-comet-inner;animation-duration:11s;animation-direction:reverse}.skills-sky__ticks{transform-origin:50%;animation:90s linear infinite sky-spin}.skills-sky__tick{stroke:color-mix(in srgb, var(--accent) 38%, transparent);stroke-width:.22px;stroke-linecap:round}.skills-sky__tick.is-major{stroke:color-mix(in srgb, var(--accent) 70%, transparent);stroke-width:.34px}.skills-sky__wheel{z-index:3;transform-origin:50%;pointer-events:none;animation:sky-spin var(--orbit) linear infinite;position:absolute;inset:0}.skills-sky:hover .skills-sky__wheel,.skills-sky:focus-within .skills-sky__wheel,.skills-sky:hover .skill-star,.skills-sky:focus-within .skill-star{animation-play-state:paused}.skills-sky__ray{stroke:color-mix(in srgb, var(--skill-color,var(--accent)) 62%, var(--accent));stroke-width:.22px;stroke-linecap:round;opacity:.7;stroke-dasharray:42;stroke-dashoffset:42px;animation:1.15s cubic-bezier(.22,1,.36,1) forwards sky-draw;animation-delay:var(--delay,0s)}.skills-sky__flow{stroke:color-mix(in srgb, var(--skill-color,var(--accent)) 80%, white);stroke-width:.45px;stroke-linecap:round;stroke-dasharray:2.2 36;opacity:0;animation:2.6s linear infinite sky-flow;animation-delay:var(--delay,0s)}.skills-sky__chord{stroke:color-mix(in srgb, var(--accent) 42%, transparent);stroke-width:.16px;stroke-linecap:round;stroke-dasharray:50;stroke-dashoffset:50px;opacity:.75;animation:1.3s cubic-bezier(.22,1,.36,1) forwards sky-draw;animation-delay:var(--delay,0s)}.skills-sky__seal{z-index:4;background:radial-gradient(circle at 50% 38%, color-mix(in srgb, var(--accent) 28%, transparent), transparent 58%), color-mix(in srgb, var(--bg) 78%, transparent);border:1px solid color-mix(in srgb, var(--accent) 48%, transparent);width:7.4rem;height:7.4rem;box-shadow:0 0 0 8px color-mix(in srgb, var(--accent) 7%, transparent), 0 0 36px color-mix(in srgb, var(--accent) 22%, transparent), inset 0 0 24px color-mix(in srgb, var(--accent-2) 12%, transparent);border-radius:50%;place-items:center;animation:4.8s ease-in-out infinite seal-pulse;display:grid;position:absolute;top:50%;left:50%;translate:-50% -50%}.skills-sky__halo{z-index:0;border:1px dashed color-mix(in srgb, var(--accent) 55%, transparent);border-radius:50%;animation:18s linear infinite sky-spin;position:absolute;inset:-.85rem}.skills-sky__halo--inner{border-style:dotted;border-color:color-mix(in srgb, var(--accent-2) 70%, transparent);animation-duration:12s;animation-direction:reverse;inset:-.28rem}.skills-sky__jp{z-index:1;font-family:var(--font-jp);color:var(--accent);text-shadow:0 0 18px color-mix(in srgb, var(--accent) 45%, transparent);font-size:2.1rem;line-height:1;position:relative}.skills-sky__count{z-index:1;letter-spacing:.18em;margin-top:.1rem;font-size:.72rem;font-weight:700;position:relative}.skills-sky__label{z-index:1;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);font-size:.58rem;position:relative}.skill-star{--fill:color-mix(in srgb, var(--skill-color) 80%, var(--text));z-index:3;width:4.6rem;color:var(--text);pointer-events:auto;transform-origin:50%;animation:star-counter var(--orbit) linear infinite;position:absolute;transform:translate(-50%,-50%)}.skill-star__face{opacity:0;animation:.9s cubic-bezier(.22,1,.36,1) forwards star-rise;animation-delay:var(--delay,0s);justify-items:center;gap:.35rem;display:grid;position:relative}[data-theme=light] .skill-star{--fill:color-mix(in srgb, var(--skill-color) 92%, #1a0a12)}.skill-star img{z-index:1;object-fit:contain;background:color-mix(in srgb, var(--bg) 70%, transparent);border:1px solid color-mix(in srgb, var(--fill) 55%, var(--line));width:2.7rem;height:2.7rem;box-shadow:0 0 16px color-mix(in srgb, var(--fill) 28%, transparent);border-radius:50%;padding:.55rem;transition:transform .25s,box-shadow .25s;position:relative}.skill-star img[data-plate=dark]{background:#0a0a0a;border-color:#fff3;padding:.48rem}.skill-star img[data-plate=light]{background:#f4f1ea;border-color:#281c161f}[data-theme=light] .skill-star img{filter:saturate(1.35)contrast(1.12)brightness(.92);box-shadow:0 0 16px color-mix(in srgb, var(--fill) 36%, transparent)}[data-theme=light] .skill-star img[data-plate=light]{background:#e4dbcf;border-color:#281c1629}[data-theme=light] .skill-star img.invert-on-dark{filter:saturate(1.4)contrast(1.15)brightness(.88)}.skill-star__glow{background:radial-gradient(circle, color-mix(in srgb, var(--skill-color) 45%, transparent), transparent 70%);filter:blur(4px);border-radius:50%;width:2.9rem;height:2.9rem;animation:3.2s ease-in-out infinite star-breathe;position:absolute;top:.15rem;left:50%;translate:-50%}.skill-star b{letter-spacing:.02em;text-align:center;max-width:7.5rem;text-shadow:0 4px 16px color-mix(in srgb, var(--bg) 80%, transparent);font-size:.68rem;font-weight:600;line-height:1.25}.skill-star:hover img{box-shadow:0 0 22px color-mix(in srgb, var(--skill-color) 48%, transparent);transform:scale(1.08)}.skill-runes{top:calc(var(--space) + .35rem);z-index:4;flex-wrap:wrap;gap:.45rem;padding:.35rem 0;display:flex;position:sticky}.skill-rune{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-panel) 88%, transparent);min-height:2.35rem;color:var(--muted);font:inherit;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;backdrop-filter:blur(14px);align-items:center;gap:.45rem;padding:.3rem .85rem .3rem .95rem;font-size:.68rem;font-weight:700;display:inline-flex}.skill-rune small{border:1px solid color-mix(in srgb, var(--line) 80%, transparent);letter-spacing:0;min-width:1.35rem;height:1.2rem;color:var(--text);place-items:center;padding:0 .28rem;font-size:.62rem;display:grid}.skill-rune:hover,.skill-rune.is-active{color:var(--text);border-color:color-mix(in srgb, var(--accent) 70%, var(--line));box-shadow:var(--glow)}.skill-rune.is-active{background:color-mix(in srgb, var(--accent) 14%, var(--bg-panel))}.skill-chapter{gap:.9rem;scroll-margin-top:4.5rem;display:grid}.skill-chapter.is-hidden{display:none}.skill-chapter__head .panel__body{justify-content:space-between;align-items:end;gap:1rem;padding:1.1rem 1.2rem 1.15rem;display:flex}.skill-chapter__copy h2{font-family:var(--font-display);margin:.15rem 0 0;font-size:clamp(1.8rem,3.5vw,2.6rem);font-weight:400;line-height:1}.skill-chapter__copy .lede{max-width:32rem;margin-top:.45rem;font-size:.95rem}.skill-chapter__count{color:var(--muted);letter-spacing:.18em;text-transform:uppercase;justify-items:end;margin:0 0 .2rem;font-size:.7rem;display:grid}.skill-chapter__count b{color:var(--accent);font-family:var(--font-display);letter-spacing:0;text-shadow:0 0 16px color-mix(in srgb, var(--accent) 35%, transparent);font-size:2rem;font-weight:400;line-height:1}.skill-pact--wide{grid-column:1/-1}.skill-pact{border:1px solid color-mix(in srgb, var(--pact-accent) 28%, var(--line));background:radial-gradient(280px 140px at 0% -10%, color-mix(in srgb, var(--pact-accent) 18%, transparent), transparent 58%), var(--bg-panel);box-shadow:0 12px 36px #00000029, inset 0 0 40px color-mix(in srgb, var(--pact-accent) 6%, transparent);backdrop-filter:blur(18px)saturate(1.12);opacity:0;gap:.85rem;padding:1.15rem 1.1rem 1.05rem;display:grid;position:relative;overflow:hidden;transform:translateY(16px)}.skill-chapter.is-inview .skill-pact{animation:.8s cubic-bezier(.22,1,.36,1) forwards sigil-rise;animation-delay:var(--delay,0s)}.skill-pact__head{grid-template-columns:auto 1fr auto;align-items:center;gap:.85rem;display:grid}.skill-pact__seal{border:1px solid color-mix(in srgb, var(--pact-accent) 55%, transparent);background:radial-gradient(circle at 40% 32%, color-mix(in srgb, var(--pact-accent) 28%, transparent), transparent 62%), color-mix(in srgb, var(--bg) 70%, transparent);width:3.4rem;height:3.4rem;box-shadow:0 0 18px color-mix(in srgb, var(--pact-accent) 22%, transparent);border-radius:50%;place-items:center;display:grid}.skill-pact__seal b{font-family:var(--font-sans);letter-spacing:.12em;color:var(--pact-accent);text-shadow:0 0 10px color-mix(in srgb, var(--pact-accent) 40%, transparent);font-size:.72rem;font-weight:800}.skill-pact__copy h3{font-family:var(--font-display);margin:.1rem 0 0;font-size:1.55rem;font-weight:400;line-height:1}.skill-pact__kicker{color:var(--muted);letter-spacing:.2em;text-transform:uppercase;margin:.12rem 0 0;font-size:.64rem;font-weight:700}.skill-pact__level{color:var(--muted);letter-spacing:.16em;text-transform:uppercase;justify-items:end;margin:0;font-size:.62rem;display:grid}.skill-pact__level em{font-family:var(--font-display);letter-spacing:0;color:var(--pact-accent);text-shadow:0 0 14px color-mix(in srgb, var(--pact-accent) 35%, transparent);font-size:1.7rem;font-style:normal;font-weight:400;line-height:1}.skill-pact__summary{color:var(--muted);margin:0;font-size:.88rem;line-height:1.45}.pact-chain{border-top:1px solid color-mix(in srgb, var(--pact-accent) 16%, var(--line));align-items:start;margin:.15rem 0 0;padding:.7rem .35rem .15rem;list-style:none;display:flex}.pact-chain li{flex:1 1 0;justify-items:center;gap:.4rem;min-width:0;display:grid;position:relative}.pact-chain li:not(:last-child):after{content:"";background:linear-gradient(90deg, color-mix(in srgb, var(--pact-accent) 70%, transparent), color-mix(in srgb, var(--pact-accent) 12%, transparent));width:calc(100% - 2.3rem);height:1px;box-shadow:0 0 8px color-mix(in srgb, var(--pact-accent) 30%, transparent);position:absolute;top:1.15rem;left:calc(50% + 1.15rem)}.pact-bead{z-index:1;border:1px solid color-mix(in srgb, var(--skill-color,var(--pact-accent)) 50%, var(--line));background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--skill-color,var(--pact-accent)) 22%, transparent), transparent 64%), color-mix(in srgb, var(--bg) 78%, transparent);width:2.3rem;height:2.3rem;box-shadow:0 0 12px color-mix(in srgb, var(--skill-color,var(--pact-accent)) 22%, transparent);border-radius:50%;place-items:center;transition:transform .2s,box-shadow .2s;display:grid;position:relative}.pact-bead:hover{box-shadow:0 0 18px color-mix(in srgb, var(--skill-color,var(--pact-accent)) 40%, transparent);transform:translateY(-2px)scale(1.06)}.pact-bead img{object-fit:contain;width:1.15rem;height:1.15rem}[data-theme=light] .pact-bead{background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--skill-color,var(--pact-accent)) 32%, transparent), transparent 64%), color-mix(in srgb, var(--bg) 60%, #ddd4ce);box-shadow:0 0 14px color-mix(in srgb, var(--skill-color,var(--pact-accent)) 28%, transparent)}[data-theme=light] .pact-bead img{filter:saturate(1.35)contrast(1.12)brightness(.92)}[data-theme=light] .pact-bead img.invert-on-dark{filter:saturate(1.4)contrast(1.15)brightness(.88)}.pact-bead[data-plate=dark]{background:#0a0a0a;border-color:#ffffff2e}html:not([data-theme=light]) .pact-bead img.invert-on-dark{filter:invert()}.pact-bead__name{max-width:5.6rem;color:var(--muted);letter-spacing:.04em;text-align:center;font-size:.62rem;font-weight:600;line-height:1.25}.skill-pact:hover{border-color:color-mix(in srgb, var(--pact-accent) 55%, var(--line));box-shadow:0 0 28px color-mix(in srgb, var(--pact-accent) 16%, transparent), inset 0 0 40px color-mix(in srgb, var(--pact-accent) 8%, transparent)}.skill-lattice{grid-template-columns:repeat(auto-fill,11rem);justify-content:start;gap:.85rem;padding:.15rem .1rem .35rem;display:grid}.skill-sigil{--fill:color-mix(in srgb, var(--skill-color) 78%, var(--text));text-align:center;border:1px solid color-mix(in srgb, var(--skill-color) 22%, var(--line));background:radial-gradient(circle at 50% 18%, color-mix(in srgb, var(--skill-color) 16%, transparent), transparent 52%), var(--bg-panel);width:11rem;height:16.4rem;box-shadow:0 10px 32px #00000029, inset 0 0 28px color-mix(in srgb, var(--skill-color) 6%, transparent);backdrop-filter:blur(18px)saturate(1.12);opacity:0;grid-template-rows:7.6rem 2.4rem auto minmax(2.2rem,2.2rem);align-content:start;justify-items:center;gap:.4rem;padding:.9rem .65rem .85rem;scroll-margin-top:5.5rem;display:grid;overflow:hidden;transform:translateY(18px)scale(.96)}[data-theme=light] .skill-sigil{--fill:color-mix(in srgb, var(--skill-color) 92%, #1a0a12)}.skill-sigil.is-lit{animation:.85s cubic-bezier(.22,1,.36,1) forwards sigil-rise;animation-delay:var(--delay,0s)}.skill-sigil__orb{width:7.6rem;height:7.6rem;position:relative}.skill-sigil__ring{width:100%;height:100%;overflow:visible}.skill-sigil__halo,.skill-sigil__runes,.skill-sigil__track,.skill-sigil__fill{fill:none;transform-origin:50%}.skill-sigil__core{fill:color-mix(in srgb, var(--bg) 82%, var(--skill-color) 12%);stroke:color-mix(in srgb, var(--skill-color) 32%, transparent);stroke-width:1px;transform-origin:50%}.skill-sigil__halo{stroke:color-mix(in srgb, var(--skill-color) 22%, transparent);stroke-width:.8px;stroke-dasharray:3 5}.skill-sigil__runes{stroke:color-mix(in srgb, var(--skill-color) 38%, var(--accent-2));stroke-width:1.1px;stroke-dasharray:1.4 3.2 .6 2.4;opacity:.7}.skill-sigil.is-lit .skill-sigil__halo{animation:22s linear infinite sky-spin;animation-delay:var(--delay,0s)}.skill-sigil.is-lit .skill-sigil__runes{animation:16s linear infinite reverse sky-spin;animation-delay:var(--delay,0s)}.skill-sigil__track{stroke:color-mix(in srgb, var(--skill-color) 28%, var(--line));stroke-width:5px}.skill-sigil__fill{stroke:var(--fill);stroke-width:5px;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100px;filter:drop-shadow(0 0 6px color-mix(in srgb, var(--fill) 55%, transparent));transform:rotate(-90deg)}.skill-sigil[data-plate=dark] .skill-sigil__core{fill:#0a0a0a;stroke:#ffffff29}.skill-sigil[data-plate=light] .skill-sigil__core{fill:#f4f1ea;stroke:#281c161f}[data-theme=light] .skill-sigil[data-plate=light] .skill-sigil__core{fill:#e4dbcf;stroke:#281c1629}.skill-sigil__icon{object-fit:contain;width:2.15rem;height:2.15rem;position:absolute;top:50%;left:50%;translate:-50% -58%}[data-theme=light] .skill-sigil__icon{filter:saturate(1.35)contrast(1.12)brightness(.92)}[data-theme=light] .skill-sigil__icon.invert-on-dark{filter:saturate(1.4)contrast(1.15)brightness(.88)}[data-theme=light] .skill-sigil__fill{filter:drop-shadow(0 0 7px color-mix(in srgb, var(--fill) 70%, transparent))}.skill-sigil[data-plate=dark] .skill-sigil__icon{width:2.35rem;height:2.35rem}.skill-sigil__mark{font-family:var(--font-jp);color:var(--fill);text-shadow:0 0 12px color-mix(in srgb, var(--fill) 45%, transparent);font-size:1.15rem;font-weight:700;line-height:1;position:absolute;top:50%;left:50%;translate:-50% -58%}.skill-sigil__jp{font-family:var(--font-jp);letter-spacing:.16em;color:color-mix(in srgb, var(--skill-color) 70%, var(--text));font-size:.62rem;position:absolute;bottom:1.55rem;left:50%;translate:-50%}.skill-sigil__name{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;width:100%;height:2.4rem;margin:0;font-size:.88rem;font-weight:650;line-height:1.25;display:-webkit-box;overflow:hidden}.skill-sigil__meta{color:var(--muted);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:.45rem;margin:0;font-size:.68rem;display:flex}.skill-sigil__pct{color:var(--fill);font-variant-numeric:tabular-nums;text-shadow:0 0 10px color-mix(in srgb, var(--fill) 40%, transparent)}.skill-sigil__note{width:100%;height:2.2rem;color:var(--muted);opacity:.82;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.75rem;line-height:1.35;display:-webkit-box;overflow:hidden}.skill-sigil:hover{border-color:color-mix(in srgb, var(--skill-color) 55%, var(--line));box-shadow:0 0 28px color-mix(in srgb, var(--skill-color) 18%, transparent), inset 0 0 32px color-mix(in srgb, var(--skill-color) 8%, transparent)}.skill-sigil:hover .skill-sigil__halo,.skill-sigil:hover .skill-sigil__runes{animation-duration:8s}.skill-sigil[data-tier=master]{box-shadow:0 10px 32px #00000029, 0 0 24px color-mix(in srgb, var(--skill-color) 14%, transparent), inset 0 0 28px color-mix(in srgb, var(--skill-color) 8%, transparent)}html:not([data-theme=light]) .skill-sigil__icon.invert-on-dark,html:not([data-theme=light]) .skill-star img.invert-on-dark{filter:invert()}[data-theme=light] .skill-pact{box-shadow:0 10px 28px #301c2814, inset 0 1px 0 #ffffffb3, inset 0 0 36px color-mix(in srgb, var(--pact-accent) 5%, transparent)}[data-theme=light] .skill-sigil{box-shadow:0 10px 28px #301c2814, inset 0 1px 0 #ffffffb3, inset 0 0 24px color-mix(in srgb, var(--skill-color) 5%, transparent)}[data-theme=light] .skill-sigil[data-tier=master]{box-shadow:0 10px 28px #301c2814, 0 0 20px color-mix(in srgb, var(--skill-color) 12%, transparent), inset 0 1px 0 #ffffffb3, inset 0 0 24px color-mix(in srgb, var(--skill-color) 6%, transparent)}[data-theme=light] .skill-star b{text-shadow:0 1px #ffffffb3}@keyframes sky-spin{to{transform:rotate(360deg)}}@keyframes star-counter{0%{transform:translate(-50%,-50%)rotate(0)}to{transform:translate(-50%,-50%)rotate(-360deg)}}@keyframes sky-draw{to{stroke-dashoffset:0}}@keyframes sky-comet{to{stroke-dashoffset:-238.8px}}@keyframes sky-comet-inner{to{stroke-dashoffset:-138.2px}}@keyframes sky-flow{0%{opacity:0;stroke-dashoffset:38px}15%{opacity:.95}85%{opacity:.95}to{opacity:0;stroke-dashoffset:-8px}}@keyframes seal-pulse{0%,to{box-shadow:0 0 0 8px color-mix(in srgb, var(--accent) 7%, transparent), 0 0 36px color-mix(in srgb, var(--accent) 22%, transparent), inset 0 0 24px color-mix(in srgb, var(--accent-2) 12%, transparent)}50%{box-shadow:0 0 0 11px color-mix(in srgb, var(--accent) 12%, transparent), 0 0 48px color-mix(in srgb, var(--accent) 32%, transparent), inset 0 0 28px color-mix(in srgb, var(--accent-2) 16%, transparent)}}@keyframes star-rise{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes star-breathe{0%,to{opacity:.45;transform:scale(.92)}50%{opacity:.9;transform:scale(1.08)}}@keyframes sigil-rise{0%{opacity:0;transform:translateY(18px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=760px){.skill-pact-board{grid-template-columns:1fr}.skill-pact__copy h3{font-size:1.3rem}.skills-sky{width:min(100%,22.5rem)}.skills-sky__seal{width:6.1rem;height:6.1rem}.skills-sky__jp{font-size:1.7rem}.skill-star{width:3.6rem}.skill-star img{width:2.3rem;height:2.3rem;padding:.42rem}.skill-star b{font-size:.58rem}.skill-chapter__head .panel__body{flex-direction:column;align-items:start}.skill-chapter__count{justify-items:start}.skill-lattice{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch}.skill-sigil{width:100%}}@media (width<=520px){.skill-lattice{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.skill-sigil{width:100%;height:16.4rem;padding:.8rem .45rem .75rem}}[data-theme=light] .skills-sky__aura{opacity:.55}@media (prefers-reduced-motion:reduce){.skills-sky__orbit,.skills-sky__ray,.skills-sky__flow,.skills-sky__chord,.skills-sky__comet,.skills-sky__ticks,.skills-sky__aura,.skills-sky__halo,.skills-sky__wheel,.skills-sky__seal,.skill-star,.skill-star__face,.skill-star__glow,.skill-sigil,.skill-sigil__halo,.skill-sigil__runes,.skill-sigil__fill,.skill-pact{animation:none}.skills-sky__ray,.skills-sky__chord{stroke-dashoffset:0}.skills-sky__flow{opacity:0}.skill-star__face,.skill-pact,.skill-sigil,.skill-chapter.is-inview .skill-pact,.skill-chapter.is-inview .skill-sigil{opacity:1;transform:none}.skill-sigil__fill{stroke-dashoffset:calc(100 - var(--level))}}
