:root{--bg: #ffffff;--surface: #f6f6f4;--surface-2: #eeeeec;--line: #e2e2df;--line-soft: #ececea;--fg: #141412;--fg-dim: #5c5c58;--fg-faint: #97968f;--shadow-sm: 0 2px 10px rgba(20, 20, 18, .06);--shadow-md: 0 10px 30px rgba(20, 20, 18, .09);--shadow-lg: 0 24px 60px rgba(20, 20, 18, .14);--invert-low: rgba(20, 20, 18, .06);--invert-low-strong: rgba(20, 20, 18, .1);--font-display: "Space Grotesk", "Helvetica Neue", Arial, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--gap: clamp(1.25rem, 4vw, 2.5rem);--radius: 26px;--radius-sm: 12px;--radius-lg: 34px;--scroll: 0;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}:root[data-theme=dark]{--bg: #0a0a0a;--surface: #131313;--surface-2: #1a1a1a;--line: #2a2a2a;--line-soft: #1e1e1e;--fg: #f4f4f2;--fg-dim: #9a9a95;--fg-faint: #5c5c58;--shadow-sm: 0 2px 10px rgba(0, 0, 0, .35);--shadow-md: 0 10px 30px rgba(0, 0, 0, .45);--shadow-lg: 0 24px 60px rgba(0, 0, 0, .55);--invert-low: rgba(244, 244, 242, .08);--invert-low-strong: rgba(244, 244, 242, .13)}*,*:before,*:after{box-sizing:inherit}html{scroll-padding-top:env(safe-area-inset-top,0px);scroll-behavior:smooth}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-display);-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background .25s ease,color .25s ease}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}.decor-blob,.decor-line,.decor-grid,.peek-photo{transform:none!important;animation:none!important}}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,textarea{font-family:inherit;color:inherit}.container{width:100%;max-width:1180px;margin:0 auto;padding-left:var(--gap);padding-right:var(--gap)}.mono-label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.03em;color:var(--fg-faint)}.mark{width:22px;height:22px;position:relative;flex:none}.mark span{position:absolute;top:50%;left:50%;width:2px;height:100%;background:var(--fg);transform-origin:center;border-radius:1px}.mark span:nth-child(1){transform:translate(-50%,-50%) rotate(0)}.mark span:nth-child(2){transform:translate(-50%,-50%) rotate(60deg)}.mark span:nth-child(3){transform:translate(-50%,-50%) rotate(120deg)}.nav{position:sticky;top:0;z-index:20;padding-top:env(safe-area-inset-top,0px);background:#ffffffc7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line-soft);transition:background .25s ease,border-color .25s ease}:root[data-theme=dark] .nav{background:#0a0a0ad1}.nav-row{display:flex;align-items:center;justify-content:space-between;height:60px;gap:.8rem}.nav-id{display:flex;align-items:center;gap:.6rem;font-size:.95rem;font-weight:600}.nav-links{display:none;gap:1.5rem;font-family:var(--font-mono);font-size:.76rem;color:var(--fg-dim)}.nav-links a{transition:color .15s ease}.nav-links a:hover,.nav-links a:focus-visible{color:var(--fg)}@media (min-width: 720px){.nav-links{display:flex;align-items:center}}.nav-right{display:flex;align-items:center;gap:.7rem}.nav-cta{border:1px solid var(--line);padding:.4rem .85rem;font-family:var(--font-mono);font-size:.75rem;border-radius:var(--radius-sm);transition:border-color .15s ease,background .15s ease}.nav-cta:hover,.nav-cta:focus-visible{border-color:var(--fg-dim);background:var(--surface)}.theme-toggle{width:2.3rem;height:2.3rem;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;background:var(--surface);cursor:pointer;transition:transform .2s ease,background .2s ease,border-color .2s ease;flex:none}.theme-toggle:hover{border-color:var(--fg-dim)}.theme-toggle:active{transform:scale(.92)}.theme-toggle svg{width:1.05rem;height:1.05rem}@media (max-width: 559px){.nav-cta{display:none}}.nav-burger{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:2.3rem;height:2.3rem;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--surface);cursor:pointer;flex:none;transition:border-color .2s ease,background .2s ease,transform .15s ease}.nav-burger:hover{border-color:var(--fg-dim)}.nav-burger:active{transform:scale(.92)}.nav-burger span{display:block;width:15px;height:1.5px;border-radius:1px;background:var(--fg);transition:transform .28s cubic-bezier(.4,0,.2,1),opacity .18s ease}.nav-burger-open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.nav-burger-open span:nth-child(2){opacity:0;transform:scaleX(0)}.nav-burger-open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}@media (min-width: 720px){.nav-burger{display:none}}.nav-mobile{position:fixed;top:calc(60px + env(safe-area-inset-top,0px));left:0;right:0;z-index:25;background:var(--bg);border-bottom:1px solid var(--line-soft);box-shadow:var(--shadow-md);transform:translateY(-10px);opacity:0;visibility:hidden;transition:transform .26s cubic-bezier(.4,0,.2,1),opacity .2s ease,visibility 0s linear .26s;will-change:transform,opacity}.nav-mobile-open{transform:translateY(0);opacity:1;visibility:visible;transition:transform .26s cubic-bezier(.4,0,.2,1),opacity .2s ease,visibility 0s linear 0s}.nav-mobile-links{display:flex;flex-direction:column;padding:.4rem var(--gap) 1.6rem}.nav-mobile-links a{padding:.9rem 0;font-family:var(--font-mono);font-size:.92rem;color:var(--fg-dim);border-bottom:1px solid var(--line-soft);transition:color .15s ease}.nav-mobile-links a:hover,.nav-mobile-links a:active{color:var(--fg)}.nav-mobile-cta{margin-top:.7rem;display:inline-flex;align-items:center;gap:.4rem;border-bottom:none!important;color:var(--fg)!important;font-weight:600}@media (min-width: 720px){.nav-mobile{display:none}}.nav-backdrop{position:fixed;top:calc(60px + env(safe-area-inset-top,0px));left:0;right:0;bottom:0;z-index:22;background:#0a0a0a52;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility 0s linear .2s}.nav-backdrop-open{opacity:1;visibility:visible;transition:opacity .2s ease,visibility 0s linear 0s}@media (min-width: 720px){.nav-backdrop{display:none}}.hero{padding:clamp(3.2rem,11vw,6.5rem) 0 clamp(2.6rem,7vw,4rem);border-bottom:1px solid var(--line-soft)}.hero-inner{display:flex;flex-direction:column;align-items:center;text-align:center}.mark-lg{width:40px;height:40px;margin-bottom:1.8rem;animation:markSpin .9s ease-out}@keyframes markSpin{0%{opacity:0;transform:rotate(-40deg) scale(.7)}to{opacity:1;transform:rotate(0) scale(1)}}.hero-headline{display:flex;flex-direction:column;align-items:center;gap:.12em;margin:0 0 1.6rem;animation:heroRise .7s ease-out 80ms both}.hero-headline-line{font-size:clamp(1.9rem,6.2vw,3.5rem);line-height:1.06;letter-spacing:-.02em;font-weight:600}.name-badge{display:inline-flex;align-items:center;gap:.6rem;padding:.6rem 1.3rem;border-radius:999px;background:var(--invert-low);border:1px solid var(--line-soft);font-family:var(--font-mono);font-size:.85rem;letter-spacing:.01em;color:var(--fg-dim);margin:0 0 1.6rem;animation:heroRise .7s ease-out .16s both}.mark-sm{width:14px;height:14px}.hero-about{max-width:780px;font-size:clamp(.98rem,1.8vw,1.1rem);line-height:1.6;color:var(--fg-dim);margin:0 0 2rem;padding:0 1rem;animation:heroRise .7s ease-out .2s both}@keyframes heroRise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem;animation:heroRise .7s ease-out .26s both}.btn{font-family:var(--font-mono);font-size:.82rem;padding:.75rem 1.3rem;border-radius:var(--radius-sm);border:1px solid var(--line);transition:transform .15s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease;display:inline-flex;align-items:center;gap:.5rem}.btn-primary{background:var(--fg);color:var(--bg);border-color:var(--fg)}.btn-primary:hover,.btn-primary:focus-visible{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-ghost:hover,.btn-ghost:focus-visible{border-color:var(--fg-dim);background:var(--surface)}.btn:active{transform:scale(.97)}.section{padding:clamp(3rem,9vw,6rem) 0;border-bottom:1px solid var(--line-soft)}.section-head{display:flex;flex-direction:column;gap:.7rem;margin-bottom:clamp(2rem,6vw,3.2rem);max-width:60ch}.section-head h2{font-size:clamp(1.6rem,4vw,2.4rem);font-weight:600;letter-spacing:-.01em;margin:0}.section-head p{color:var(--fg-dim);margin:0;line-height:1.55}.section-head-center{align-items:center;text-align:center;margin-left:auto;margin-right:auto}.section-narrow .container{max-width:640px;text-align:center}.center-label{display:block;margin-bottom:1rem}.about-name{font-size:clamp(1.5rem,4vw,2rem);font-weight:600;letter-spacing:-.01em;margin:0 0 .9rem}.about-titles{margin-bottom:1.4rem;animation:none}.exp-cv-btn{margin-top:1.6rem}.about-line{font-size:clamp(1.05rem,2.4vw,1.3rem);line-height:1.65;color:var(--fg-dim);margin:0}.discipline-grid{display:grid;grid-template-columns:1fr;gap:clamp(.9rem,2.4vw,1.4rem)}@media (min-width: 640px){.discipline-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 980px){.discipline-grid{grid-template-columns:repeat(3,1fr)}}.discipline{padding:clamp(1.7rem,3vw,2.2rem) clamp(1.5rem,2.6vw,1.9rem);min-height:216px;display:flex;flex-direction:column;justify-content:space-between;gap:1.6rem;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);transition:background .18s ease,transform .18s ease,box-shadow .18s ease,border-color .18s ease}@media (hover: hover) and (pointer: fine){.discipline:hover{background:var(--bg);border-color:var(--line);transform:translateY(-3px);box-shadow:var(--shadow-md)}}.discipline:active{transform:scale(.98)}.discipline-top{display:flex;align-items:center;justify-content:space-between}.discipline-icon{width:44px;height:44px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:13px;background:var(--surface-2);color:var(--fg)}.discipline-icon svg{width:21px;height:21px}.discipline-index{font-family:var(--font-mono);font-size:.72rem;color:var(--fg-faint)}.discipline-body{display:flex;flex-direction:column;gap:.6rem}.discipline h3{font-size:1.1rem;font-weight:600;margin:0;letter-spacing:-.005em}.discipline p{font-size:.92rem;color:var(--fg-dim);margin:0;line-height:1.65}.work-tabs{display:flex;gap:.5rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:.2rem var(--gap) .35rem;margin:-.4rem 0 clamp(1.6rem,4vw,2.4rem)}.work-tabs::-webkit-scrollbar{display:none}@media (min-width: 720px){.work-tabs{justify-content:center;flex-wrap:wrap;overflow-x:visible;padding-left:var(--gap);padding-right:var(--gap)}}.work-tab{flex:none;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.02em;white-space:nowrap;padding:.5rem 1.05rem;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--fg-dim);cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .15s ease}.work-tab:hover,.work-tab:focus-visible{border-color:var(--fg-dim);color:var(--fg)}.work-tab:active{transform:scale(.95)}.work-tab-active,.work-tab-active:hover{background:var(--fg);color:var(--bg);border-color:var(--fg)}.work-feed{display:flex;flex-direction:column;gap:clamp(1.4rem,4vw,2.2rem)}.work-box{position:relative;width:100%;min-height:74vh;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line-soft);background:var(--surface);box-shadow:var(--shadow-sm);animation:cardIn .48s ease-out both;transition:box-shadow .3s ease,transform .3s ease;-webkit-tap-highlight-color:transparent}@keyframes cardIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (hover: hover) and (pointer: fine){.work-box:hover{box-shadow:var(--shadow-lg)}.work-box.work-box-clickable:hover{transform:translateY(-4px)}.work-box.work-box-clickable:hover .work-box-media img,.work-box.work-box-clickable:hover .work-box-media video{transform:scale(1.045)}}.work-box-clickable{cursor:pointer}.work-box:active{transform:scale(.995)}.work-box-media{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(150deg,var(--surface-2),var(--surface))}.work-box-media img,.work-box-media video{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease;will-change:transform;backface-visibility:hidden}.fade-img{opacity:0;transition:opacity .35s ease}.fade-img-in{opacity:1}.work-box-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:clamp(4rem,14vw,9rem);font-weight:700;color:rgba(var(--theme-rgb, 140, 140, 140),.5)}.work-box-themed .work-box-media{background:rgba(var(--theme-rgb, 90, 90, 90),.28)}.work-box-themed{border-color:rgba(var(--theme-rgb, 90, 90, 90),.35)}.work-box-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(1.6rem,5vw,3.4rem);background:linear-gradient(to top,rgba(10,10,10,.82) 0%,rgba(10,10,10,.42) 45%,rgba(10,10,10,.06) 75%,transparent 100%);color:#fff}.work-box-eyebrow{display:flex;align-items:center;gap:.7rem;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;color:#ffffffbf;margin-bottom:.6rem}.work-box-count{padding:.2rem .6rem;border:1px solid rgba(255,255,255,.4);border-radius:999px;font-size:.7rem}.work-box-title{font-size:clamp(2.1rem,6vw,4.4rem);line-height:1.02;letter-spacing:-.02em;font-weight:600;margin:0 0 .9rem;max-width:18ch}.work-box-desc{font-size:clamp(.95rem,1.6vw,1.15rem);line-height:1.55;color:#ffffffd9;max-width:62ch;margin:0 0 1.2rem}.work-box-overlay .work-link{font-family:var(--font-mono);font-size:.82rem;color:#fff;border:1px solid rgba(255,255,255,.55);border-radius:var(--radius-sm);padding:.6rem 1.1rem;display:inline-flex;align-items:center;gap:.5rem;width:fit-content;transition:background .2s ease,transform .15s ease}.work-box-overlay .work-link:hover{background:#ffffff24}.work-box-overlay .work-link:active{transform:scale(.96)}.bento-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:.6rem}@media (max-width: 900px){.bento-grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:160px}}@media (max-width: 620px){.bento-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:130px;gap:.45rem}}.bento-item{position:relative;grid-column:span 1;grid-row:span 1;margin:0;overflow:hidden;border:none;border-radius:var(--radius-sm);background:var(--surface-2);cursor:pointer;animation:cardIn .42s ease-out both;transition:transform .25s ease;-webkit-tap-highlight-color:transparent}.bento-item:nth-child(10n+1){grid-column:span 2;grid-row:span 2}.bento-item:nth-child(10n+6){grid-column:span 2}.bento-item:nth-child(10n+9){grid-row:span 2}@media (max-width: 620px){.bento-item:nth-child(10n+1){grid-column:span 2;grid-row:span 2}.bento-item:nth-child(10n+6){grid-column:span 1;grid-row:span 1}.bento-item:nth-child(10n+9){grid-row:span 1}}@media (hover: hover) and (pointer: fine){.bento-item:hover{transform:translateY(-3px)}}.bento-item:active{transform:scale(.98)}.bento-item img,.bento-item video{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}@media (hover: hover) and (pointer: fine){.bento-item:hover img,.bento-item:hover video{transform:scale(1.05)}}.bento-caption{position:absolute;inset:auto 0 0 0;margin:0;padding:.7rem .8rem .75rem;display:flex;flex-direction:column;gap:.15rem;background:linear-gradient(to top,rgba(0,0,0,.85) 5%,rgba(0,0,0,.45) 55%,transparent 100%);color:#fff;transform:translateY(100%);transition:transform .22s ease}.bento-item:hover .bento-caption,.bento-item:focus-visible .bento-caption{transform:translateY(0)}@media (hover: none){.bento-caption{transform:translateY(0);background:linear-gradient(to top,rgba(0,0,0,.72) 0%,rgba(0,0,0,.28) 65%,transparent 100%)}}.bento-caption-cat{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.04em;text-transform:uppercase;color:#ffffffbf}.bento-caption strong{font-size:.86rem;font-weight:600;line-height:1.3}.file-tile{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;background:linear-gradient(135deg,var(--surface-2),var(--surface));transition:background .2s ease}.file-tile:hover{background:var(--surface-2)}.file-tile-icon{font-family:var(--font-mono);font-size:.78rem;font-weight:600;letter-spacing:.04em;padding:.4rem .8rem;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--fg)}.file-tile-open{font-family:var(--font-mono);font-size:.72rem;color:var(--fg-dim)}.work-empty{padding:4rem 1.5rem;text-align:center;color:var(--fg-dim);font-family:var(--font-mono);font-size:.85rem;background:var(--surface);border-radius:var(--radius)}.work-tag{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-faint)}.work-box-content{position:relative;padding:clamp(1.8rem,5vw,3.2rem);display:flex;flex-direction:column;gap:1.8rem;height:100%}.work-box-content-head{display:flex;flex-direction:column;gap:.6rem}.work-box-content-head .work-box-eyebrow{color:var(--fg-faint)}.work-box-content-head .work-box-title{color:var(--fg);font-size:clamp(2rem,5vw,3.6rem);max-width:none}.work-box-content-head .work-box-desc{color:var(--fg-dim);max-width:68ch;margin-bottom:0}.work-box-content-body{flex:1}.lightbox-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#000000b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:4vh 1.2rem;animation:fadeIn .18s ease-out both}.lightbox-panel{position:relative;width:min(1080px,100%);margin:0 auto;background:linear-gradient(160deg,rgba(var(--theme-rgb, 30, 30, 34),.16),var(--bg) 55%);border:1px solid rgba(var(--theme-rgb, 30, 30, 34),.35);border-radius:var(--radius-lg);padding:clamp(1.4rem,4vw,2.2rem);box-shadow:var(--shadow-lg);animation:cardIn .26s ease-out both}.lightbox-close{position:absolute;top:1rem;right:1rem;width:2.4rem;height:2.4rem;border-radius:50%;border:1px solid var(--line);background:var(--surface);font-size:1.3rem;line-height:1;cursor:pointer;transition:background .15s ease,transform .15s ease}.lightbox-close:hover{background:var(--surface-2)}.lightbox-close:active{transform:scale(.92)}.lightbox-head{padding-right:2.6rem;margin-bottom:1.4rem;display:flex;flex-direction:column;gap:.4rem}.lightbox-head h3{font-size:clamp(1.4rem,3vw,2rem);margin:0}.lightbox-head p{font-size:.95rem;color:var(--fg-dim);margin:0}.lightbox-grid{display:grid;grid-template-columns:1fr;gap:.7rem}@media (min-width: 640px){.lightbox-grid{grid-template-columns:repeat(2,1fr)}}.lightbox-tile{border-radius:var(--radius);overflow:hidden;background:var(--surface-2);aspect-ratio:4 / 3;transition:transform .2s ease}@media (hover: hover) and (pointer: fine){.lightbox-tile:hover{transform:scale(1.01)}}.lightbox-tile img,.lightbox-tile video{width:100%;height:100%;object-fit:cover;display:block}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.tiktok-panel{display:flex;flex-direction:column;align-items:center;gap:1.6rem;height:100%;justify-content:center}.tiktok-embed-wrap{width:100%;display:flex;justify-content:center;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--bg);padding:clamp(1rem,3vw,1.6rem);min-height:340px}.tiktok-fallback-link{font-family:var(--font-mono);font-size:.8rem}.coming-soon{padding-top:clamp(5rem,14vw,8rem);padding-bottom:clamp(5rem,14vw,8rem)}.soon-badge{display:inline-block;margin-top:1.6rem;font-family:var(--font-mono);font-size:.76rem;padding:.5rem 1rem;border:1px solid var(--line);border-radius:999px;color:var(--fg-dim)}.form-field{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.3rem;text-align:left}.form-field label{font-family:var(--font-mono);font-size:.74rem;color:var(--fg-dim)}.form-field input,.form-field textarea,.form-field select{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.85rem .9rem;font-size:.95rem;resize:vertical;transition:border-color .15s ease,box-shadow .15s ease}.form-field input:focus-visible,.form-field textarea:focus-visible,.form-field select:focus-visible{outline:none;border-color:var(--fg);box-shadow:0 0 0 3px rgba(var(--theme-rgb, 20,20,20),.12)}.form-status{font-family:var(--font-mono);font-size:.8rem;margin-top:.8rem;color:var(--fg-dim)}.form-status[data-state=ok]{color:var(--fg)}.form-status[data-state=error]{color:#b3261e}.admin-login{max-width:320px;margin:2rem auto 0;text-align:left}.section-admin .container{max-width:900px}.admin-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:2.4rem;flex-wrap:wrap}.admin-head h2{margin:.2rem 0 0;font-size:1.5rem}.admin-grid{display:grid;grid-template-columns:1fr;gap:0 1.2rem;border:1px solid var(--line-soft);padding:1.6rem;border-radius:var(--radius);margin-bottom:3rem;background:var(--surface);box-shadow:var(--shadow-sm)}@media (min-width: 640px){.admin-grid{grid-template-columns:1fr 1fr}}.admin-span-2{grid-column:1 / -1}.admin-list-title{font-size:1rem;font-weight:600;margin-bottom:1rem}.admin-list{display:flex;flex-direction:column;gap:.5rem}.admin-row{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-sm);display:flex;align-items:center;gap:1rem;padding:.9rem 1.1rem;flex-wrap:wrap;transition:box-shadow .15s ease,transform .15s ease}@media (hover: hover) and (pointer: fine){.admin-row:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}}.admin-thumb{width:56px;height:56px;object-fit:cover;border-radius:var(--radius-sm);flex:none;background:var(--surface-2)}.admin-thumb-file{display:flex;align-items:center;justify-content:center;text-align:center;font-family:var(--font-mono);font-size:.6rem;letter-spacing:.02em;color:var(--fg-dim);border:1px dashed var(--line);padding:.2rem;border-radius:var(--radius-sm)}.file-picked-list{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.3rem}.file-picked{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.file-picked-remove{border:none;background:none;cursor:pointer;color:var(--fg-dim);font-size:1rem;line-height:1;padding:0 .2rem}.file-picked-remove:hover{color:var(--fg)}.admin-thumb-wrap{position:relative;flex:none}.admin-thumb-count{position:absolute;bottom:-4px;right:-4px;background:var(--fg);color:var(--bg);font-family:var(--font-mono);font-size:.62rem;font-weight:700;border-radius:999px;padding:.05rem .35rem;border:2px solid var(--bg)}.admin-row-info{display:flex;flex-direction:column;gap:.2rem;flex:1;min-width:160px}.admin-delete{margin-left:auto;font-size:.74rem;padding:.45rem .8rem}.footer{padding:2rem 0 calc(2rem + env(safe-area-inset-bottom,0px));display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;font-family:var(--font-mono);font-size:.75rem;color:var(--fg-faint)}.footer a{color:var(--fg-faint);transition:color .15s ease}.footer a:hover,.footer a:focus-visible{color:var(--fg)}.site-decor{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;pointer-events:none}.decor-grid{position:absolute;top:-10%;right:-10%;bottom:-10%;left:-10%;background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);background-size:56px 56px;opacity:.55;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 20%,#000 0%,transparent 78%);mask-image:radial-gradient(ellipse 70% 60% at 50% 20%,#000 0%,transparent 78%);transform:translate3d(0,calc(var(--scroll, 0) * -50px),0);will-change:transform}:root[data-theme=dark] .decor-grid{opacity:.35}.decor-blob{position:absolute;width:min(46vw,560px);height:min(46vw,560px);border-radius:50%;filter:blur(70px);opacity:.5}.decor-blob-a{top:-10%;right:-8%;background:radial-gradient(circle,rgba(140,140,255,.16),transparent 70%)}.decor-blob-b{top:60%;left:-12%;background:radial-gradient(circle,rgba(255,170,120,.14),transparent 70%)}:root[data-theme=dark] .decor-blob{opacity:.28}.decor-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.decor-line{fill:none;stroke:var(--fg-faint);stroke-width:1.4;opacity:.35;vector-effect:non-scaling-stroke;will-change:transform}.decor-line-1{transform:translate3d(0,calc(var(--scroll, 0) * -60px),0)}.decor-line-2{transform:translate3d(0,calc(var(--scroll, 0) * 80px),0)}.decor-line-3{transform:translate3d(0,calc(var(--scroll, 0) * -40px),0)}.peek-photo{position:fixed;z-index:15;display:none;text-align:center;opacity:0;transform:translateY(calc(14px - var(--scroll, 0) * 26px)) rotate(var(--peek-rotate, 0deg)) scale(.9);transition:opacity .5s ease,transform .6s ease;pointer-events:none}@media (min-width: 1320px){.peek-photo{display:block}}.peek-visible{opacity:1;transform:translateY(calc(0px - var(--scroll, 0) * 26px)) rotate(var(--peek-rotate, 0deg)) scale(1)}.peek-left{left:clamp(.75rem,3.2vw,2.75rem)}.peek-right{right:clamp(.75rem,3.2vw,2.75rem)}.peek-top{top:7.5rem}.peek-middle{top:50%;margin-top:-86px}.peek-bottom{bottom:8rem}.peek-frame{position:relative;width:104px;height:104px;border-radius:50%;overflow:hidden;background:var(--surface-2);border:3px solid var(--bg);box-shadow:var(--shadow-lg)}.peek-frame img{width:100%;height:100%;object-fit:cover;display:block}.peek-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;font-size:1.6rem;color:var(--fg-faint);background:linear-gradient(150deg,var(--surface-2),var(--surface))}.peek-caption{display:block;margin-top:.55rem;font-family:var(--font-mono);font-size:.66rem;color:var(--fg-faint)}:focus-visible{outline:2px solid var(--fg);outline-offset:2px}.timeline{display:flex;flex-direction:column;gap:clamp(1.8rem,4vw,2.6rem)}.timeline-item{position:relative;padding-left:1.4rem;border-left:2px solid var(--line)}.timeline-item:before{content:"";position:absolute;left:-5px;top:.4rem;width:8px;height:8px;border-radius:50%;background:var(--fg)}.timeline-role{font-size:clamp(1.1rem,2.4vw,1.35rem);font-weight:600;margin:.3rem 0 .15rem}.timeline-org{color:var(--fg-dim);margin:0 0 .7rem;font-size:.92rem}.timeline-points{margin:0;padding-left:1.1rem;color:var(--fg-dim);line-height:1.6;display:flex;flex-direction:column;gap:.35rem}.edu-item{max-width:640px}.skill-groups{display:grid;grid-template-columns:1fr;gap:1.1rem}@media (min-width: 720px){.skill-groups{grid-template-columns:repeat(2,1fr)}}.skill-group{padding:1.5rem 1.6rem;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius)}.skill-group h3{font-size:1rem;font-weight:600;margin:0 0 .9rem}.skill-chips{display:flex;flex-wrap:wrap;gap:.5rem}.skill-chip{font-family:var(--font-mono);font-size:.74rem;padding:.35rem .7rem;border:1px solid var(--line);border-radius:999px;color:var(--fg-dim)}.cert-grid{grid-template-columns:1fr}@media (min-width: 720px){.cert-grid{grid-template-columns:repeat(2,1fr)}}.reference-grid{display:grid;grid-template-columns:1fr;gap:.9rem;margin-top:1rem}@media (min-width: 720px){.reference-grid{grid-template-columns:repeat(3,1fr)}}.reference-card{display:flex;flex-direction:column;gap:.3rem;padding:1.1rem 1.2rem;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-sm);font-size:.88rem}.reference-card span{color:var(--fg-dim);font-size:.82rem}
