:root{--bg:#0a0d0a;--forest-1:#22372973;--forest-2:#1a2a2080;--grid-line:#b2bea524;--accent:#a3b18a;--accent-soft:#c9d4bb;--text:#e6ebe2;--muted:#9aa796;--glass-border:#ffffff1a;--radius:22px;--font-default:"Space Grotesk", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-default);font-optical-sizing:auto;background:radial-gradient(1100px 620px at 12% -5%, var(--forest-1), transparent 62%), radial-gradient(950px 720px at 92% 108%, var(--forest-2), transparent 60%), radial-gradient(700px 500px at 55% 45%, #283a2d38, transparent 70%), var(--bg);color:var(--text);min-height:100vh;font-style:normal;line-height:1.6;overflow-x:hidden}::selection{color:#fff;background:#a3b18a59}.bg-grid{z-index:0;pointer-events:none;background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);background-size:44px 44px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(90% 80% at 50% 40%,#000 30%,#0000 100%);mask-image:radial-gradient(90% 80% at 50% 40%,#000 30%,#0000 100%)}.bg-glow{z-index:0;pointer-events:none;filter:blur(90px);border-radius:50%;position:fixed}.glow-a{background:radial-gradient(circle,#5870541a,#0000 65%);width:480px;height:480px;animation:16s ease-in-out infinite alternate drift;top:-160px;left:-120px}.glow-b{background:radial-gradient(circle,#465c4617,#0000 65%);width:560px;height:560px;animation:20s ease-in-out infinite alternate-reverse drift;bottom:-220px;right:-160px}.page{z-index:2;flex-direction:column;gap:28px;width:min(1080px,100% - 40px);margin:0 auto;padding:48px 0;display:flex;position:relative}.glass{border:1px solid var(--glass-border);border-radius:var(--radius);-webkit-backdrop-filter:blur(18px)saturate(150%);backdrop-filter:blur(18px)saturate(150%);background:linear-gradient(155deg,#ffffff13,#ffffff05 42%,#ffffff0b);position:relative;box-shadow:0 24px 60px #00000080,inset 0 1px #ffffff17}.glass:before{content:"";border-radius:var(--radius) var(--radius) 0 0;opacity:.7;pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff2e,#0000);height:1px;position:absolute;inset:0 0 auto}.value{color:var(--text);font-weight:600}.link{border-bottom:1px dashed #a3b18a66;text-decoration:none;transition:color .2s,border-color .2s}.link:hover{color:var(--accent-soft);border-color:var(--accent-soft)}.toast{z-index:50;font-family:var(--font-default);color:var(--accent-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;pointer-events:none;background:#0e120eeb;border:1px solid #a3b18a59;border-radius:999px;padding:10px 22px;font-size:.8rem;transition:transform .35s cubic-bezier(.2,.9,.3,1.3),opacity .3s;position:fixed;bottom:26px;left:50%;transform:translate(-50%,80px)}.toast.show{opacity:1;transform:translate(-50%)}@media (width<=760px){.page{gap:18px;width:calc(100% - 24px);padding:20px 0}.toast{text-align:center;max-width:calc(100vw - 32px);padding:9px 18px}}@media (width<=380px){.page{gap:14px;width:calc(100% - 16px);padding:14px 0}}.hero{flex-direction:column;gap:30px;padding:42px 42px 20px;display:flex}.hero-info{align-items:center;gap:44px;display:flex}.hero-photo{width:210px;height:240px;transform-style:preserve-3d;background:linear-gradient(160deg,#131a13,#0c100c);border-radius:16px;flex-shrink:0;transition:transform .25s,box-shadow .25s;position:relative;overflow:hidden;box-shadow:0 16px 40px #0000008c}.hero-photo img{object-fit:cover;width:100%;height:100%;display:block}.corner{opacity:.9;border:1.5px solid #a3b18aa6;width:22px;height:22px;position:absolute}.c-tl{border-bottom:none;border-right:none;border-top-left-radius:8px;top:8px;left:8px}.c-tr{border-bottom:none;border-left:none;border-top-right-radius:8px;top:8px;right:8px}.c-bl{border-top:none;border-right:none;border-bottom-left-radius:8px;bottom:8px;left:8px}.c-br{border-top:none;border-left:none;border-bottom-right-radius:8px;bottom:8px;right:8px}.hero-content{flex:1;min-width:0}.tagline-row{align-items:center;gap:18px;margin:12px 0 26px;display:flex}.flag{border-radius:2px;align-self:center;width:22px;height:auto;margin-left:-6px;box-shadow:0 0 0 1px #ffffff26}.hero-title{justify-content:space-between;align-items:flex-start;gap:16px;font-size:1.2rem;font-weight:700;display:flex}.star{width:80px;height:80px;color:var(--accent);flex-shrink:0;animation:10s linear infinite spin-star}@keyframes spin-star{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.rule{background:linear-gradient(90deg,#a3b18a73,#a3b18a0d);flex:1;height:2px}.tagline{font-family:var(--font-mono);color:var(--accent-soft);white-space:nowrap;font-size:.86rem}.contact-list{gap:12px;list-style:none;display:grid}.contact-list li{align-items:baseline;gap:14px;font-size:.95rem;display:flex}.label{color:var(--muted);text-align:right;flex-shrink:0;width:86px;font-size:.8rem;font-weight:500}.copy-btn{font-family:var(--font-mono);color:var(--accent-soft);cursor:pointer;background:#a3b18a14;border:1px solid #a3b18a59;border-radius:999px;padding:3px 10px;font-size:.68rem;transition:background .2s,transform .15s}.copy-btn:hover{background:#a3b18a2e;transform:translateY(-1px)}.copy-btn:active{transform:translateY(0)}.hero-philosophy{justify-content:center;gap:10px;padding-top:20px;display:flex;position:relative}.hero-philosophy:before{content:"";background:linear-gradient(90deg,#0000,#a3b18a66,#0000);height:1px;position:absolute;inset:0 0 auto}.hero-philosophy-item{flex:1 1 0;align-items:center;min-width:0;display:flex}.hero-philosophy-text{text-align:center;letter-spacing:2.5px;text-transform:uppercase;color:var(--accent-soft);flex:1;padding:15px 30px;font-family:VT323,monospace;font-size:1.4rem;font-style:normal;font-weight:400}@media (width<=760px){.hero{gap:22px;padding:26px 22px 12px}.hero-info{text-align:center;flex-direction:column;gap:22px}.hero-photo{width:168px;height:194px}.hero-content{width:100%}.hero-title{text-align:center;flex-direction:column-reverse;align-items:center;gap:10px}.hero-title h1{font-size:clamp(1.5rem,5vw,2rem);line-height:1.28}.star{width:42px;height:42px}.tagline-row{flex-direction:column;gap:10px;margin:10px 0 22px}.rule{flex:none;width:min(240px,70%)}.tagline{white-space:normal}.contact-list{gap:14px}.contact-list li{flex-direction:column;align-items:center;gap:2px;font-size:.9rem}.contact-list .value{overflow-wrap:anywhere}.label{text-align:center;width:auto}.flag{margin-left:0}.copy-btn{margin-top:6px}.hero-philosophy{flex-direction:column;gap:0;padding-top:14px}.hero-philosophy-item+.hero-philosophy-item{border-top:1px solid #a3b18a24}.hero-philosophy-text{letter-spacing:1.5px;padding:12px 8px;font-size:1.05rem;line-height:1.35}}@media (width<=400px){.hero{gap:18px;padding:22px 16px 10px}.hero-photo{width:148px;height:172px}.hero-title{gap:8px}.hero-title h1{font-size:1.45rem}.star{width:34px;height:34px}.hero-philosophy-text{letter-spacing:1px;padding:10px 4px;font-size:.98rem}}.mainnav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;padding:12px 24px;display:flex}.nav-brand{font-family:var(--font-mono);letter-spacing:1.5px;color:var(--text);min-width:0;font-size:.95rem;font-weight:500;text-decoration:none}.nav-dot{color:var(--accent)}.nav-links{flex-wrap:wrap;gap:6px;min-width:0;list-style:none;display:flex}.nav-links a{color:var(--muted);border-radius:999px;padding:7px 14px;font-size:.85rem;text-decoration:none;transition:color .2s,background .2s;display:inline-block}.nav-links a:hover{color:var(--text);background:#a3b18a1f}.nav-links a.active{color:var(--accent-soft);background:#a3b18a29}@media (width<=760px){.mainnav{flex-direction:column;align-items:stretch;gap:8px;padding:12px 14px}.nav-brand{text-align:center}.nav-links{justify-content:center;gap:2px}.nav-links a{padding:7px 11px;font-size:.8rem}}@media (width<=480px){.nav-links{flex-wrap:wrap;justify-content:center;gap:4px 2px}.nav-links a{white-space:nowrap}}@media (width<=400px){.mainnav{padding:10px 12px}.nav-brand{letter-spacing:1px;font-size:.85rem}.nav-links a{padding:6px 9px;font-size:.76rem}}.contents{padding:8px 48px 42px}.block{padding:34px 0;scroll-margin-top:24px}.block-title{letter-spacing:-.3px;align-items:baseline;gap:14px;margin-bottom:20px;font-size:1.35rem;font-weight:700;display:flex}.block-num{font-family:var(--font-mono);color:var(--accent);font-size:.8rem;font-weight:400}.divider{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);height:1px}.about-text,.my-text{color:#c4d4cb;max-width:75ch}.about-stats{flex-wrap:wrap;gap:18px;margin-top:26px;display:flex}.stat{background:#ffffff09;border:1px solid #ffffff14;border-radius:14px;flex-direction:column;flex:1;gap:2px;min-width:150px;padding:16px 20px;display:flex}.stat-num{color:var(--accent);font-size:1.5rem;font-weight:800}.stat-label{font-family:var(--font-mono);color:var(--muted);font-size:.72rem}.experience-item{background:linear-gradient(160deg,#ffffff0d,#ffffff04);border:1px solid #ffffff14;border-left:3px solid #a3b18a8c;border-radius:14px;padding:24px 26px;position:relative}.exp-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:12px;display:flex}.exp-company{color:var(--accent);font-size:1.1rem;font-weight:700}.exp-role{font-family:var(--font-mono);color:var(--muted);font-size:.82rem}.exp-period{font-family:var(--font-mono);color:var(--accent-soft);background:#a3b18a0f;border:1px solid #a3b18a4d;border-radius:999px;padding:4px 12px;font-size:.78rem}.exp-duties{color:#c4d4cb;gap:8px;font-size:.9rem;list-style:none;display:grid}.exp-duties li{padding-left:20px;position:relative}.exp-duties li:before{content:"";background:var(--accent);border-radius:1px;width:6px;height:6px;position:absolute;top:.62em;left:3px;transform:rotate(45deg)}.chips{flex-wrap:wrap;gap:10px;display:flex}.chip{font-family:var(--font-mono);color:#ccd6c4;cursor:default;background:#a3b18a0f;border:1px solid #a3b18a40;border-radius:999px;padding:8px 16px;font-size:.8rem;transition:transform .18s,background .18s,border-color .18s}.chip:hover{background:#a3b18a24;border-color:#a3b18a73;transform:translateY(-3px)}.projects{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;display:grid}.project-card{transform-style:preserve-3d;background:linear-gradient(160deg,#ffffff0d,#ffffff04);border:1px solid #ffffff17;border-radius:16px;padding:22px;transition:transform .2s,border-color .2s,box-shadow .2s}.project-card:hover{border-color:#a3b18a59;box-shadow:0 18px 40px #00000073}.project-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.folder{width:34px;height:34px;color:var(--accent)}.project-links{gap:10px;display:flex}.icon-link{width:20px;height:20px;color:var(--muted);transition:color .2s,transform .2s}.icon-link svg{width:100%;height:100%;display:block}.icon-link:hover{color:var(--accent-soft);transform:translateY(-2px)}.project-name{margin-bottom:8px;font-size:1.05rem;font-weight:700}.project-desc{color:var(--muted);margin-bottom:16px;font-size:.86rem}.project-tags{font-family:var(--font-mono);color:var(--accent-soft);flex-wrap:wrap;gap:10px;font-size:.7rem;list-style:none;display:flex}.contact-block{text-align:center}.contact-block .block-title{justify-content:center}.contact-text{color:var(--muted);margin-bottom:24px}.cta-row{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.btn{font-family:var(--font-head);border-radius:999px;padding:13px 30px;font-size:.9rem;font-weight:600;text-decoration:none;transition:transform .18s,box-shadow .18s,background .18s}.btn-primary{color:#10150e;background:linear-gradient(120deg, #94a37c, var(--accent));box-shadow:0 8px 22px #00000059}.btn-primary:hover{transform:translateY(-3px);box-shadow:0 12px 28px #0000006b}.btn-ghost{color:var(--accent-soft);font-family:var(--font-mono);background:#a3b18a0f;border:1px solid #a3b18a66;font-size:.84rem}.btn-ghost:hover{background:#a3b18a24;transform:translateY(-3px)}@media (width<=760px){.contents{padding:6px 22px 30px}.block{padding:26px 0;scroll-margin-top:16px}.block-title{gap:10px;margin-bottom:16px;font-size:1.2rem}.about-text,.my-text{font-size:.92rem}.about-stats{gap:10px;margin-top:20px}.stat{min-width:120px;padding:12px 14px}.stat-num{font-size:1.3rem}.experience-item{padding:18px 16px}.exp-head{gap:6px;margin-bottom:10px}.exp-company{font-size:1rem}.exp-role{font-size:.78rem}.exp-period{padding:3px 10px;font-size:.7rem}.exp-duties{font-size:.85rem}.chip{padding:6px 12px;font-size:.72rem}.contact-text{margin-bottom:20px;font-size:.92rem}.cta-row{flex-direction:column;align-items:center;gap:10px}.btn{text-align:center;width:min(100%,300px);padding:12px 22px}}@media (width<=400px){.contents{padding:4px 16px 26px}.block{padding:22px 0}.block-title{font-size:1.1rem}.chip{padding:5px 10px;font-size:.68rem}.exp-duties{font-size:.82rem}.btn{width:100%}}.footer{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;padding:22px 34px;font-size:.85rem;display:flex}.footer-nav{gap:22px;display:flex}.footer-nav a{color:var(--muted);font-size:.84rem;text-decoration:none;transition:color .2s}.footer-nav a:hover{color:var(--accent-soft)}.mono{font-family:var(--font-mono);font-size:.74rem}.preact-logo{vertical-align:-.35em;width:1.7em;height:1.7em;margin:0 .1em}@media (width<=760px){.footer{text-align:center;flex-direction:column;justify-content:center;gap:12px;padding:20px 22px}.footer-nav{flex-wrap:wrap;justify-content:center;gap:8px 16px}}@media (width<=400px){.footer{padding:18px 16px}.footer-nav{gap:6px 14px}}
