.web-group[data-v-94a95d9e]{margin-top:32px}.web-group-header[data-v-94a95d9e]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:8px}.web-group-title[data-v-94a95d9e]{font-size:1.1rem;font-weight:600;color:var(--text, #e1e4e8);display:flex;align-items:center;gap:8px;margin:0}.web-group-title .icn[data-v-94a95d9e]{width:18px;height:18px;color:var(--accent, #5c8cff)}.web-group-hint[data-v-94a95d9e]{font-size:.8rem;font-weight:400;color:var(--muted, #8b949e);margin-left:4px}.btn-text[data-v-94a95d9e]{background:none;border:none;color:var(--accent, #5c8cff);cursor:pointer;font-size:.85rem;padding:4px 8px;transition:opacity .2s}.btn-text[data-v-94a95d9e]:hover{opacity:.7}.web-grid-app[data-v-94a95d9e]{margin-bottom:8px}@media (max-width: 640px){.web-group-header[data-v-94a95d9e]{flex-direction:column;align-items:flex-start}.web-group-title[data-v-94a95d9e]{flex-wrap:wrap;align-items:flex-start;row-gap:4px}.web-group-hint[data-v-94a95d9e]{display:block;width:100%;margin-left:0;margin-top:2px;font-size:.74rem;line-height:1.4}.btn-text[data-v-94a95d9e]{min-height:40px;padding:8px 0}}:root{--bg:#08080a;--editor:#0b0b10;--editor2:#0e0e14;--panel:#0c0c11;--chrome:#0f0f16;--surface:#101015;--surface2:#17171d;--ink:#ededee;--sub:#9a9aa1;--sub2:#8a8a93;--faint:#7c7d8c;--line:rgba(255,255,255,.08);--line2:rgba(255,255,255,.15);--accent:#5c8cff;--accent-hover:#7aa2ff;--accent-press:#3f6fe0;--accent-soft:rgba(92,140,255,.12);--accent-soft2:rgba(92,140,255,.07);--t-k:#c3a6ff;--t-f:#82aaff;--t-s:#a4d78b;--t-n:#ff9e64;--t-t:#5bd6c4;--t-p:#88d3ff;--t-c:#7c86b0;--t-o:#a7b1d6;--t-b:#ff9e64;--red:#ff5f57;--yellow:#febc2e;--green:#28c840;--sp-xxs:4px;--sp-xs:8px;--sp-sm:12px;--sp-md:16px;--sp-lg:24px;--sp-xl:32px;--sp-2xl:48px;--r-sm:8px;--r:14px;--r-lg:18px;--sh-card:0 1px 2px rgba(0,0,0,.28),0 2px 6px rgba(0,0,0,.18);--sh-pop:0 8px 32px -6px rgba(0,0,0,.55);--sh-glow:0 0 40px -8px rgba(92,140,255,.25);--ease:cubic-bezier(.16,1,.3,1);--ease-out:cubic-bezier(.22,1,.36,1);--t-fast:.15s;--t:.22s;--t-slow:.35s;--mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Helvetica Neue","Inter","Noto Sans SC","Microsoft YaHei",sans-serif;--maxw:1080px;--wide:1220px;--h-title:44px;--h-tabs:42px;--h-status:30px;--w-rail:230px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:96px;scroll-padding-bottom:var(--h-status)}body{font-family:var(--sans);background:var(--bg);color:var(--ink);line-height:1.62;letter-spacing:-.011em;-webkit-font-smoothing:antialiased;overflow-x:hidden;counter-reset:sec;padding-top:calc(var(--h-title) + var(--h-tabs));padding-bottom:var(--h-status);background-image:radial-gradient(820px 460px at 82% -6%,rgba(92,140,255,.07),transparent 72%)}body:after{content:"";position:fixed;inset:0;z-index:3;pointer-events:none;opacity:.05;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}a{color:inherit;text-decoration:none}::selection{background:#5c8cff3d;color:#fff}.mono{font-family:var(--mono)}.icn{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.icn.gh{fill:currentColor;stroke:none}.sprite{position:absolute;width:0;height:0;overflow:hidden}.appicon{flex:0 0 auto;width:54px;height:54px;border-radius:13px;display:flex;align-items:center;justify-content:center;position:relative;box-shadow:0 5px 16px #00000073}.appicon:after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 1px 1px #ffffff47}.appicon .icn{width:27px;height:27px;stroke:#fff;stroke-width:1.85}.g-teal{background:linear-gradient(140deg,#46c2cf,#2a93b4)}.g-blue{background:linear-gradient(140deg,#5a9bf2,#3463df)}.g-indigo{background:linear-gradient(140deg,#9385f2,#6457e6)}.g-amber{background:linear-gradient(140deg,#f0ad5c,#e07d4e)}.g-red{background:linear-gradient(140deg,#ef8585,#db5747)}.g-green{background:linear-gradient(140deg,#5ccb94,#2fa787)}.tl{display:flex;gap:8px;flex:0 0 auto}.tl i{width:12px;height:12px;border-radius:50%;display:block;box-shadow:inset 0 0 0 .5px #00000040}.tl .r{background:var(--red)}.tl .y{background:var(--yellow)}.tl .g{background:var(--green)}.titlebar{position:fixed;top:0;left:0;right:0;z-index:140;height:var(--h-title);display:flex;align-items:center;gap:14px;padding:0 14px;background:#0c0c11db;backdrop-filter:saturate(160%) blur(16px);-webkit-backdrop-filter:saturate(160%) blur(16px);border-bottom:none}.tb-file{display:flex;align-items:center;gap:9px;font-family:var(--mono);font-size:.8rem;color:var(--sub);min-width:0}.tb-file .brand-s{width:19px;height:19px;border-radius:6px;display:flex;align-items:center;justify-content:center;background:linear-gradient(140deg,#5a9bf2,#3463df);box-shadow:0 2px 6px #0006;flex:0 0 auto}.tb-file .brand-s .icn{width:11px;height:11px;stroke:#fff;stroke-width:2.1}.tb-file b{color:var(--ink);font-weight:600}.tb-file .mod{width:7px;height:7px;border-radius:50%;background:var(--sub2);flex:0 0 auto}.tb-file .path{color:var(--faint)}.tb-center{position:absolute;left:50%;top:0;transform:translate(-50%);height:var(--h-title);display:flex;align-items:center;gap:9px;font-family:var(--mono);font-size:.76rem;color:var(--sub2);pointer-events:none}.tb-center .crumb-i{color:var(--accent)}.tb-right{margin-left:auto;display:flex;align-items:center;gap:10px}.tb-hire{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:.72rem;letter-spacing:.01em;color:var(--sub);border:1px solid var(--line2);border-radius:980px;padding:5px 11px}.tb-hire .dot{width:7px;height:7px;border-radius:50%;background:#36d399;box-shadow:0 0 #36d39980;animation:pulse 2.6s ease-out infinite}.lang{font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;color:var(--ink);border:1px solid var(--line2);border-radius:8px;padding:5px 10px;background:transparent;cursor:pointer;transition:.25s;white-space:nowrap}.langsel{display:inline-flex;align-items:center;gap:3px;border:1px solid rgba(92,140,255,.38);border-radius:10px;padding:3px;background:#5c8cff14;box-shadow:0 0 0 1px #5c8cff0d inset,0 2px 10px -4px #5c8cff59;animation:langselPulse 3.2s ease-in-out 1.2s 2}.langsel-icn{width:14px;height:14px;margin:0 3px 0 5px;color:var(--accent);flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.7}.langopt{font-family:var(--mono);font-size:.74rem;font-weight:600;letter-spacing:.02em;color:var(--sub);border:0;border-radius:7px;padding:5px 10px;min-width:28px;background:transparent;cursor:pointer;transition:color .2s var(--ease),background .2s var(--ease);line-height:1.2}.langopt:hover{color:#fff;background:#5c8cff38}.langopt.on{color:#fff;background:var(--accent);box-shadow:0 2px 10px -3px #5c8cffb3}.langopt:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@keyframes langselPulse{0%,to{box-shadow:0 0 0 1px #5c8cff0d inset,0 2px 10px -4px #5c8cff59}50%{box-shadow:0 0 0 4px #5c8cff29 inset,0 2px 18px -2px #5c8cff8c}}@media (prefers-reduced-motion:reduce){.langsel{animation:none}}.lang:hover{background:#ffffff0f}.lang b{font-weight:600}.lang s{color:var(--sub2);text-decoration:none}.burger{display:none;background:none;border:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px}.burger span{width:20px;height:1.5px;background:var(--ink);transition:.3s;border-radius:2px}.burger.x span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.burger.x span:nth-child(2){opacity:0}.burger.x span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.tabstrip{position:fixed;top:var(--h-title);left:0;right:0;z-index:110;height:var(--h-tabs);display:flex;align-items:stretch;background:linear-gradient(180deg,var(--chrome) 0%,rgba(15,15,22,.55) 100%);overflow-x:auto;scrollbar-width:none;border-bottom:none;backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px)}.tabstrip::-webkit-scrollbar{display:none}.tab{display:inline-flex;align-items:center;gap:8px;padding:0 15px;font-family:var(--mono);font-size:.78rem;color:var(--sub2);white-space:nowrap;transition:color .2s,background .2s;position:relative;flex:0 0 auto}.tab .fdot{width:8px;height:8px;border-radius:2px;flex:0 0 auto}.tab:hover{color:var(--ink);background:#ffffff08}.tab.active{color:var(--ink);background:transparent}.tab.active:after{content:"";position:absolute;left:18px;right:18px;bottom:1px;height:1.5px;border-radius:2px;background:#729bff8c;box-shadow:none}.tab.tab-camp{margin-left:6px;color:#ffb08a;background:#e8613c1f;border:1px solid rgba(232,97,60,.35);border-radius:980px;height:28px;align-self:center;padding:0 14px;font-weight:600}.tab.tab-camp:hover{color:#fff;background:#e8613cd9;border-color:#e8613c}.tab.tab-camp .fdot{background:#e8613c}.tfile-camp,.footer-camp{color:#ffb08a!important;font-weight:600}.btn.camp{background:linear-gradient(135deg,#f0784a,#e8613c);color:#fff;border:1px solid rgba(255,176,138,.35);box-shadow:0 4px 14px -4px #e8613c80;padding:12px 20px;font-weight:600}.btn.camp:hover{transform:translateY(-2px);box-shadow:0 8px 24px -6px #e8613c99;color:#fff}.camp-promo{padding:0 20px 8px}.camp-promo-card{display:flex;align-items:center;gap:14px;max-width:1100px;margin:0 auto;padding:16px 20px;border-radius:16px;text-decoration:none;color:inherit;background:linear-gradient(135deg,#e8613c24,#5b4cf01a);border:1px solid rgba(232,97,60,.35);transition:transform .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease)}.camp-promo-card:hover{transform:translateY(-2px);border-color:#e8613c8c;box-shadow:0 16px 36px -20px #e8613c8c}.camp-promo-badge{flex:0 0 auto;font-family:var(--mono);font-size:.68rem;font-weight:700;letter-spacing:.08em;color:#fff;background:#e8613c;padding:4px 8px;border-radius:6px}.camp-promo-copy{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.camp-promo-copy strong{font-size:1rem;font-weight:700;color:var(--ink);line-height:1.35}.camp-promo-copy span{font-family:var(--mono);font-size:.74rem;color:var(--sub)}.camp-promo-go{flex:0 0 auto;font-family:var(--mono);font-size:.82rem;font-weight:600;color:#e8613c;white-space:nowrap}.fd-md{background:#5a9bf2}.fd-dart{background:#46c2cf}.fd-json{background:#f0ad5c}.fd-log{background:#9385f2}.fd-dir{background:#5ccb94}.fd-sh{background:#ef8585}.rail{position:fixed;top:var(--h-title);left:0;bottom:var(--h-status);width:var(--w-rail);z-index:125;background:var(--panel);overflow-y:auto;padding:6px 0 20px;transform:translate(0);transition:transform .34s var(--ease)}.rail-h{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sub2);padding:12px 12px 8px 16px}.rail-h .icn{width:13px;height:13px}.rail-fold{margin-left:auto;display:none;align-items:center;justify-content:center;width:28px;height:28px;border:0;border-radius:7px;background:transparent;color:var(--sub2);cursor:pointer;transition:color .18s,background .18s}.rail-fold .icn{width:14px;height:14px;transform:rotate(180deg);transition:transform .28s var(--ease)}.rail-fold:hover{color:var(--ink);background:#ffffff0f}.rail-expand{display:none;position:fixed;left:10px;top:calc(var(--h-title) + var(--h-tabs) + 14px);z-index:126;width:32px;height:32px;border:1px solid var(--line2);border-radius:9px;background:var(--panel);color:var(--sub);cursor:pointer;align-items:center;justify-content:center;box-shadow:0 10px 28px -16px #0000008c;transition:color .18s,border-color .18s,transform .18s}.rail-expand .icn{width:14px;height:14px}.rail-expand:hover{color:var(--ink);border-color:#a4b8ff59;transform:translateY(-1px)}.tree{padding:0 8px}.tfolder{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:.78rem;color:var(--ink);padding:6px 8px;border-radius:6px}.tfolder .icn{width:15px;height:15px;color:var(--sub2)}.tfolder .chev{margin-left:auto;color:var(--faint);transition:transform .2s}.tfile{display:flex;align-items:center;gap:9px;font-family:var(--mono);font-size:.78rem;color:var(--sub);padding:6px 8px 6px 24px;border-radius:6px;transition:color .18s,background .18s;position:relative}.tfile .fdot{width:8px;height:8px;border-radius:2px;flex:0 0 auto}.tfile:hover{color:var(--ink);background:#ffffff0a}.tfile.active{color:var(--ink);background:var(--accent-soft)}.tfile.active:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:2px;border-radius:2px;background:linear-gradient(180deg,#b4aaff8c,#78bedc59);box-shadow:0 0 10px #a0aaff40}.tfile .mut{color:var(--faint);margin-left:auto;font-size:.68rem}.rail-foot{margin-top:14px;padding:12px 16px 0;border-top:1px solid var(--line)}.rail-foot a{display:flex;align-items:center;gap:9px;font-family:var(--mono);font-size:.76rem;color:var(--sub);padding:6px 0;transition:color .18s}.rail-foot a:hover{color:var(--accent)}.rail-foot a .icn{width:15px;height:15px;color:var(--sub2)}.rail-back{position:fixed;inset:0;z-index:124;background:#00000080;opacity:0;visibility:hidden;transition:.3s}.rail-back.show{opacity:1;visibility:visible}.statusbar{position:fixed;left:0;right:0;bottom:0;z-index:120;height:var(--h-status);display:flex;align-items:center;gap:2px;font-family:var(--mono);font-size:.7rem;color:#eef2ff;background:linear-gradient(90deg,#1e3fa8,#2b52c9 30%,#3d63d8 70%,#4a72de);border-top:1px solid rgba(255,255,255,.14);box-shadow:0 -1px #0003}.statusbar .seg{display:inline-flex;align-items:center;gap:6px;padding:0 11px;height:100%;white-space:nowrap}.statusbar .seg.accent{background:#00000029}.statusbar .seg .icn{width:13px;height:13px}.statusbar .sp{margin-left:auto}.statusbar .live{width:7px;height:7px;border-radius:50%;background:#8ef0b8;box-shadow:0 0 8px #8ef0b899;animation:livePulse 2.4s ease-in-out infinite}@keyframes livePulse{0%,to{opacity:1}50%{opacity:.6}}.statusbar a{color:inherit}.statusbar a:hover{text-decoration:underline}@media (max-width:720px){.statusbar .hide-s{display:none}}.appmain,.tabstrip{transition:margin-left .34s var(--ease),left .34s var(--ease)}@media (min-width:1120px){.appmain{margin-left:var(--w-rail)}.tabstrip{left:var(--w-rail)}.burger{display:none!important}.rail-fold{display:inline-flex}.rail.collapsed{transform:translate(-102%);pointer-events:none}.appmain.rail-collapsed{margin-left:0}.tabstrip.rail-collapsed{left:0}.rail-expand{display:inline-flex}}@media (max-width:1119px){.rail{transform:translate(-102%)}.rail.open{transform:translate(0);box-shadow:0 30px 80px #0009}.rail.collapsed{transform:translate(-102%)}.rail.open.collapsed{transform:translate(0)}.burger{display:flex}.rail-fold,.rail-expand{display:none!important}}section{position:relative;padding:clamp(66px,9vh,110px) clamp(20px,5vw,44px)}.exp-sec .wrap{position:relative;z-index:1}.lazy-section-anchor{min-height:1px}.wrap{max-width:var(--maxw);margin:0 auto}.wide{max-width:var(--wide);margin:0 auto}.crumb{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.72rem;letter-spacing:.02em;color:var(--faint);margin-bottom:14px}.crumb .fdot{width:7px;height:7px;border-radius:50%;flex-shrink:0;opacity:.82}.crumb b{color:var(--sub);font-weight:500}.eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--sub2);margin-bottom:18px}.eyebrow .icn{display:none}.eyebrow.blue:before{counter-increment:sec;content:counter(sec,decimal-leading-zero);color:#b0baf0b8;font-weight:600;letter-spacing:.05em;font-variant-numeric:tabular-nums;text-shadow:0 0 14px rgba(160,170,255,.28)}.eyebrow.blue:after{content:none;display:none}h2.head{font-size:clamp(1.85rem,4.4vw,2.95rem);font-weight:600;letter-spacing:-.025em;line-height:1.1;margin-bottom:20px;max-width:20ch}.lede{font-size:clamp(1.04rem,1.9vw,1.24rem);color:var(--sub);max-width:640px;line-height:1.62}.center{text-align:center}.center .lede{margin-left:auto;margin-right:auto}.center .eyebrow,.center .crumb{justify-content:center}.gr{color:var(--accent)}.rv{opacity:0;transform:translateY(14px);transition:opacity .55s var(--ease),transform .55s var(--ease)}.rv.in{opacity:1;transform:none}.d1{transition-delay:.06s}.d2{transition-delay:.12s}.d3{transition-delay:.18s}.d4{transition-delay:.24s}.d5{transition-delay:.3s}.btn{display:inline-flex;align-items:center;gap:7px;font-size:.95rem;font-weight:500;font-family:inherit;border-radius:980px;padding:12px 22px;transition:transform var(--t) var(--ease),background var(--t) var(--ease);cursor:pointer;letter-spacing:-.01em;background:none;border:none;color:inherit;appearance:none;-webkit-appearance:none}.btn.pri{background:linear-gradient(135deg,#6f99ff,#5580f2);color:#fff;box-shadow:0 4px 14px -4px #5c8cff80,0 0 0 1px #6f99ff1f inset;transition:transform var(--t) var(--ease-out),background var(--t) var(--ease-out),box-shadow var(--t) var(--ease-out)}.btn.pri:hover{background:linear-gradient(135deg,#83a9ff,#6b92ff);transform:translateY(-2px);box-shadow:0 8px 24px -6px #5c8cff99,0 0 0 1px #6f99ff33 inset}.btn.pri:active{transform:scale(.98)}.btn.sec{color:var(--ink);border:1px solid var(--line2);padding:12px 20px}.btn.sec:hover{background:#ffffff0d;border-color:var(--sub2)}.btn:active{filter:brightness(.93)}.a-ar{display:inline-block;transition:transform .25s}.btn:hover .a-ar,.plink:hover .a-ar{transform:translate(3px)}.back-top{position:fixed;right:24px;bottom:52px;z-index:130;width:40px;height:40px;border:1px solid var(--line2);border-radius:50%;background:var(--surface);color:var(--ink);box-shadow:var(--sh-pop);cursor:pointer;font-size:18px;line-height:1;transition:transform var(--t) var(--ease),background var(--t)}.back-top:hover{transform:translateY(-2px);background:var(--surface2)}.win{background:var(--editor);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 34px 70px -34px #000000bf,0 2px #ffffff08 inset;position:relative}.win-bar{display:flex;align-items:center;gap:12px;height:40px;padding:0 13px;background:var(--chrome);border-bottom:1px solid var(--line)}.win-bar .tl i{width:11px;height:11px}.win-tabs{display:flex;gap:3px;overflow:hidden}.wt{font-family:var(--mono);font-size:.72rem;color:var(--sub2);padding:6px 12px;border-radius:8px 8px 0 0;white-space:nowrap;display:inline-flex;align-items:center;gap:7px}.wt .fdot{width:7px;height:7px;border-radius:2px}.wt.on{color:var(--ink);background:var(--editor);box-shadow:inset 0 1px #ffffff0d}.win-meta{margin-left:auto;font-family:var(--mono);font-size:.68rem;color:var(--sub2);display:flex;align-items:center;gap:8px}.code{font-family:var(--mono);font-size:.82rem;line-height:1.8;padding:14px 0;counter-reset:l;overflow-x:auto}.cl{display:block;white-space:pre;position:relative;padding-right:16px;min-height:1.8em}.cl:before{counter-increment:l;content:counter(l);display:inline-block;width:34px;padding-right:16px;margin-right:14px;text-align:right;color:#3c3c4b;border-right:1px solid rgba(255,255,255,.05);user-select:none;font-variant-numeric:tabular-nums}.code.reveal .cl{opacity:0;transform:translateY(6px)}.code.reveal.in .cl{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease);transition-delay:calc(var(--i,0) * 45ms)}.t-k{color:var(--t-k)}.t-f{color:var(--t-f)}.t-s{color:var(--t-s)}.t-n{color:var(--t-n)}.t-t{color:var(--t-t)}.t-p{color:var(--t-p)}.t-c{color:var(--t-c);font-style:italic}.t-o{color:var(--t-o)}.t-b{color:var(--t-b)}.term{background:#08080c;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 24px 54px -30px #000000bf}.term-bar{display:flex;align-items:center;gap:12px;height:36px;padding:0 13px;background:var(--chrome);border-bottom:1px solid var(--line)}.term-bar .name{font-family:var(--mono);font-size:.7rem;color:var(--sub2);margin:0 auto;display:flex;align-items:center;gap:7px}.term-bar .name .icn{width:13px;height:13px}.term-body{font-family:var(--mono);font-size:.8rem;line-height:1.85;padding:14px 16px;min-height:150px;white-space:pre-wrap;word-break:break-word}.term-body .li{display:block}.term .pr{color:var(--t-t)}.term .cmd{color:var(--ink)}.term .out{color:var(--sub)}.term .ok{color:var(--t-s)}.term .caret{display:inline-block;width:8px;height:1.05em;vertical-align:-2px;background:var(--accent);margin-left:2px;animation:blink 1.1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.term-body{max-height:340px;overflow-y:auto;cursor:text}#termOut .li a{color:var(--t-p);text-decoration:underline;text-underline-offset:2px}#termOut .li a:hover{color:#fff}.term .thint{color:var(--accent);font-weight:600}.term-line{display:flex;align-items:center;gap:0;margin-top:2px}.term-line .pr{color:var(--t-t);white-space:pre;flex:0 0 auto}#termIn{flex:1;min-width:0;background:transparent;border:0;outline:none;color:var(--ink);font-family:var(--mono);font-size:.8rem;line-height:1.85;caret-color:var(--accent);padding:0}.segbtn{background:none;border:0;color:inherit;font:inherit;cursor:pointer;height:100%}.segbtn:hover{background:#0000002e}.ach-wrap{position:fixed;right:16px;bottom:calc(var(--h-status) + 14px);z-index:210;display:flex;flex-direction:column;gap:10px;pointer-events:none;max-width:calc(100vw - 32px)}.ach-toast{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line2);border-left:3px solid var(--accent);border-radius:12px;padding:12px 15px;box-shadow:0 22px 55px -20px #000000d9;transform:translate(130%);opacity:0;transition:transform .5s var(--ease),opacity .5s var(--ease);width:300px;max-width:100%}.ach-toast.show{transform:none;opacity:1}.ach-toast .k{width:34px;height:34px;border-radius:9px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;color:var(--accent);flex:0 0 auto}.ach-toast .k .icn{width:19px;height:19px}.ach-toast .t{font-size:.86rem;font-weight:600;letter-spacing:-.01em}.ach-toast .d{font-family:var(--mono);font-size:.68rem;color:var(--sub2);margin-top:2px}.matrix-canvas{position:fixed;inset:0;z-index:180;pointer-events:none;opacity:0;transition:opacity .6s;background:#03030659}.matrix-canvas.on{opacity:1;pointer-events:auto;cursor:pointer}.matrix-hint{position:fixed;left:50%;bottom:64px;transform:translate(-50%);z-index:181;font-family:var(--mono);font-size:.78rem;color:#a9ffcb;background:#0000009e;border:1px solid rgba(138,255,192,.4);border-radius:980px;padding:8px 16px;opacity:0;transition:.4s;pointer-events:none;white-space:nowrap}.matrix-hint.on{opacity:1}.game-modal{position:fixed;inset:0;z-index:220;display:none;align-items:center;justify-content:center;background:#040408bd;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:20px}.game-modal.on{display:flex}.game-win{background:var(--editor);border:1px solid var(--line2);border-radius:14px;overflow:hidden;box-shadow:0 44px 100px -30px #000000e6;width:min(420px,94vw)}.game-bar{display:flex;align-items:center;gap:12px;height:40px;padding:0 13px;background:var(--chrome);border-bottom:1px solid var(--line)}.game-bar .tl i{width:11px;height:11px}.game-bar .name{font-family:var(--mono);font-size:.74rem;color:var(--sub2);display:flex;align-items:center;gap:8px}.game-bar .name .icn{width:14px;height:14px}.gclose{margin-left:auto;background:none;border:0;color:var(--sub);cursor:pointer;font-family:var(--mono);font-size:.8rem;padding:4px 9px;border-radius:6px}.gclose:hover{color:#fff;background:#ffffff14}.game-body{padding:16px;display:flex;flex-direction:column;align-items:center;gap:12px}#snakeCanvas{background:var(--bg);border:1px solid var(--line);border-radius:8px;width:100%;max-width:340px;aspect-ratio:1;touch-action:none;image-rendering:auto}.game-hud{display:flex;justify-content:space-between;width:100%;max-width:340px;font-family:var(--mono);font-size:.78rem;color:var(--sub)}.game-hud b{color:var(--accent);font-variant-numeric:tabular-nums}.game-tip{font-family:var(--mono);font-size:.66rem;color:var(--sub2);text-align:center}@media (prefers-reduced-motion:reduce){.ach-toast,.matrix-canvas{transition:none}}.hero{position:relative;overflow:hidden;min-height:calc(100svh - var(--h-title) - var(--h-tabs) - var(--h-status));display:grid;grid-template-columns:1.02fr 1.1fr;align-items:center;gap:clamp(30px,5vw,64px);padding:clamp(40px,7vh,80px) clamp(20px,5vw,52px);border-top:none}.hero>.hero-glow{position:absolute;left:64%;top:34%;transform:translate(-50%,-50%);width:min(720px,70vw);height:520px;z-index:0;pointer-events:none;background:radial-gradient(ellipse at center,rgba(92,140,255,.17),rgba(92,140,255,.045) 42%,transparent 70%);filter:blur(16px);animation:breathe 8s ease-in-out infinite alternate}.hero:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:radial-gradient(rgba(255,255,255,.045) 1.1px,transparent 1.1px);background-size:26px 26px;-webkit-mask-image:radial-gradient(ellipse 80% 70% at 60% 42%,#000 12%,transparent 78%);mask-image:radial-gradient(ellipse 80% 70% at 60% 42%,#000 12%,transparent 78%)}@keyframes breathe{0%{opacity:.55;transform:translate(-50%,-50%) scale(.94)}to{opacity:1;transform:translate(-50%,-50%) scale(1.08)}}.hero-l{max-width:560px}.hero .eyebrow{margin-bottom:20px;color:var(--sub);letter-spacing:.16em}.hero h1{font-size:clamp(2.9rem,6.4vw,4.9rem);font-weight:700;letter-spacing:-.045em;line-height:.92;margin-bottom:16px;background:linear-gradient(168deg,#fff 28%,#d4d8e4 58%,#a8b0c8);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;filter:drop-shadow(0 2px 12px rgba(92,140,255,.08))}.hero h1 .en{display:block;font-size:.34em;font-weight:600;letter-spacing:.02em;-webkit-text-fill-color:var(--sub);color:var(--sub);margin-top:14px;font-family:var(--mono)}.hero .role{font-size:clamp(1.08rem,2.3vw,1.5rem);font-weight:500;letter-spacing:-.025em;color:var(--ink);margin-bottom:18px}.hero .role b{color:var(--accent);font-weight:600}.hero .lede{margin:0 0 22px;font-size:clamp(1rem,1.4vw,1.12rem);color:var(--sub);max-width:520px}.techrow{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.tchip{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:.78rem;font-weight:600;letter-spacing:.01em;color:var(--ink);border:1px solid var(--line2);border-radius:980px;padding:6px 13px;background:linear-gradient(180deg,rgba(255,255,255,.03),transparent),var(--surface);transition:transform .22s var(--ease),border-color .22s var(--ease),box-shadow .22s var(--ease)}.tchip .icn{width:14px;height:14px}.tchip:hover{transform:translateY(-2px)}.tc-flutter .icn{color:#54c5f8}.tc-flutter:hover{border-color:#54c5f88c;box-shadow:0 6px 20px -8px #54c5f873}.tc-ios .icn{color:#e8e8ed}.tc-ios:hover{border-color:#e8e8ed73;box-shadow:0 6px 20px -8px #e8e8ed4d}.tc-android .icn{color:#8ddb8c}.tc-android:hover{border-color:#8ddb8c80;box-shadow:0 6px 20px -8px #8ddb8c66}.tc-vue .icn{color:#42d392}.tc-vue:hover{border-color:#42d39280;box-shadow:0 6px 20px -8px #42d39266}.tc-react .icn{color:#61dafb}.tc-react:hover{border-color:#61dafb80;box-shadow:0 6px 20px -8px #61dafb66}.tc-web3 .icn{color:#c3a6ff}.tc-web3:hover{border-color:#c3a6ff80;box-shadow:0 6px 20px -8px #c3a6ff66}.tc-ai .icn{color:#ffd479}.tc-ai:hover{border-color:#ffd47980;box-shadow:0 6px 20px -8px #ffd47966}.heromets{display:flex;gap:0;flex-wrap:wrap;border:1px solid var(--line);border-radius:var(--r);background:linear-gradient(180deg,rgba(255,255,255,.02),transparent),var(--editor);margin-bottom:22px;overflow:hidden}.heromets .hm{flex:1 1 auto;min-width:112px;display:flex;flex-direction:column;gap:3px;padding:13px 18px;border-right:1px solid var(--line)}.heromets .hm:last-child{border-right:none}.heromets .hm b{font-size:1.06rem;font-weight:700;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}.heromets .hm span{font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--sub2)}.pastline{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:16px}.pastline .cap{font-family:var(--mono);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--sub2)}.pastline .cos{font-size:.9rem;font-weight:500;color:var(--sub);letter-spacing:.01em}.avail{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.74rem;letter-spacing:.02em;color:var(--sub);border:1px solid var(--line2);border-radius:980px;padding:6px 14px;margin-bottom:22px}.avail .dot{width:7px;height:7px;border-radius:50%;background:#36d399;box-shadow:0 0 #36d39980;animation:pulse 2.6s ease-out infinite}@keyframes pulse{0%{box-shadow:0 0 #36d39973}70%{box-shadow:0 0 0 8px #36d39900}to{box-shadow:0 0 #36d39900}}.hero-cta{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.hero-links{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:26px}.hero-link{font-family:var(--mono);font-size:.78rem;letter-spacing:.02em;color:var(--sub2);transition:color var(--t) var(--ease)}.hero-link:hover{color:var(--accent)}.hero-link-sep{color:var(--faint);font-size:.72rem;opacity:.7}.hero-r{display:flex;flex-direction:column;gap:16px;min-width:0}.hero-r .win{transform:perspective(1600px) rotateY(-3deg) rotateX(1.5deg);transform-origin:center}.aistrip{display:flex;flex-direction:column;gap:11px}.aistrip .cap{font-family:var(--mono);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--sub2)}.aistrip .row{display:flex;gap:8px;flex-wrap:wrap}.aibadge{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:.76rem;font-weight:500;color:var(--ink);border:1px solid var(--line);border-radius:var(--r-sm);padding:6px 12px;background:var(--surface);transition:.25s}.aibadge:hover{border-color:var(--accent);color:#fff;transform:translateY(-2px)}.aibadge .icn{width:14px;height:14px;color:var(--accent)}.stackline{display:flex;gap:7px;flex-wrap:wrap;margin-top:4px}.stackline .stk{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:.74rem;color:var(--sub);border:1px solid var(--line);border-radius:var(--r-sm);padding:5px 10px}.stackline .stk .appicon{width:20px;height:20px;border-radius:6px;box-shadow:none}.stackline .stk .appicon .icn{width:12px;height:12px}.about-body{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(28px,5vw,64px);margin-top:30px;align-items:start}.about-body p{color:var(--sub);font-size:1.05rem;margin-bottom:16px;line-height:1.72}.about-body p b{color:var(--ink);font-weight:500}.about-figure{font-size:clamp(1.2rem,2.5vw,1.62rem);font-weight:600;letter-spacing:-.022em;line-height:1.42;color:var(--ink);margin-bottom:0}.about-figure span{color:var(--accent)}.about .head em{font-style:normal;color:var(--sub2)}.band{padding:clamp(44px,7vh,74px) clamp(20px,5vw,44px);background:linear-gradient(180deg,rgba(255,255,255,.015),transparent)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;max-width:var(--wide);margin:0 auto;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.stat{background:var(--bg);padding:28px 22px;text-align:center;transition:background .3s;position:relative}.stat:hover{background:var(--surface)}.stat .si{display:none}.stat .n{font-size:clamp(2.2rem,5vw,3.3rem);font-weight:700;letter-spacing:-.04em;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums;font-family:var(--mono)}.stat .n i{font-style:normal;color:var(--accent)}.stat .l{font-family:var(--mono);color:var(--sub2);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;margin-top:12px}.cap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:38px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.cap-card{background:var(--bg);padding:28px 26px;transition:background .35s var(--ease)}.cap-card:hover{background:var(--surface)}.cap-card .k{width:42px;height:42px;border-radius:11px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;color:var(--accent);margin-bottom:16px;transition:.35s}.cap-card:hover .k{background:var(--accent);color:#fff}.cap-card .k .icn{width:22px;height:22px}.cap-card h3{font-size:1.16rem;font-weight:600;letter-spacing:-.02em;margin-bottom:8px}.cap-card h3 .fn{font-family:var(--mono);font-size:.72rem;color:var(--faint);font-weight:400;display:block;margin-top:2px}.cap-card p{color:var(--sub);font-size:.95rem;line-height:1.62}.skills-shell{margin-top:38px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--editor)}.skills-shell .win-bar{height:42px}.skill-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}.skill-card{background:var(--editor2);padding:22px;transition:background var(--t) var(--ease)}.skill-card:hover{background:var(--surface2)}.skill-card h4{display:flex;align-items:center;gap:10px;font-size:.95rem;font-weight:600;margin-bottom:14px;font-family:var(--mono)}.skill-card h4 .icn{width:18px;height:18px;color:var(--accent)}.skill-card h4 .kn{color:var(--faint);font-weight:400;margin-left:auto;font-size:.72rem}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{font-family:var(--mono);font-size:.75rem;letter-spacing:0;color:var(--t-s);background:#a4d78b0f;border:1px solid rgba(164,215,139,.16);border-radius:var(--r-sm);padding:4px 9px;transition:.22s}.chip:before{content:'"';color:var(--faint)}.chip:after{content:'"';color:var(--faint)}.chip:hover{color:#cbf0b2;border-color:#a4d78b66}.gitlog{margin-top:40px;position:relative}.glhead{font-family:var(--mono);font-size:.76rem;color:var(--sub2);margin-bottom:20px;display:flex;align-items:center;gap:10px}.glhead .icn{width:15px;height:15px;color:var(--accent)}.glhead b{color:var(--ink);font-weight:600}.commit{display:grid;grid-template-columns:22px 1fr;gap:16px;padding:0 0 26px;position:relative}.commit:last-child{padding-bottom:0}.cgraph{position:relative;display:flex;justify-content:center}.cnode{width:13px;height:13px;border-radius:50%;background:var(--editor);border:2px solid var(--accent);margin-top:3px;z-index:1;flex:0 0 auto;transition:.3s}.commit:hover .cnode{background:var(--accent);box-shadow:0 0 0 5px var(--accent-soft)}.cgraph:after{content:"";position:absolute;top:16px;bottom:-6px;left:50%;transform:translate(-50%);width:2px;background:linear-gradient(180deg,var(--line2),var(--line))}.commit:last-child .cgraph:after{display:none}.cmeta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-family:var(--mono);font-size:.74rem;margin-bottom:6px}.chash{color:var(--t-n)}.cref{color:var(--t-t);border:1px solid rgba(91,214,196,.28);border-radius:980px;padding:1px 9px;font-size:.68rem}.cref.head{color:var(--accent);border-color:#5c8cff66}.cdate{color:var(--faint);margin-left:auto}.cmsg{font-size:1.04rem;font-weight:600;letter-spacing:-.015em;margin-bottom:5px}.cmsg .cco{font-family:var(--mono);font-size:.8rem;font-weight:400;color:var(--accent);margin-left:8px}.cdesc{color:var(--sub);font-size:.94rem;line-height:1.6;max-width:680px}.cdesc:before{content:"→ ";color:var(--faint)}.proj-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;margin-top:36px}.web-sec .proj-grid{gap:20px;margin-top:28px}.proj-grid .pcard{grid-column:span 2}.proj-grid .pcard:nth-child(1){grid-column:span 4}.proj-grid .pcard:nth-child(6),.proj-grid .pcard:nth-child(7),.proj-grid .pcard:nth-child(8),.proj-grid .pcard:nth-child(9){grid-column:span 3}.web-sec .proj-grid .pcard{grid-column:span 3}.pcard{background:var(--editor);border:1px solid rgba(255,255,255,.055);border-radius:var(--r);overflow:hidden;transition:transform .35s var(--ease-out),border-color .35s var(--ease-out),box-shadow .35s var(--ease-out);display:flex;flex-direction:column;will-change:transform;box-shadow:inset 0 1px #ffffff0a,0 18px 48px -36px #000000bf}.pcard:hover{border-color:#5c8cff52;transform:translateY(-2px);box-shadow:inset 0 1px #ffffff0f,0 22px 56px -32px #5c8cff47}.pcard .pbar{display:flex;align-items:center;gap:10px;height:34px;padding:0 13px;background:linear-gradient(180deg,rgba(255,255,255,.02),transparent),var(--chrome);border-bottom:1px solid rgba(255,255,255,.05)}.pcard .pbar .tl i{width:8px;height:8px}.pcard .pbar .pfile{font-family:var(--mono);font-size:.7rem;color:var(--sub2);display:flex;align-items:center;gap:7px}.pcard .pbar .pfile .fdot{width:7px;height:7px;border-radius:2px}.pcard .pbar .plang{margin-left:auto;font-family:var(--mono);font-size:.64rem;color:var(--faint)}.pcard .pin{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1}a.appicon{cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s var(--ease)}a.appicon:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 12px 26px #0000008c}a.appicon:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.appicon.appimg{overflow:hidden;background:var(--editor)}.appicon.appimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit}.appicon.appimg .ph{opacity:.5}.phead{display:flex;align-items:center;gap:14px;margin-bottom:14px}.pmeta .ptag{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin-bottom:6px}.pmeta h3{font-size:1.18rem;font-weight:600;letter-spacing:-.02em;line-height:1.25}.proj-grid .pcard:first-child h3{font-size:1.42rem}.pcard p{color:var(--sub);font-size:.9rem;line-height:1.68;margin-bottom:16px;flex:1;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;overflow:hidden}.web-sec .pcard p{-webkit-line-clamp:3;line-clamp:3}.pstack{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:16px}.pstack span{font-family:var(--mono);font-size:.68rem;color:var(--t-p);border:1px solid rgba(136,211,255,.14);border-radius:var(--r-sm);padding:3px 8px;background:#88d3ff08}.pfeat{position:absolute;top:42px;right:12px;z-index:7;display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:.6rem;font-weight:600;letter-spacing:.04em;color:#ffe2a0;background:#141008b8;border:1px solid rgba(255,212,121,.28);border-radius:980px;padding:4px 9px;box-shadow:0 6px 16px -8px #0000008c;pointer-events:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.pfeat .icn{width:12px;height:12px}.plink{font-family:var(--mono);color:var(--accent);font-size:.8rem;letter-spacing:.02em;display:inline-flex;align-items:center;gap:6px;align-self:flex-start;position:relative;z-index:8}.plink:hover{color:#fff}.plink.muted{color:var(--sub2);pointer-events:none}.project-icon-button{border:0;padding:0;color:inherit;cursor:pointer}.project-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}button.plink{border:0;padding:0;background:none;cursor:pointer}.project-external{color:var(--sub2)}.project-modal-backdrop{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:24px;background:#020307e6;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.project-modal{position:relative;width:min(1120px,96vw);max-height:calc(100vh - 48px);overflow:auto;padding:30px;border:1px solid var(--line2);border-radius:18px;background:linear-gradient(180deg,rgba(114,155,255,.045),transparent 30%),var(--editor);box-shadow:0 40px 120px -28px #000000e6}.project-modal-close{position:absolute;top:16px;right:16px;z-index:2;width:40px;height:40px;border:1px solid var(--line2);border-radius:50%;background:var(--surface);color:var(--ink);cursor:pointer;font-size:1rem}.project-modal-close:hover{color:#fff;background:var(--accent)}.project-modal-head{display:flex;align-items:center;gap:16px;padding-right:54px;margin-bottom:16px}.project-modal-head .appicon{position:relative;flex:0 0 auto}.project-modal-head .ptag{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--sub2);margin-bottom:5px}.project-modal-head h2{font-size:clamp(1.5rem,3vw,2.25rem);line-height:1.15;letter-spacing:-.03em}.project-modal-desc{max-width:900px;color:var(--sub);font-size:.96rem;line-height:1.75;margin-bottom:14px}.project-modal-stack{margin-bottom:22px}.project-gallery-stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:320px;height:min(58vh,650px);overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#030409}.project-gallery-stage>img{width:100%;height:100%;object-fit:contain}.project-gallery-nav{position:absolute;top:50%;z-index:2;width:42px;height:56px;transform:translateY(-50%);border:1px solid rgba(255,255,255,.16);border-radius:10px;background:#05070cb8;color:#fff;font-size:2rem;cursor:pointer;backdrop-filter:blur(8px)}.project-gallery-nav:hover{background:#5c8cffb8}.project-gallery-nav.prev{left:14px}.project-gallery-nav.next{right:14px}.project-gallery-count{position:absolute;right:14px;bottom:12px;padding:4px 9px;border-radius:980px;background:#000000a3;color:#fff;font-family:var(--mono);font-size:.68rem}.project-gallery-thumbs{display:flex;gap:10px;margin-top:12px;padding-bottom:4px;overflow-x:auto}.project-gallery-thumbs button{flex:0 0 112px;height:72px;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:9px;background:var(--surface);cursor:pointer;opacity:.56;transition:opacity .2s,border-color .2s,transform .2s}.project-gallery-thumbs button:hover,.project-gallery-thumbs button.active{opacity:1;border-color:var(--accent);transform:translateY(-1px)}.project-gallery-thumbs img{width:100%;height:100%;display:block;object-fit:contain;background:#05060a}.project-modal-link{margin-top:20px}@media (max-width:560px){.project-modal-backdrop{padding:0}.project-modal{width:100%;height:100%;max-height:none;border:0;border-radius:0;padding:22px 16px 32px}.project-modal-close{position:fixed;top:12px;right:12px}.project-modal-head{padding-right:46px}.project-modal-desc{font-size:.88rem}.project-gallery-stage{height:52vh;min-height:280px}.project-gallery-thumbs button{flex-basis:82px;height:58px}.project-gallery-nav{width:36px;height:48px}}.edu-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:38px}.edu-rows{display:grid;grid-template-columns:1fr 1fr;gap:2px clamp(24px,4vw,48px)}.edu-rows .edu-row{border-bottom:none;padding:9px 0}.edu-box .cert-gallery-wrap{margin-top:20px;border-top:1px solid var(--line);padding-top:18px}.edu-box{background:linear-gradient(180deg,rgba(255,255,255,.02),transparent 40%),var(--editor);border:1px solid var(--line);border-radius:var(--r);padding:26px}.edu-box h4{display:flex;align-items:center;gap:9px;font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sub2);font-weight:500;margin-bottom:16px}.edu-box h4 .icn{width:16px;height:16px;color:var(--accent)}.edu-row{padding:13px 0;border-bottom:1px solid var(--line)}.edu-row:last-child{border:none;padding-bottom:0}.edu-row .a{font-size:1.02rem;font-weight:500}.edu-row .b{color:var(--sub2);font-size:.85rem;margin-top:3px;font-family:var(--mono);letter-spacing:.02em}.cert-chips{display:flex;flex-wrap:wrap;gap:8px}.cert-chips span{display:inline-flex;align-items:center;gap:7px;font-size:.84rem;color:var(--sub);border:1px solid var(--line2);border-radius:8px;padding:7px 12px}.cert-chips .icn{width:15px;height:15px;color:var(--accent)}.cert-gallery-wrap{margin-top:16px}.cert-lead{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--sub2);margin-bottom:14px}.cert-lead .icn{width:14px;height:14px;color:var(--accent)}.cert-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.cert-thumb{position:relative;display:block;padding:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--surface);cursor:pointer;aspect-ratio:4/3;transition:transform .28s var(--ease),border-color .28s var(--ease),box-shadow .28s var(--ease)}.cert-thumb:hover{transform:translateY(-3px);border-color:#5c8cff66;box-shadow:0 24px 48px -26px #5c8cff66}.cert-thumb img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;background:#fff}.cert-cap{position:absolute;left:0;right:0;bottom:0;font-family:var(--mono);font-size:.68rem;color:#fff;background:linear-gradient(0deg,#000000d1,#0000);padding:16px 10px 8px;text-align:center}.cert-thumb:after{content:"⤢";position:absolute;top:8px;right:9px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:#00000080;border-radius:6px;color:#fff;font-size:.82rem;opacity:0;transition:.25s}.cert-thumb:hover:after{opacity:1}.cert-thumb:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.lightbox{position:fixed;inset:0;z-index:230;display:none;align-items:center;justify-content:center;background:#040408e6;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:24px}.lightbox.on{display:flex}.lightbox img{max-width:min(1000px,94vw);max-height:88vh;border-radius:10px;box-shadow:0 40px 100px -20px #000000e6;border:1px solid var(--line2)}.lb-close{position:fixed;top:calc(var(--h-title) + 14px);right:18px;z-index:231;width:40px;height:40px;border-radius:50%;background:#14141aeb;border:1px solid var(--line2);color:var(--ink);font-size:1.1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.lb-close:hover{background:var(--accent);color:#fff}.cred-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-top:20px}.cred-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.02),transparent 42%),var(--surface);padding:0;text-align:left;font:inherit;color:inherit;transition:transform .28s var(--ease),border-color .28s var(--ease),box-shadow .28s var(--ease)}button.cred-card{cursor:pointer}button.cred-card:hover{transform:translateY(-4px);border-color:#5c8cff6b;box-shadow:0 26px 52px -28px #5c8cff6b}button.cred-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.cred-img{aspect-ratio:4/3;overflow:hidden;background:#fff;position:relative}.cred-img img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}.cred-img:after{content:"⤢";position:absolute;top:8px;right:8px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:#00000080;border-radius:6px;color:#fff;font-size:.8rem;opacity:0;transition:.25s}button.cred-card:hover .cred-img:after{opacity:1}.cred-meta{padding:11px 13px 13px;display:flex;flex-direction:column;gap:3px;border-top:1px solid var(--line)}.cred-name{font-size:.9rem;font-weight:600;letter-spacing:-.01em;line-height:1.25}.cred-org{font-family:var(--mono);font-size:.66rem;color:var(--sub2)}.cred-card.noimg .cred-badge{aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;background:linear-gradient(140deg,#5c8cff29,#5c8cff08)}.cred-card.noimg .cred-badge .k{width:50px;height:50px;border-radius:13px;background:linear-gradient(140deg,#5a9bf2,#3463df);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 22px -6px #5c8cff99}.cred-card.noimg .cred-badge .k .icn{width:25px;height:25px;stroke:#fff}.contact-term{max-width:640px;margin:30px auto 0;text-align:left}.contact-term .term-body{min-height:0}.ct-row .out a{color:var(--t-s)}.ct-row .out a:hover{color:#cbf0b2;text-decoration:underline}.contact .mail{display:inline-block;font-size:clamp(1.7rem,4.4vw,2.7rem);font-weight:700;letter-spacing:-.04em;color:var(--ink);margin:26px 0 22px;transition:color var(--t) var(--ease);font-family:var(--mono)}.contact .mail:hover{color:var(--accent)}.socials{display:flex;gap:11px;justify-content:center;flex-wrap:wrap}.soc{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.82rem;letter-spacing:.01em;color:var(--ink);border:1px solid var(--line2);border-radius:980px;padding:10px 18px;transition:.25s}.soc:hover{background:#ffffff0d;border-color:var(--sub2)}.soc .icn{width:17px;height:17px;color:var(--accent)}.qr-block{margin-top:44px}.qr-lead{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sub2)}.qr-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;max-width:640px;margin:18px auto 0}.qr-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 16px 18px;display:flex;flex-direction:column;align-items:center;gap:11px;transition:transform .28s var(--ease),border-color .28s var(--ease),box-shadow .28s var(--ease)}a.qr-card:hover{border-color:var(--line2);transform:translateY(-3px);box-shadow:0 22px 44px -26px #000000b3}.qr-img{width:100%;aspect-ratio:1;background:#fff;border-radius:12px;padding:9px;box-shadow:0 4px 14px #00000059}.qr-img img{width:100%;height:100%;display:block}.qr-name{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.9rem;font-weight:600;color:var(--ink)}.qr-name .icn{width:18px;height:18px}.qr-handle{font-family:var(--mono);font-size:.72rem;color:var(--sub2);word-break:break-all;text-align:center}.qr-card.tg .qr-name .icn{color:#4aa8e0}.qr-card.wa .qr-name .icn,.qr-card.wx .qr-name .icn{color:#3ad169}footer{border-top:1px solid var(--line);padding:32px 20px;text-align:center;color:var(--sub2);font-size:.8rem;line-height:1.7}footer div:first-child{font-family:var(--mono);letter-spacing:.02em}.footer-legal{margin-top:12px;display:flex;justify-content:center;gap:10px;align-items:center;font-family:var(--mono);font-size:.72rem}.footer-legal a{color:var(--sub);transition:color .2s var(--ease)}.footer-legal a:hover{color:var(--accent)}.footer-filing{margin-top:10px;font-family:var(--mono);font-size:.7rem}.footer-filing a{color:var(--sub2);transition:color .2s var(--ease)}.footer-filing a:hover{color:var(--ink)}.footer-support{margin-top:12px;display:flex;justify-content:center;gap:8px;align-items:center;flex-wrap:wrap;color:var(--sub);font-family:var(--mono);font-size:.72rem}.footer-support a{color:var(--sub);text-decoration:none;transition:color .2s var(--ease)}.footer-support a:hover{color:var(--accent)}.code .cl{transition:background .2s}.code .cl:hover{background:#ffffff09}.cl.hl{background:#5c8cff17;box-shadow:inset 2px 0 0 var(--accent)}.mailwrap{display:inline-flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center}.copybtn{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:.74rem;color:var(--sub);border:1px solid var(--line2);border-radius:8px;padding:8px 12px;background:transparent;cursor:pointer;transition:.2s}.copybtn:hover{color:var(--ink);border-color:var(--sub2);background:#ffffff0a}.copybtn.done{color:var(--t-s);border-color:#a4d78b66}.copybtn .icn{width:14px;height:14px}.btn .icn{width:16px;height:16px;margin-right:-2px}.proof{background:linear-gradient(180deg,rgba(255,255,255,.015),transparent);padding:clamp(30px,5vh,52px) clamp(20px,5vw,44px)}.web-cats{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 12px}.web-cat{border:1px solid var(--line2);border-radius:980px;background:#ffffff07;color:var(--sub);font-family:var(--mono);font-size:.74rem;padding:7px 12px;cursor:pointer;transition:color .22s var(--ease),border-color .22s var(--ease),background .22s var(--ease),transform .22s var(--ease)}.web-cat:hover,.web-cat.on{color:#fff;border-color:#5c8cff7a;background:linear-gradient(135deg,#5c8cff38,#5bd6c414);transform:translateY(-1px)}.web-ai{margin:18px 0 10px;padding:16px;border:1px solid var(--line2);border-radius:18px;background:linear-gradient(135deg,#5c8cff14,#5bd6c409),var(--editor);box-shadow:0 22px 54px -38px #5c8cff8c}.web-ai-copy{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.web-ai-title{display:flex;align-items:center;gap:8px;font-weight:700;letter-spacing:-.01em}.web-ai-title .icn{width:17px;height:17px;color:var(--accent)}.web-ai-copy p{margin:0;color:var(--sub);font-size:.86rem;line-height:1.55}.web-ai-form{display:flex;gap:10px}.web-ai-form input{flex:1;min-width:0;background:var(--surface);border:1px solid var(--line2);border-radius:14px;padding:11px 13px;color:var(--ink);font-size:.9rem;outline:none}.web-ai-form input:focus{border-color:#5c8cff8c;box-shadow:0 0 0 4px #5c8cff14}.web-ai-form button,.web-ai-quick button{border:1px solid rgba(92,140,255,.36);border-radius:14px;background:#5c8cff24;color:var(--ink);font-weight:650;padding:0 14px;cursor:pointer;transition:.22s}.web-ai-form button:disabled{opacity:.55;cursor:not-allowed}.web-ai-form button:not(:disabled):hover,.web-ai-quick button:hover{border-color:#5c8cff94;background:#5c8cff38;transform:translateY(-1px)}.web-ai-quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.web-ai-quick button{font-family:var(--mono);font-size:.7rem;padding:6px 10px;border-radius:980px;background:#ffffff09;color:var(--sub)}.web-ai-answer{margin-top:12px;border:1px solid rgba(91,214,196,.22);border-radius:14px;background:#5bd6c40e;padding:11px 13px;color:var(--sub);font-size:.86rem;line-height:1.62;white-space:pre-wrap}.web-ai-answer p{margin:0}.web-ai-results{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}.web-ai-result{display:flex;flex-direction:column;gap:5px;min-height:118px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#ffffff07;text-decoration:none;transition:border-color .22s var(--ease),background .22s var(--ease),transform .22s var(--ease)}.web-ai-result:hover{border-color:#5c8cff7a;background:#5c8cff14;transform:translateY(-1px)}.web-ai-result span{font-family:var(--mono);font-size:.64rem;color:var(--accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.web-ai-result strong{color:var(--ink);font-size:.84rem;line-height:1.35}.web-ai-result p{margin:0;color:var(--sub);font-size:.74rem;line-height:1.5}.web-search{display:flex;align-items:center;gap:14px;justify-content:space-between;margin:30px 0 8px}.web-search-box{flex:1;min-width:0;display:flex;align-items:center;gap:11px;min-height:52px;padding:0 12px 0 18px;border:1px solid var(--line2);border-radius:16px;background:linear-gradient(180deg,#ffffff0b,#ffffff03),var(--editor);box-shadow:0 18px 48px -34px #5c8cff8c,inset 0 1px #ffffff0a;transition:border-color .28s var(--ease),box-shadow .28s var(--ease),background .28s var(--ease)}.web-search-box:focus-within{border-color:#5c8cff8c;box-shadow:0 24px 58px -34px #5c8cffb3,0 0 0 4px #5c8cff14,inset 0 1px #ffffff0f}.web-search-box .icn{width:18px;height:18px;color:var(--accent);flex:0 0 auto}.web-search-box input{flex:1;min-width:0;background:transparent;border:0;outline:0;color:var(--ink);font:500 .95rem/1.4 var(--sans);letter-spacing:-.01em}.web-search-box input::placeholder{color:var(--faint)}.web-search-clear{flex:0 0 auto;border:1px solid var(--line);border-radius:980px;background:#ffffff09;color:var(--sub);font-family:var(--mono);font-size:.7rem;padding:6px 10px;transition:color .22s var(--ease),border-color .22s var(--ease),background .22s var(--ease)}.web-search-clear:hover{color:#fff;border-color:#5c8cff66;background:var(--accent-soft)}.web-search-meta{flex:0 0 auto;font-family:var(--mono);font-size:.72rem;color:var(--sub2);border:1px solid var(--line);border-radius:980px;padding:8px 13px;background:#ffffff06;font-variant-numeric:tabular-nums}.web-empty{margin-top:18px;display:flex;align-items:center;justify-content:center;gap:10px;min-height:126px;border:1px dashed rgba(92,140,255,.28);border-radius:16px;background:linear-gradient(180deg,#5c8cff0e,#ffffff03);color:var(--sub);font-size:.94rem}.web-empty .icn{width:19px;height:19px;color:var(--accent)}.web-group{margin-top:34px}.web-group-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:16px}.web-group-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.web-group-title h3{margin:0;font-size:1.18rem;letter-spacing:-.02em}.web-group-head p{margin:8px 0 0;color:var(--sub);font-size:.88rem;line-height:1.55;max-width:52ch}.web-group-mark{display:inline-flex;align-items:center;font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);border:1px solid rgba(92,140,255,.34);border-radius:980px;padding:5px 10px;background:#5c8cff1f}.web-group-mark.student{color:#7fd8c4;border-color:#5bd6c457;background:#5bd6c41a}.web-group-count{font-family:var(--mono);font-size:.72rem;color:var(--sub2);border:1px solid var(--line);border-radius:980px;padding:5px 10px;background:#ffffff08}.web-group-featured{padding:18px 18px 8px;border:1px solid rgba(92,140,255,.18);border-radius:22px;background:linear-gradient(180deg,#5c8cff12,#ffffff03)}.web-group-student{padding:18px 18px 8px;border:1px solid rgba(91,214,196,.16);border-radius:22px;background:linear-gradient(180deg,#5bd6c40f,#ffffff03)}.web-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;margin-top:0}.web-grid-featured{grid-template-columns:repeat(3,1fr);gap:18px}.web-grid-student{grid-template-columns:repeat(4,1fr);gap:14px}.web-card{display:flex;flex-direction:column;background:var(--editor);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s cubic-bezier(.22,1,.36,1),border-color .4s;text-decoration:none;transform-style:preserve-3d;perspective:800px}.web-card:hover{transform:translateY(-6px) scale(1.02);border-color:#5c8cff73;box-shadow:0 30px 60px -20px #5c8cff40,0 12px 24px -10px #00000080}.web-card-featured{min-height:100%;border-color:#5c8cff38}.web-card-student{border-color:#5bd6c429}.web-card-student:hover{border-color:#5bd6c46b;box-shadow:0 28px 54px -22px #5bd6c438,0 12px 24px -10px #00000073}.web-card-agent{border-color:#c3a6ff3d}.web-card-agent:hover{border-color:#c3a6ff80;box-shadow:0 28px 58px -22px #c3a6ff47,0 12px 24px -10px #00000073}.web-chrome{display:flex;align-items:center;gap:10px;height:38px;padding:0 14px;background:var(--chrome);border-bottom:1px solid var(--line);flex-shrink:0}.web-chip{flex:0 0 auto;font-family:var(--mono);font-size:.58rem;letter-spacing:.04em;color:#7fd8c4;border:1px solid rgba(91,214,196,.28);border-radius:980px;padding:3px 7px;background:#5bd6c414}.web-dots{display:flex;gap:6px;flex-shrink:0}.web-dots i{width:9px;height:9px;border-radius:50%;display:block}.web-dots i:nth-child(1){background:#ff5f57}.web-dots i:nth-child(2){background:#febc2e}.web-dots i:nth-child(3){background:#28c840}.web-bar{flex:1;min-width:0;display:flex;align-items:center;gap:6px;background:var(--bg);border-radius:6px;padding:4px 10px;font-family:var(--mono);font-size:.68rem;color:var(--sub2);overflow:hidden}.web-bar .icn{width:12px;height:12px;flex-shrink:0;color:var(--faint)}.web-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.web-body{flex:1;position:relative;padding:24px 22px 20px;display:flex;flex-direction:column;justify-content:space-between;min-height:180px;overflow:hidden}.web-card-student .web-body{padding:18px 16px 16px;min-height:148px}.web-glow{position:absolute;top:-40%;right:-20%;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle,rgba(92,140,255,.12) 0%,transparent 70%);pointer-events:none;transition:transform .5s cubic-bezier(.22,1,.36,1),opacity .5s;opacity:.5}.web-glow.student{background:radial-gradient(circle,rgba(91,214,196,.14) 0%,transparent 70%)}.web-glow.agent{background:radial-gradient(circle,rgba(195,166,255,.18) 0%,transparent 70%)}.web-card:hover .web-glow{transform:scale(1.6) translate(-20%,-20%);opacity:.9}.web-inner{position:relative;z-index:1;display:flex;flex-direction:column;flex:1}.web-domain{font-family:var(--mono);font-size:.64rem;letter-spacing:.04em;color:var(--accent);margin-bottom:12px;opacity:.85}.web-card-student .web-domain{color:#7fd8c4;margin-bottom:8px}.web-title{font-size:1.1rem;font-weight:600;letter-spacing:-.01em;color:var(--ink);margin-bottom:10px;line-height:1.3}.web-card-student .web-title{font-size:.98rem;margin-bottom:8px}.web-desc{font-size:.84rem;color:var(--sub);line-height:1.55;flex:1;margin-bottom:14px}.web-card-student .web-desc{font-size:.78rem;margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.web-visit{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:.72rem;color:var(--sub);transition:color .25s,gap .25s}.web-visit .icn{width:13px;height:13px;transition:transform .25s cubic-bezier(.22,1,.36,1)}.web-card:hover .web-visit{color:var(--accent);gap:9px}.web-card-student:hover .web-visit{color:#7fd8c4}.web-card:hover .web-visit .icn{transform:translate(3px)}.web-more{margin-top:32px;text-align:center}@media (max-width:1120px){.web-grid,.web-grid-featured,.web-grid-student{grid-template-columns:repeat(3,1fr)}}@media (max-width:720px){.web-ai-results{grid-template-columns:repeat(2,1fr)}.web-search{align-items:stretch;flex-direction:column;gap:10px}.web-search-box{min-height:48px}.web-search-meta{align-self:flex-start}.web-grid,.web-grid-featured,.web-grid-student{grid-template-columns:repeat(2,1fr);gap:14px}.web-body{padding:18px 16px 16px;min-height:150px}.web-title{font-size:.95rem}.web-desc{font-size:.78rem}}@media (max-width:420px){.web-grid,.web-grid-featured,.web-grid-student{grid-template-columns:1fr}}@media (max-width:560px){.web-showcase{padding:44px 16px 52px}.web-showcase .head{margin-bottom:24px}.web-showcase .lede{margin-bottom:22px}.web-cats{flex-wrap:nowrap;overflow-x:auto;margin:22px -16px 8px;padding:0 16px 4px;scrollbar-width:none}.web-cats::-webkit-scrollbar{display:none}.web-cat{flex:0 0 auto;font-size:.68rem;padding:6px 10px}.web-ai{padding:14px;margin:14px 0 8px;border-radius:16px}.web-ai-copy{display:block;margin-bottom:10px}.web-ai-copy p{font-size:.78rem;margin-top:5px}.web-ai-form{flex-direction:column}.web-ai-form input{font-size:.84rem;padding:10px 12px}.web-ai-form button{min-height:40px}.web-ai-quick{flex-wrap:nowrap;overflow-x:auto;margin-left:-14px;margin-right:-14px;padding:0 14px 3px;scrollbar-width:none}.web-ai-quick::-webkit-scrollbar{display:none}.web-ai-quick button{flex:0 0 auto}.web-ai-answer{font-size:.78rem}.web-ai-results{grid-template-columns:1fr}.web-ai-result{min-height:auto}.web-search{margin:18px 0 6px}.web-search-box{border-radius:14px;padding-left:14px}.web-search-box input{font-size:.86rem}.web-search-clear{font-size:.66rem;padding:5px 9px}.web-search-meta{font-size:.66rem;padding:6px 10px}.web-empty{min-height:104px;font-size:.84rem;text-align:center;padding:18px}.web-group{margin-top:22px}.web-group-featured,.web-group-student{padding:14px 12px 6px;border-radius:18px}.web-group-head p{font-size:.78rem}.web-group-title h3{font-size:1rem}.web-grid,.web-grid-featured,.web-grid-student{gap:12px}.web-body{padding:16px 14px 14px;min-height:130px}.web-title{font-size:.9rem}.web-desc{font-size:.76rem;margin-bottom:10px}.web-domain{font-size:.62rem;margin-bottom:8px}.web-chrome{height:34px;padding:0 10px}.web-bar{font-size:.64rem}.web-chip{display:none}.web-visit{font-size:.68rem}}.proof-in{max-width:var(--wide);margin:0 auto;display:flex;flex-wrap:wrap;gap:12px;align-items:stretch}.proof-lead{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sub2);width:100%;margin-bottom:4px;display:flex;align-items:center;gap:8px}.proof-lead .icn{width:14px;height:14px;color:var(--accent)}.proof-item{flex:1 1 190px;display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r);background:var(--editor);transition:.25s}.proof-item:hover{border-color:var(--line2);background:var(--surface2);transform:translateY(-2px)}.proof-item .pk{width:34px;height:34px;border-radius:9px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;color:var(--accent);flex:0 0 auto}.proof-item .pk .icn{width:18px;height:18px}.proof-item .pt{font-size:.92rem;font-weight:600;line-height:1.22;letter-spacing:-.01em}.proof-item .ps{font-family:var(--mono);font-size:.68rem;color:var(--sub2);margin-top:3px}.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:38px}.svc-card{background:var(--editor);border:1px solid var(--line);border-radius:var(--r);padding:24px 26px;transition:transform .28s var(--ease),border-color .28s var(--ease),box-shadow .28s var(--ease);position:relative;overflow:hidden}.svc-card:hover{border-color:#5c8cff66;transform:translateY(-3px);box-shadow:0 26px 54px -30px #5c8cff59}.svc-card .sh{display:flex;align-items:center;gap:13px;margin-bottom:12px}.svc-card .sk{width:40px;height:40px;border-radius:11px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;color:var(--accent);flex:0 0 auto;transition:.28s}.svc-card:hover .sk{background:var(--accent);color:#fff}.svc-card .sk .icn{width:21px;height:21px}.svc-card h3{font-size:1.12rem;font-weight:600;letter-spacing:-.02em}.svc-card h3 .fn{display:block;font-family:var(--mono);font-size:.7rem;color:var(--faint);font-weight:400;margin-top:3px}.svc-card p{color:var(--sub);font-size:.94rem;line-height:1.62}.svc-num{position:absolute;top:16px;right:18px;font-family:var(--mono);font-size:.72rem;color:var(--faint)}.model-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.mchip{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.8rem;color:var(--sub);border:1px solid var(--line2);border-radius:980px;padding:8px 15px;transition:.22s}.mchip:hover{color:var(--ink);border-color:var(--sub2)}.mchip .icn{width:15px;height:15px;color:var(--accent)}.work-cta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:30px}.fact-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:22px 0 30px}.fact-chip{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.8rem;color:var(--ink);border:1px solid rgba(54,211,153,.32);background:#36d39912;border-radius:980px;padding:8px 15px}.fact-chip .icn{width:15px;height:15px;color:#36d399;flex:0 0 auto}@media (max-width:640px){.fact-row{gap:8px}.fact-chip{font-size:.74rem;padding:7px 12px}}.cvmenu{position:relative;display:inline-flex}.cvmenu-btn{white-space:nowrap}.cvmenu-caret{display:inline-block;width:0;height:0;margin-left:2px;border:4px solid transparent;border-top-color:currentColor;opacity:.55;transition:transform .2s var(--ease);transform:translateY(2px)}.cvmenu-caret.up{transform:rotate(180deg) translateY(-2px)}.cvmenu-pop{position:absolute;top:calc(100% + 8px);left:0;min-width:196px;padding:6px;background:var(--surface);border:1px solid var(--line2);border-radius:14px;box-shadow:0 16px 40px -12px #0000008c;z-index:60;backdrop-filter:blur(12px)}.cvmenu-pop.up{top:auto;bottom:calc(100% + 8px)}.cvmenu-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:9px;color:var(--ink);font-size:.92rem;transition:background var(--t) var(--ease)}.cvmenu-item:hover,.cvmenu-item.on{background:#ffffff0f}.cvmenu-item.on .cvmenu-lang{color:var(--accent)}.cvmenu-lang{font-weight:500}.cvmenu-ext{font-size:.72rem;color:var(--sub2);letter-spacing:.04em;text-transform:uppercase}.ai-fab{position:fixed;right:24px;bottom:calc(var(--h-status) + 66px);z-index:190;display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border-radius:980px;border:1px solid rgba(92,140,255,.5);color:#fff;background:linear-gradient(180deg,#6f99ff,#5580f2);box-shadow:0 10px 28px -10px #5c8cff99;font-size:.92rem;font-weight:600;cursor:pointer;transition:transform var(--t) var(--ease),opacity var(--t) var(--ease)}.ai-fab .icn{width:18px;height:18px}.ai-fab:hover{transform:translateY(-2px)}.ai-fab.hide{opacity:0;pointer-events:none;transform:translateY(8px)}.ai-fab:after{content:"";position:absolute;inset:-4px;border-radius:inherit;border:1px solid rgba(92,140,255,.35);animation:aiPulse 2.4s ease-out infinite}@keyframes aiPulse{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.18)}}.ai-panel{position:fixed;right:24px;bottom:calc(var(--h-status) + 20px);z-index:191;width:min(340px,calc(100vw - 32px));max-height:min(600px,calc(100vh - var(--h-title) - var(--h-tabs) - 110px));display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line2);border-radius:18px;box-shadow:0 30px 70px -20px #0009;overflow:hidden;backdrop-filter:blur(16px)}.ai-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:16px 16px 12px;border-bottom:1px solid var(--line)}.ai-title{display:flex;align-items:center;gap:7px;font-size:.92rem;font-weight:700;color:var(--ink)}.ai-title .icn{width:15px;height:15px;color:var(--accent);flex:0 0 auto}.ai-sub{margin-top:4px;font-size:.74rem;color:var(--sub2)}.ai-close{flex:0 0 auto;width:26px;height:26px;border-radius:50%;border:1px solid var(--line2);background:transparent;color:var(--sub);cursor:pointer;font-size:.8rem;line-height:1}.ai-close:hover{color:var(--ink);background:#ffffff0f}.ai-body{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:12px;min-height:180px}.ai-msg p{font-size:.88rem;line-height:1.55;color:var(--ink);white-space:pre-wrap}.ai-msg.bot{align-self:flex-start;max-width:100%}.ai-msg.me{align-self:flex-end;max-width:88%}.ai-msg.me p{background:linear-gradient(180deg,#6f99ff,#5580f2);color:#fff;padding:9px 13px;border-radius:14px 14px 4px}.ai-msg.bot p{background:var(--surface);border:1px solid var(--line);padding:9px 13px;border-radius:14px 14px 14px 4px}.ai-msg.err p{border-color:#ff5f5766}.ai-trace{font-family:var(--mono);font-size:.66rem;letter-spacing:.04em;color:var(--sub2);margin-bottom:6px;padding:4px 8px;border-radius:8px;background:#5c8cff14;border:1px solid rgba(92,140,255,.15);max-width:100%;overflow-wrap:anywhere}.ai-thinking-label{font-size:.74rem!important;color:var(--sub2)!important;background:transparent!important;border:none!important;padding:0 2px 4px!important}.ai-quick{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}.ai-chip{font-size:.78rem;color:var(--sub);border:none;border-radius:980px;padding:6px 12px;background:var(--surface);cursor:pointer;transition:.2s;text-decoration:none;display:inline-flex;align-items:center}.ai-chip:hover{color:var(--ink);background:#5c8cff24}.ai-thinking{display:inline-flex;gap:4px;background:var(--surface);border:1px solid var(--line);padding:11px 15px;border-radius:14px 14px 14px 4px}.ai-thinking span{width:6px;height:6px;border-radius:50%;background:var(--sub2);animation:aiDot 1.1s ease-in-out infinite}.ai-thinking span:nth-child(2){animation-delay:.15s}.ai-thinking span:nth-child(3){animation-delay:.3s}@keyframes aiDot{0%,80%,to{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.ai-input{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line)}.ai-input input{flex:1;min-width:0;background:var(--surface);border:1px solid var(--line2);border-radius:980px;padding:10px 15px;color:var(--ink);font-size:.86rem}.ai-input input:focus{outline:none;border-color:var(--accent)}.ai-input button{flex:0 0 auto;width:36px;height:36px;border-radius:50%;border:none;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.2s}.ai-input button .icn{width:16px;height:16px}.ai-input button:disabled{opacity:.4;cursor:not-allowed}.ai-input button:not(:disabled):hover{background:#6b92ff}.ai-disclaimer{padding:0 16px 12px;font-size:.68rem;color:var(--faint);text-align:center}@media (max-width:560px){.ai-fab{right:14px;bottom:calc(var(--h-status) + 58px);width:50px;height:50px;padding:0;justify-content:center;gap:0}.ai-fab span{display:none}.ai-fab .icn{width:20px;height:20px}.ai-panel{right:16px;left:16px;width:auto;bottom:calc(var(--h-status) + 14px);max-height:min(60vh,420px)}}.scrollnav{position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:130;display:flex;flex-direction:column;align-items:center;gap:14px}.sn-idx{font-family:var(--mono);font-size:.68rem;letter-spacing:.04em;color:var(--sub2);font-variant-numeric:tabular-nums;writing-mode:vertical-rl;text-orientation:mixed}.sn-idx .sn-sep{opacity:.5;margin:3px 0;display:block}.sn-dots{display:flex;flex-direction:column;align-items:center;gap:11px;padding:12px 0;position:relative}.sn-dots:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--line);transform:translate(-50%);z-index:-1}.sn-dot{position:relative;width:7px;height:7px;border-radius:50%;background:var(--line2);border:1px solid transparent;transition:background .25s var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease)}.sn-dot:hover{background:var(--sub2);transform:scale(1.35)}.sn-dot.active{background:var(--accent);transform:scale(1.5);box-shadow:0 0 0 3px var(--accent-soft),0 0 14px #5c8cff8c}.sn-tip{position:absolute;right:calc(100% + 12px);top:50%;transform:translateY(-50%) translate(6px);font-family:var(--mono);font-size:.72rem;color:var(--ink);background:var(--panel);border:1px solid var(--line2);border-radius:6px;padding:5px 10px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s var(--ease),transform .2s var(--ease);box-shadow:0 10px 26px -8px #0009}.sn-dot:hover .sn-tip,.sn-dot:focus-visible .sn-tip{opacity:1;transform:translateY(-50%) translate(0)}.sn-dot:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media (max-width:1180px){.scrollnav{right:14px}.sn-tip{display:none}}@media (max-width:960px){.scrollnav{display:none}}.skip-link{position:fixed;left:50%;top:-64px;transform:translate(-50%);z-index:300;background:var(--accent);color:#fff;padding:10px 18px;border-radius:0 0 12px 12px;font-size:.9rem;font-weight:600;transition:top .2s var(--ease)}.skip-link:focus{top:0}.cap-card,.skill-card,.pcard{position:relative;overflow:hidden}.cap-card:after,.skill-card:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .45s var(--ease);background:radial-gradient(300px circle at var(--mx,50%) var(--my,50%),rgba(92,140,255,.11),transparent 62%);z-index:0}.cap-card:hover:after,.skill-card:hover:after{opacity:1}.cap-card>*,.skill-card>*{position:relative;z-index:1}*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.14) transparent}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff21;border:3px solid var(--bg);border-radius:980px}::-webkit-scrollbar-thumb:hover{background:#ffffff38}a:focus-visible,button:focus-visible,.btn:focus-visible,.lang:focus-visible,.soc:focus-visible,.aibadge:focus-visible,.tab:focus-visible,.tfile:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:8px}.plink{position:relative}.plink:after{content:"";position:absolute;left:0;right:100%;bottom:-3px;height:1px;background:currentColor;opacity:.55;transition:right .3s var(--ease)}.plink:hover:after{right:0}.plink.muted:after{display:none}.chip,.pstack span,.aibadge{overflow-wrap:anywhere}@media (hover:hover) and (pointer:fine){.t3d{position:relative;will-change:transform}.t3d:before{content:"";position:absolute;inset:0;z-index:6;pointer-events:none;border-radius:inherit;opacity:0;transition:opacity .35s var(--ease);background:radial-gradient(460px circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.09),rgba(92,140,255,.045) 40%,transparent 64%)}.t3d:hover:before{opacity:1}.pcard.t3d:hover{box-shadow:0 34px 70px -26px #5c8cff73,0 12px 28px -14px #000000a6}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.rv{opacity:1;transform:none;filter:none}.code.reveal .cl{opacity:1;transform:none}}@media (max-width:960px){.hero{grid-template-columns:1fr;gap:30px;min-height:0}.hero-r .win{transform:none}.hero-l{max-width:none}.about-body{grid-template-columns:1fr;gap:22px}.stats{grid-template-columns:1fr 1fr}.cap-grid,.skill-grid,.proj-grid,.edu-grid,.svc-grid,.edu-rows{grid-template-columns:1fr}.proj-grid .pcard{grid-column:auto!important}}@media (min-width:560px) and (max-width:960px){.cap-grid,.skill-grid{grid-template-columns:1fr 1fr}}@media (max-width:720px){.tb-hire,.tb-center{display:none}.tb-file{flex:1 1 auto;min-width:0}.tb-file b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.tb-file .mod,.hero-r .term{display:none}.hero-r{gap:0}.hero .lede{font-size:.98rem}}@media (max-width:560px){:root{--h-tabs:0px}.tabstrip{display:none}.hero{padding-top:34px;padding-bottom:42px}.hero-r,.aistrip{display:none}.heromets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.heromets .hm{min-width:0;padding:12px 14px}.heromets .hm:nth-child(2n){border-right:none}.heromets .hm:nth-child(-n+2){border-bottom:1px solid var(--line)}.hero-cta{gap:10px}}@media (max-width:420px){.tb-file .path{display:none}}.fx-canvas{position:fixed;inset:0;z-index:0;pointer-events:none}.cursor-fx{position:fixed;inset:0;z-index:350;pointer-events:none;mix-blend-mode:screen}.appmain,main{position:relative;z-index:1}main[tabindex="-1"]:focus{outline:none}.titlebar,.tabstrip,.rail,.statusbar,.progress{z-index:100}.titlebar{z-index:140}.rail{z-index:125}.rail-back{z-index:124}.stat,.cap-card,.svc-card{background:#08080a8c}.stat:hover,.cap-card:hover,.svc-card:hover{background:#101015eb}.proof{background:#0c0c11b8}.v-enter-active{transition:opacity .3s}.v-enter-from{opacity:0}:root{--serif:"Cormorant Garamond","Noto Serif SC",Georgia,serif;--line:rgba(255,255,255,.06);--line2:rgba(255,255,255,.12)}body:after{opacity:.032}section{padding:clamp(88px,12vh,150px) clamp(24px,6vw,56px)}section .lede{margin-bottom:8px}.web-sec .lede,.exp-sec .lede,.contact .lede{margin-bottom:12px}.web-sec .web-group{margin-top:40px}.web-sec .web-group:first-of-type{margin-top:32px}h2.head{font-weight:300;font-size:clamp(2rem,4.8vw,3.35rem);letter-spacing:-.02em;line-height:1.12;margin-bottom:26px;max-width:24ch;background:linear-gradient(180deg,#fff 30%,#c3c7d4);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}h2.head em,.about .head em{font-family:var(--serif);font-style:italic;font-weight:500;letter-spacing:.005em}h2.head .gr{font-family:var(--serif);font-style:italic;font-weight:600}.hero h1{font-family:var(--serif);font-weight:600;letter-spacing:-.015em;line-height:.98}.hero .role{font-weight:400;color:var(--sub)}.hero .role b{color:var(--ink);font-weight:500}.hero .lede{line-height:1.8}.eyebrow{font-size:.66rem;letter-spacing:.32em;color:var(--faint)}.crumb{opacity:.75}.lede{line-height:1.78;letter-spacing:.005em}.about-figure{font-weight:500;line-height:1.55}.about-figure span{font-family:var(--serif);font-style:italic;font-size:1.06em}.pcard,.edu-box,.qr-card,.cred-card{border-radius:16px}.pcard:hover{box-shadow:0 30px 70px -34px #5c8cff52}.aibadge{color:var(--sub2);border-color:var(--line)}.btn.sec{border-color:var(--line2)}.btn{letter-spacing:.01em}.stat .n{font-weight:500}.stat .l{letter-spacing:.18em;font-size:.66rem}.proof-in{gap:44px}footer{padding-top:64px;opacity:.85}.scrollcue{position:absolute;left:50%;bottom:18px;transform:translate(-50%);width:1px;height:52px;overflow:hidden;opacity:.55}.scrollcue:before{content:"";position:absolute;left:0;top:-52px;width:1px;height:52px;background:linear-gradient(180deg,transparent,var(--accent),transparent);animation:cuedrop 2.4s cubic-bezier(.16,1,.3,1) infinite}@keyframes cuedrop{0%{transform:translateY(0)}70%,to{transform:translateY(104px)}}@media (max-width:960px){.scrollcue{display:none}}@media (prefers-reduced-motion:reduce){.scrollcue:before{animation:none}}.fx-grid{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.55;background-image:linear-gradient(rgba(92,140,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(92,140,255,.035) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(1100px 760px at 72% 8%,#000 0%,rgba(0,0,0,.35) 46%,transparent 78%);mask-image:radial-gradient(1100px 760px at 72% 8%,#000 0%,rgba(0,0,0,.35) 46%,transparent 78%)}.fx-beam{position:fixed;z-index:0;pointer-events:none;filter:blur(90px);border-radius:50%;will-change:transform,opacity}.fx-beam.b1{width:760px;height:300px;left:-180px;top:10%;background:linear-gradient(90deg,#5c8cff66,#5bd6c42e);transform:rotate(-18deg);animation:beamDrift1 16s ease-in-out infinite alternate,beamBreathe1 9s ease-in-out infinite}.fx-beam.b2{width:640px;height:260px;right:-200px;bottom:6%;background:linear-gradient(90deg,#9385f25c,#5c8cff2e);transform:rotate(14deg);animation:beamDrift2 20s ease-in-out infinite alternate,beamBreathe2 11s ease-in-out infinite reverse}.fx-beam.b3{width:900px;height:340px;left:50%;top:38%;filter:blur(120px);background:linear-gradient(90deg,rgba(167,120,214,.36),rgba(92,140,255,.12),transparent);transform:translate3d(-50%,0,0) rotate(-28deg);animation:beamDrift3 26s ease-in-out infinite alternate,beamBreathe3 14s ease-in-out infinite}@keyframes beamDrift1{0%{transform:rotate(-18deg) translateZ(0)}to{transform:rotate(-14deg) translate3d(60px,40px,0)}}@keyframes beamDrift2{0%{transform:rotate(14deg) translateZ(0)}to{transform:rotate(10deg) translate3d(-50px,-30px,0)}}@keyframes beamDrift3{0%{transform:translate3d(-50%,0,0) rotate(-28deg)}to{transform:translate3d(calc(-50% + 70px),-30px,0) rotate(-24deg)}}@keyframes beamBreathe1{0%,to{opacity:.055}50%{opacity:.1}}@keyframes beamBreathe2{0%,to{opacity:.04}50%{opacity:.075}}@keyframes beamBreathe3{0%,to{opacity:.025}50%{opacity:.055}}@media (prefers-reduced-motion:reduce){.fx-beam{animation:none}}.hero:before{content:"ENGINEER";position:absolute;right:-1%;top:4%;z-index:0;pointer-events:none;font-family:var(--mono);font-weight:700;font-size:clamp(88px,15vw,210px);letter-spacing:.04em;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(92,140,255,.085)}.hero>*{position:relative;z-index:1}@media (max-width:960px){.hero:before{font-size:clamp(64px,18vw,120px);right:-4%;top:2%}}@media (hover:hover) and (pointer:fine){html{cursor:url(/cursors/ufo.svg) 17 19,auto}a,button,label,summary,select,[role=button],[onclick],.btn,.lang,.langopt,.burger,.segbtn,.gclose,a.appicon,.cert-thumb,.lb-close,button.cred-card,.copybtn,.ai-fab,.ai-close,.ai-chip,.ai-input button,.web-search-clear,.web-cat,.web-ai-result,.web-ai-form button,.web-ai-quick button,.matrix-canvas.on,.cvmenu-item,.rail a,.tab,.tb-file{cursor:url(/cursors/ufo-point.svg) 17 19,pointer}input,textarea{cursor:text}}.train{padding:96px 0 72px;position:relative}.train .wide{max-width:var(--wide);margin:0 auto;padding:0 32px}.train .crumb{font-family:var(--mono);font-size:.78rem;color:var(--sub2);margin-bottom:28px;display:flex;align-items:center;gap:8px}.train .crumb b{color:var(--ink);font-weight:500}.train .crumb .fdot{width:7px;height:7px;border-radius:50%;background:var(--accent)}.train .eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}.train .eyebrow .icn{width:16px;height:16px}.train .head{font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:600;line-height:1.2;letter-spacing:-.02em;margin-bottom:16px;max-width:760px}.train .head .gr{color:var(--accent)}.train .lede{font-size:1rem;color:var(--sub);max-width:680px;line-height:1.72;margin-bottom:52px}.vibe-camp-card{background:linear-gradient(135deg,#e8613c14,#5b4cf014);border:1px solid rgba(232,97,60,.28);border-radius:var(--r);padding:24px 28px;margin-bottom:32px;position:relative;transition:transform .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease)}.vibe-camp-card:hover{transform:translateY(-2px);border-color:#e8613c7a;box-shadow:0 12px 36px -12px #e8613c3d}.vibe-camp-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px;flex-wrap:wrap}.vibe-camp-badge{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.74rem;letter-spacing:.06em;color:#e8613c;background:#e8613c1f;padding:4px 12px;border-radius:20px;border:1px solid rgba(232,97,60,.25)}.vibe-live-dot{width:7px;height:7px;border-radius:50%;background:#e8613c;box-shadow:0 0 10px #e8613c99;animation:livePulse 2s infinite}.vibe-camp-link-btn{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:.82rem;font-weight:500;color:#e8613c;background:#e8613c24;border:1px solid rgba(232,97,60,.35);padding:6px 16px;border-radius:8px;text-decoration:none;transition:all .2s var(--ease)}.vibe-camp-link-btn:hover{background:#e8613c;color:#fff;border-color:#e8613c;transform:translateY(-1px);box-shadow:0 4px 16px #e8613c59}.vibe-camp-title{font-size:1.25rem;font-weight:600;color:var(--ink);margin-bottom:8px;line-height:1.35}.vibe-camp-desc{font-size:.92rem;color:var(--sub);line-height:1.65}.track-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:64px}.track-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:28px 26px;position:relative;transition:transform .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease)}.track-card:hover{transform:translateY(-3px);border-color:#5c8cff47;box-shadow:0 12px 40px -12px #5c8cff2e}.track-tag{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border:1px solid rgba(92,140,255,.2);padding:4px 10px;border-radius:6px;margin-bottom:16px}.track-tag .icn{width:13px;height:13px}.track-title{font-size:1.25rem;font-weight:600;line-height:1.35;margin-bottom:8px}.track-title .fn{display:block;font-family:var(--mono);font-size:.78rem;font-weight:400;color:var(--sub2);margin-top:4px}.track-dur{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:.78rem;color:var(--sub);margin-bottom:14px}.track-dur .icn{width:14px;height:14px;color:var(--sub2)}.track-desc{font-size:.92rem;color:var(--sub);line-height:1.7;margin-bottom:18px}.track-points{list-style:none;padding:0;margin:0}.track-points li{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:.88rem;color:var(--ink)}.track-points .icn{width:15px;height:15px;color:#36d399;flex-shrink:0;margin-top:2px}.course-head{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sub2);margin-bottom:20px}.course-head .icn{width:15px;height:15px}.course-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:56px}.course-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:22px 20px;transition:transform .3s var(--ease),border-color .3s var(--ease);position:relative;overflow:hidden}.course-card:hover{transform:translateY(-2px);border-color:#5c8cff40}.course-card:after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(340px 200px at var(--mx,50%) var(--my,0%),rgba(92,140,255,.08),transparent 70%);opacity:0;transition:opacity .35s var(--ease);pointer-events:none}.course-card:hover:after{opacity:1}.course-icon{width:38px;height:38px;border-radius:10px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;margin-bottom:14px}.course-icon .icn{width:20px;height:20px;color:var(--accent)}.course-title{font-size:.98rem;font-weight:600;margin-bottom:8px}.course-desc{font-size:.82rem;color:var(--sub);line-height:1.6;margin-bottom:12px;min-height:42px}.course-tools{display:flex;flex-wrap:wrap;gap:5px}.course-tool{font-family:var(--mono);font-size:.68rem;color:var(--sub2);background:#ffffff0a;border:1px solid var(--line);padding:2px 7px;border-radius:5px}.train-facts{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:36px;padding:22px 26px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}.train-fact{display:inline-flex;align-items:center;gap:8px;font-size:.86rem;color:var(--ink)}.train-fact .icn{width:16px;height:16px;color:var(--accent)}.train-cta{display:flex;justify-content:flex-start}.train-cta .btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.86rem;font-weight:500;padding:12px 26px;border-radius:10px;transition:.25s var(--ease)}.train-cta .btn.pri{background:var(--accent);color:#fff;border:1px solid var(--accent);box-shadow:0 6px 22px -8px #5c8cff80}.train-cta .btn.pri:hover{transform:translateY(-2px);box-shadow:0 10px 30px -8px #5c8cff99}@media (max-width:900px){.track-grid{grid-template-columns:1fr}.course-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.course-grid{grid-template-columns:1fr}.train .wide{padding:0 20px}}.appmain.is-subpage{padding-top:calc(var(--h-title) + var(--h-tabs) + 20px);padding-bottom:var(--h-status)}.subpage{min-height:80vh}.subpage section .crumb{display:none!important}.subpage-hero{padding:48px 0 24px}.subpage-hero .wide{max-width:var(--wide);margin:0 auto;padding:0 32px}.subpage-hero .back-link{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:.8rem;color:var(--sub2);margin-bottom:24px;transition:color .2s var(--ease)}.subpage-hero .back-link:hover{color:var(--accent)}.subpage-hero .back-link span{font-size:1.1rem}.subpage-hero .crumb{font-family:var(--mono);font-size:.78rem;color:var(--sub2);margin-bottom:18px;display:flex;align-items:center;gap:8px}.subpage-hero .crumb b{color:var(--ink);font-weight:500}.subpage-hero .crumb .fdot{width:7px;height:7px;border-radius:50%;background:var(--accent)}.subpage-title{font-size:clamp(2rem,4vw,2.8rem);font-weight:600;letter-spacing:-.02em;line-height:1.2;margin-bottom:14px}.subpage-lede{font-size:1.05rem;color:var(--sub);max-width:680px;line-height:1.7}.legal-section{padding:24px 0 80px;border-top:0}.legal-section .wide{max-width:860px;margin:0 auto;padding:0 32px}.legal-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:34px 38px;box-shadow:0 18px 52px -34px #5c8cff52}.legal-updated{font-family:var(--mono);font-size:.76rem;color:var(--sub2);margin-bottom:24px}.legal-card h2{font-size:1.08rem;font-weight:600;letter-spacing:-.01em;margin:28px 0 10px;color:var(--ink)}.legal-card h2:first-of-type{margin-top:0}.legal-card p{color:var(--sub);font-size:.95rem;line-height:1.78;margin:0}.legal-card a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}@media (max-width:560px){.legal-section .wide{padding:0 20px}.legal-card{padding:26px 22px}.legal-card p{font-size:.9rem}}.pricing-section{padding:24px 0 84px;border-top:0}.pricing-section .wide{max-width:980px;margin:0 auto;padding:0 32px}.pricing-note{margin-bottom:22px;padding:16px 18px;border:1px solid rgba(92,140,255,.24);border-radius:var(--r);background:linear-gradient(135deg,#5c8cff1c,#5bd6c40a);color:var(--sub);font-size:.92rem;line-height:1.72}.pricing-note strong{color:var(--ink);font-weight:650}.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}.pricing-card{display:flex;flex-direction:column;gap:12px;min-height:360px;padding:26px 24px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:0 18px 52px -38px #5c8cff59;position:relative;overflow:hidden}.pricing-card:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.55;background:radial-gradient(320px circle at 80% 0%,rgba(92,140,255,.11),transparent 62%)}.pricing-card>*{position:relative;z-index:1}.pricing-card.featured{border-color:#5c8cff6b;background:linear-gradient(180deg,#5c8cff14,#ffffff04),var(--surface)}.pricing-kicker{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.pricing-card h2{font-size:1.18rem;font-weight:650;letter-spacing:-.015em;margin:0}.pricing-price{font-family:var(--mono);font-size:2.25rem;line-height:1;font-weight:700;color:var(--ink);letter-spacing:-.04em;margin:8px 0 2px}.pricing-price span{font-size:.78rem;color:var(--sub2);font-weight:500;letter-spacing:0}.pricing-card p{color:var(--sub);font-size:.92rem;line-height:1.68;margin:0}.pricing-card ul{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:9px}.pricing-card li{position:relative;padding-left:18px;color:var(--sub);font-size:.88rem;line-height:1.55}.pricing-card li:before{content:"";position:absolute;left:0;top:.65em;width:7px;height:7px;border-radius:50%;background:var(--accent)}.pricing-detail{padding:30px 34px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}.pricing-detail h2{font-size:1.04rem;font-weight:650;letter-spacing:-.01em;margin:26px 0 10px}.pricing-detail h2:first-child{margin-top:0}.pricing-detail p{color:var(--sub);font-size:.94rem;line-height:1.78;margin:0}.pricing-detail a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}@media (max-width:900px){.pricing-grid{grid-template-columns:1fr}.pricing-card{min-height:auto}}@media (max-width:560px){.pricing-section .wide{padding:0 20px}.pricing-card,.pricing-detail{padding:24px 20px}.pricing-price{font-size:2rem}}.portals{padding:64px 0 56px}.portals .wide{max-width:var(--wide);margin:0 auto;padding:0 32px}.portals .crumb{font-family:var(--mono);font-size:.78rem;color:var(--sub2);margin-bottom:28px;display:flex;align-items:center;gap:8px}.portals .crumb b{color:var(--ink);font-weight:500}.portals .crumb .fdot{width:7px;height:7px;border-radius:50%;background:var(--accent)}.portals .eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}.portals .eyebrow .icn{width:16px;height:16px}.portals .head{font-size:clamp(1.6rem,3vw,2.1rem);font-weight:600;line-height:1.25;letter-spacing:-.02em;margin-bottom:40px;max-width:760px}.portal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.portal-grid-4{grid-template-columns:repeat(4,1fr)}.portal-card{position:relative;display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:26px 24px 24px;text-decoration:none;color:inherit;transition:transform .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease);overflow:hidden}.portal-card:hover{transform:translateY(-4px);border-color:#5c8cff4d;box-shadow:0 16px 44px -16px #5c8cff38}.portal-card:after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(360px 220px at var(--mx,50%) var(--my,0%),rgba(92,140,255,.1),transparent 70%);opacity:0;transition:opacity .35s var(--ease);pointer-events:none}.portal-card:hover:after{opacity:1}.portal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.portal-icon{width:42px;height:42px;border-radius:11px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center}.portal-icon .icn{width:22px;height:22px;color:var(--accent)}.portal-top .fdot{width:8px;height:8px;border-radius:2px}.portal-title{font-size:1.2rem;font-weight:600;margin-bottom:8px}.portal-desc{font-size:.86rem;color:var(--sub);line-height:1.6}.portal-arrow{position:absolute;right:24px;bottom:22px;font-family:var(--mono);font-size:1.4rem;color:var(--accent);opacity:.6;transition:opacity .3s var(--ease),transform .3s var(--ease)}.portal-card:hover .portal-arrow{opacity:1;transform:translate(4px)}@media (max-width:1100px){.portal-grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width:900px){.portal-grid{grid-template-columns:1fr}}@media (max-width:560px){.portals .wide,.subpage-hero .wide{padding:0 20px}}.exp-more{margin-top:28px;text-align:center}.exp-more-link{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:.86rem;color:var(--sub);padding:11px 22px;border:1px solid var(--line2);border-radius:10px;transition:.25s var(--ease);background:transparent;cursor:pointer}.exp-more-link:hover{color:var(--accent);border-color:#5c8cff59;background:var(--accent-soft)}.exp-more-link .icn{width:15px;height:15px}.exp-more-link .a-ar{color:var(--accent);font-size:1.1rem;transition:transform .25s var(--ease)}.exp-more-link:hover .a-ar{transform:translate(3px)}.subpage-contact{padding:64px 0 72px;margin-top:48px}.subpage-contact .wide{max-width:var(--wide);margin:0 auto;padding:0 32px}.sc-inner{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:40px 44px;transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}.sc-inner:hover{border-color:#5c8cff47;box-shadow:0 12px 40px -16px #5c8cff2e}.sc-left{min-width:0}.sc-eye{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}.sc-eye .icn{width:14px;height:14px}.sc-head{font-size:1.65rem;font-weight:600;line-height:1.3;margin-bottom:20px;letter-spacing:-.015em}.sc-facts{display:flex;flex-wrap:wrap;gap:0;align-items:center}.sc-fact{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;color:var(--sub);padding:0 14px;position:relative}.sc-fact:first-child{padding-left:0}.sc-fact:not(:last-child):after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);width:1px;height:14px;background:var(--line2)}.sc-fact .icn{width:13px;height:13px;color:var(--accent);flex-shrink:0}.sc-right{display:flex;flex-direction:column;gap:20px;align-items:flex-end}.sc-mailwrap{display:inline-flex;align-items:center;gap:12px;background:#ffffff0a;border:1px solid var(--line2);border-radius:12px;padding:10px 10px 10px 20px;width:100%;max-width:340px;box-sizing:border-box}.sc-mail{font-family:var(--mono);font-size:.92rem;color:var(--ink);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sc-copybtn{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:.72rem;color:var(--sub);background:#ffffff0f;border:1px solid var(--line2);border-radius:8px;padding:6px 12px;cursor:pointer;transition:.25s var(--ease);flex-shrink:0}.sc-copybtn:hover{color:var(--accent);border-color:#5c8cff59;background:var(--accent-soft)}.sc-copybtn.done{color:#36d399;border-color:#36d39959;background:#36d39914}.sc-copybtn .icn{width:13px;height:13px}.sc-socials{display:inline-flex;gap:10px}.sc-soc{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line2);border-radius:10px;color:var(--sub);transition:.25s var(--ease)}.sc-soc:hover{color:var(--accent);border-color:#5c8cff59;background:var(--accent-soft);transform:translateY(-2px)}.sc-soc .icn{width:18px;height:18px}@media (max-width:900px){.sc-inner{grid-template-columns:1fr;gap:32px;padding:32px 28px}.sc-right{align-items:flex-start}.sc-mailwrap{max-width:none}}@media (max-width:560px){.subpage-contact .wide{padding:0 20px}.sc-head{font-size:1.35rem}.sc-facts{flex-direction:column;align-items:flex-start;gap:8px}.sc-fact{padding:0}.sc-fact:not(:last-child):after{display:none}.sc-mailwrap{padding:8px 8px 8px 16px}.sc-mail{font-size:.84rem}.sc-socials{flex-wrap:wrap;justify-content:center;gap:8px}.sc-soc{width:36px;height:36px;border-radius:9px}.soc{padding:8px 14px;font-size:.76rem;gap:6px}.soc .icn{width:15px;height:15px}}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--line2);border-radius:8px;background:transparent;cursor:pointer;transition:.25s var(--ease);color:var(--ink)}.theme-toggle:hover{background:#ffffff0f;border-color:#5c8cff59}.theme-toggle .icn{width:16px;height:16px}[data-theme=day]{--bg:#eef3f8;--editor:#ffffff;--editor2:#f7fafc;--panel:#ffffff;--chrome:#e8edf3;--surface:#ffffff;--surface2:#f0f4f8;--ink:#2a3540;--sub:#5a6878;--sub2:#7080a0;--faint:#9098a8;--line:rgba(60,90,140,.1);--line2:rgba(60,90,140,.18);--accent:#3d6dd8;--accent-soft:rgba(61,109,216,.08);--t-k:#6b4fa8;--t-f:#2d5cb8;--t-s:#3a7a3a;--t-n:#a06820;--t-t:#1a8a7a;--t-p:#2a7ab8;--t-c:#6a7088;--t-o:#5a6078;--t-b:#a06820}[data-theme=day] body{background:radial-gradient(circle at 85% 12%,rgba(255,220,120,.35),transparent 30%),radial-gradient(circle at 15% 80%,rgba(180,210,255,.25),transparent 40%),linear-gradient(180deg,#d4e4f5,#e8eff5 40%,#f0eee6)}[data-theme=day] body:after{opacity:.02}[data-theme=day] body:before{content:"";position:fixed;top:60px;right:8%;width:80px;height:80px;border-radius:50%;background:radial-gradient(circle,#ffe08a,#ffb84d 50%,#ffb84d00 75%);box-shadow:0 0 60px 20px #ffc8504d,0 0 120px 40px #ffb43c26;pointer-events:none;z-index:1;animation:sunPulse 6s ease-in-out infinite}@keyframes sunPulse{0%,to{transform:scale(1);opacity:.85}50%{transform:scale(1.06);opacity:1}}@media (prefers-reduced-motion:reduce){[data-theme=day] body:before{animation:none}}.fx-canvas{transition:opacity .6s var(--ease),filter .6s var(--ease)}[data-theme=night] .fx-canvas{opacity:1;filter:none}[data-theme=day] .fx-canvas{opacity:.15;filter:blur(2px) brightness(1.5) saturate(.4)}.cloud-layer{position:fixed;inset:0;pointer-events:none;z-index:1;overflow:hidden;display:none}[data-theme=day] .cloud-layer{display:block}.cloud{position:absolute;border-radius:50%;background:radial-gradient(ellipse at 50% 60%,#ffffffd9,#ffffff8c 30%,#fff0 70%);filter:blur(6px);animation:cloudDrift linear infinite;will-change:transform}.cloud:before,.cloud:after{content:"";position:absolute;border-radius:50%;background:inherit}.cloud:before{width:60%;height:80%;top:-20%;left:15%}.cloud:after{width:50%;height:70%;top:-15%;right:10%}.cloud-1{top:14%;width:180px;height:50px;animation-duration:45s;left:-20%}.cloud-2{top:28%;width:140px;height:42px;animation-duration:55s;animation-delay:-18s;left:-25%;opacity:.8}.cloud-3{top:46%;width:220px;height:60px;animation-duration:38s;animation-delay:-10s;left:-30%}.cloud-4{top:66%;width:120px;height:38px;animation-duration:50s;animation-delay:-30s;left:-15%;opacity:.7}.cloud-5{top:80%;width:160px;height:46px;animation-duration:42s;animation-delay:-5s;left:-25%;opacity:.6}@keyframes cloudDrift{0%{transform:translate(0) translateY(0)}25%{transform:translate(30vw) translateY(-4px)}50%{transform:translate(60vw) translateY(2px)}75%{transform:translate(90vw) translateY(-2px)}to{transform:translate(130vw) translateY(0)}}@media (prefers-reduced-motion:reduce){.cloud{animation:none;transform:translate(30vw)}}[data-theme=day] .titlebar{background:#e8edf3d1;backdrop-filter:saturate(140%) blur(16px)}[data-theme=day] .tabstrip{background:var(--chrome)}[data-theme=day] .rail{background:var(--panel)}[data-theme=day] .statusbar{background:linear-gradient(90deg,#5b9bd5,#7ab8e8);color:#1a2530}[data-theme=day] .appicon{box-shadow:0 5px 16px #3c5a8c2e}[data-theme=day] .portal-card,[data-theme=day] .track-card,[data-theme=day] .course-card,[data-theme=day] .compare-card,[data-theme=day] .sc-inner{box-shadow:0 4px 18px -8px #3c5a8c26;background:#ffffffeb;backdrop-filter:blur(10px)}[data-theme=day] .portal-card:hover,[data-theme=day] .track-card:hover{box-shadow:0 16px 44px -16px #3d6dd833}[data-theme=day] .tb-hire{border-color:#3c5a8c33;color:var(--sub)}[data-theme=day] .tb-hire .dot{background:#3a9a6a}[data-theme=day] ::selection{background:#3d6dd833;color:#1a2530}[data-theme=day] .hero h1,[data-theme=day] .subpage-title,[data-theme=day] .head,[data-theme=day] .portal-title,[data-theme=day] .track-title{color:#1f2a38}[data-theme=day] h2.head{background:none;-webkit-text-fill-color:#1f2a38;color:#1f2a38}[data-theme=day] .hero .lede,[data-theme=day] .subpage-lede,[data-theme=day] .lede,[data-theme=day] .track-desc,[data-theme=day] .course-desc,[data-theme=day] .portal-desc{color:#5a6878}[data-theme=day] .about .fig,[data-theme=day] p{color:#3a4858}[data-theme=day] .cap-card p,[data-theme=day] .cap-card .fn{color:#4a5868}[data-theme=day] .skill-chip,[data-theme=day] .chip{color:#3a4858;background:#3c5a8c0f;border-color:#3c5a8c1f}[data-theme=day] .commit .cmsg,[data-theme=day] .cdesc{color:#3a4858}[data-theme=day] .tb-file b,[data-theme=day] .tb-file .path{color:#2a3540}[data-theme=day] .ai-pet{background:linear-gradient(145deg,#ffc56b,#ff9a3d);box-shadow:0 8px 28px -6px #ffa03c80,inset 0 2px 4px #fff6}[data-theme=day] .ai-pet-eye{background:#3a2810}[data-theme=day] .ai-bubble{box-shadow:0 8px 28px -8px #3c5a8c33;background:#fff;border-color:#3c5a8c26}[data-theme=day] .statusbar .seg{color:#1a2530}[data-theme=day] .statusbar a:hover{color:#0f1820}[data-theme=day] footer{color:var(--sub)}.cursor-companion{position:fixed;top:0;left:0;z-index:9999;pointer-events:none;opacity:0;transition:opacity .4s var(--ease);will-change:transform}.cursor-companion.visible{opacity:1}.cursor-companion{cursor:pointer;pointer-events:auto}.cursor-companion.excited .companion-face{animation:companionBob 3s ease-in-out infinite,companionWiggle .4s ease-in-out 3}.cursor-companion.excited .companion-body{transform:scale(1.15)}.cursor-companion.excited .companion-mouth{opacity:1}.cursor-companion:hover .companion-face{transform:scale(1.1)}.companion-body{position:relative;width:32px;height:32px}.companion-face{width:28px;height:28px;border-radius:50%/45% 45% 55% 55%;background:linear-gradient(145deg,#7da6ff,#3d63d8);border:1.5px solid rgba(255,255,255,.3);box-shadow:0 4px 14px -2px #5c8cff80,inset 0 1px 3px #ffffff59;position:relative;animation:companionBob 3s ease-in-out infinite}.companion-eye{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff;bottom:11px;left:8px;animation:companionBlink 5s infinite}.companion-eye-r{left:auto;right:8px}.companion-mouth{position:absolute;width:6px;height:3px;border-radius:0 0 6px 6px;background:#ffffffb3;bottom:6px;left:50%;transform:translate(-50%);opacity:0;transition:opacity .2s var(--ease)}.companion-tail{position:absolute;right:-6px;top:8px;width:10px;height:10px;border-radius:50%;background:linear-gradient(145deg,#7da6ff,#3d63d8);opacity:.5;animation:companionTail 1.5s ease-in-out infinite}@keyframes companionBob{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-3px) rotate(2deg)}}@keyframes companionBlink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes companionWiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-12deg)}75%{transform:rotate(12deg)}}@keyframes companionTail{0%,to{transform:scale(1) translate(0)}50%{transform:scale(.8) translate(2px)}}@media (prefers-reduced-motion:reduce){.companion-face,.companion-eye,.companion-tail{animation:none}}.cinematic-subhero{position:relative;overflow:hidden;background:radial-gradient(60% 90% at 76% 20%,rgba(110,135,210,.08),transparent 72%)}.subpage-act{font-family:var(--mono);font-size:.58rem;letter-spacing:.2em;color:#a4b8ff57;text-transform:uppercase;margin-bottom:18px}.cinematic-subhero .subpage-title{font-family:var(--serif);font-weight:600;letter-spacing:-.035em}.cinematic-subhero .subpage-lede{max-width:720px}.cinematic-subhero .btn{margin-top:22px}.tier-portfolio section,.tier-minimal section{background-image:linear-gradient(180deg,rgba(143,168,232,.018),transparent 36%)}.tier-portfolio .subpage-contact,.tier-minimal .subpage-contact{background:radial-gradient(55% 85% at 50% 0%,rgba(232,223,208,.07),transparent)}.tier-legal .fx-canvas{opacity:.08!important}.tier-legal .cinematic-subhero{background:none;padding-bottom:26px}.tier-legal .legal-section .wide{max-width:72ch}.tier-legal .legal-card,.tier-legal .pricing-detail{background:var(--editor);box-shadow:none;border-color:var(--line2)}.tier-legal .subpage-act{color:var(--sub2)}.pricing-cta{margin-top:auto;justify-content:center}.pricing-card{gap:12px}.pricing-card ul{flex:1}.sc-intent{width:auto!important}.web-load-more{display:flex;margin:28px auto 0}@media print{.titlebar,.tabstrip,.rail,.statusbar,.cinema-grid,.cinema-beam,.fx-canvas,.cloud-layer,footer,.back-top,.ai-fab,.subpage-contact,.back-link{display:none!important}body{padding:0!important;background:#fff!important;color:#111!important}.appmain,.legal-card{margin:0!important;padding:0!important;box-shadow:none!important;border:0!important;background:#fff!important;color:#111!important}.legal-card p,.legal-card li,.legal-card h2{color:#111!important}}@media (max-width:560px){html,body,#app,.appmain,main{max-width:100%;overflow-x:hidden}.subpage-hero{padding:44px 0 30px}.subpage-hero .wide,.legal-section .wide,.pricing-section .wide,.web-showcase .wide{padding-left:16px;padding-right:16px}.subpage-act{font-size:.5rem;letter-spacing:.14em;margin-bottom:12px}.subpage-title{font-size:clamp(2rem,11vw,3rem);overflow-wrap:anywhere}.subpage-lede{font-size:.94rem;line-height:1.65}.back-link{min-height:44px;display:inline-flex;align-items:center}.pricing-grid,.track-grid,.course-grid,.svc-grid,.proj-grid,.web-grid,.cert-grid{grid-template-columns:minmax(0,1fr)!important}.pricing-card,.pricing-detail,.legal-card,.track-card,.course-card,.svc-card{min-width:0;padding-left:18px;padding-right:18px}.pcard{min-width:0}.pricing-cta,.work-cta .btn,.train-cta .btn,.sc-intent{width:100%;justify-content:center;min-height:44px}.web-cats,.web-ai-quick{max-width:100vw;overflow-x:auto;overscroll-behavior-x:contain}.web-cat,.web-ai-quick button{flex:0 0 auto;min-height:40px}.web-search-box,.web-ai-form{min-width:0}.web-search-box input,.web-ai-form input{min-width:0;width:100%}.legal-card{font-size:.94rem;line-height:1.8}.legal-card h2{font-size:1.12rem;scroll-margin-top:96px}.sc-inner{padding:26px 18px}.sc-mail{font-size:clamp(.82rem,4.2vw,1.05rem);overflow-wrap:anywhere}.sc-socials{justify-content:center;flex-wrap:wrap}.qr-row{grid-template-columns:1fr}}.companion-tip{position:absolute;left:36px;top:50%;transform:translateY(-50%);background:var(--surface);border:1px solid rgba(92,140,255,.35);border-radius:14px 14px 14px 4px;padding:8px 14px;font-size:.78rem;color:var(--ink);white-space:nowrap;box-shadow:0 6px 20px -6px #00000040;pointer-events:none}.companion-tip:before{content:"";position:absolute;left:-6px;top:50%;transform:translateY(-50%);width:0;height:0;border-right:6px solid var(--surface);border-top:5px solid transparent;border-bottom:5px solid transparent}.tip-enter-active,.tip-leave-active{transition:opacity .3s var(--ease),transform .3s var(--ease)}.tip-enter-from,.tip-leave-to{opacity:0;transform:translateY(-50%) translate(-6px)}[data-theme=day] .companion-face{background:linear-gradient(145deg,#ffc56b,#ff9a3d);box-shadow:0 4px 14px -2px #ffa03c80,inset 0 1px 3px #fff6}[data-theme=day] .companion-tail{background:linear-gradient(145deg,#ffc56b,#ff9a3d)}[data-theme=day] .companion-tip{background:#fff;border-color:#ffa03c4d;box-shadow:0 6px 20px -6px #3c5a8c33}@media (max-width:900px){.cursor-companion{display:none}}.certs{padding:64px 0 72px}.cert-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:26px}.cert-card{background:var(--editor);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:transform .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease)}.cert-card:hover{border-color:#5c8cff66;transform:translateY(-4px);box-shadow:0 22px 44px -18px #5c8cff4d}.cert-chrome{display:flex;align-items:center;gap:10px;height:32px;padding:0 12px;background:var(--chrome);border-bottom:1px solid var(--line)}.cert-dots{display:flex;gap:5px}.cert-dots i{width:8px;height:8px;border-radius:50%;display:inline-block}.cert-dots i:nth-child(1){background:#ff5f56}.cert-dots i:nth-child(2){background:#ffbd2e}.cert-dots i:nth-child(3){background:#27c93f}.cert-file{font-family:var(--mono);font-size:.68rem;color:var(--sub2);display:flex;align-items:center;gap:6px}.cert-file .fdot{width:7px;height:7px;border-radius:2px}.cert-body{padding:16px;text-align:center}.cert-img{width:100%;height:108px;object-fit:contain;border-radius:6px;background:var(--surface);padding:6px;margin-bottom:12px}.cert-placeholder{width:100%;height:130px;display:flex;align-items:center;justify-content:center;background:var(--surface);border-radius:6px;margin-bottom:12px}.cert-placeholder .icn{width:48px;height:48px;color:var(--accent);opacity:.5}.cert-meta h3{font-size:.95rem;font-weight:600;margin-bottom:4px}.cert-meta p{font-size:.78rem;color:var(--sub2)}@media (max-width: 900px){.cert-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 640px){.cert-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cert-img{height:86px}}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:9999}@media (prefers-reduced-motion: reduce){::view-transition-old(root),::view-transition-new(root){animation:none!important}}section .rv{opacity:0;transform:translateY(24px);filter:blur(6px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out),filter .7s var(--ease-out)}section .rv.in{opacity:1;transform:none;filter:none}section .rv.d1{transition-delay:.08s}section .rv.d2{transition-delay:.16s}section .rv.d3{transition-delay:.24s}section .rv.d4{transition-delay:.32s}section .rv.d5{transition-delay:.4s}.theme-toggle{position:relative;overflow:hidden;border:1px solid var(--line2);border-radius:10px;padding:7px;background:transparent;cursor:pointer;transition:border-color var(--t) var(--ease),background var(--t) var(--ease)}.theme-toggle:hover{border-color:#5c8cff66;background:#5c8cff0f}.theme-toggle .icn{transition:transform var(--t-slow) var(--ease-out)}.theme-toggle:hover .icn{transform:rotate(15deg) scale(1.1)}.theme-toggle:active .icn{transform:scale(.9)}.sound-toggle .icn{color:var(--accent)}.sound-toggle.muted .icn{color:var(--sub2);opacity:.72}.sound-toggle.muted:after{content:"";position:absolute;width:18px;height:1.5px;border-radius:2px;background:var(--sub2);transform:rotate(-45deg);pointer-events:none}[data-theme=night]{--bg:#05060a;--editor:#080a11;--editor2:#0b0d16;--panel:#090b12;--chrome:#0c0e17;--surface:#0d1019;--surface2:#131725;--line:rgba(164,184,255,.075);--line2:rgba(164,184,255,.16);--accent:#729bff;--accent-hover:#91afff;--accent-soft:rgba(114,155,255,.12)}[data-theme=night] body{background-color:var(--bg);background-image:radial-gradient(900px 580px at 78% -8%,rgba(92,140,255,.11),transparent 68%),radial-gradient(760px 620px at 4% 62%,rgba(133,103,210,.055),transparent 72%),radial-gradient(ellipse at center,transparent 42%,rgba(0,0,0,.28) 100%)}[data-theme=night] .titlebar{background:#07090fe0;border-bottom:none}[data-theme=night] .tabstrip{background:linear-gradient(180deg,#0a0c14eb,#07090f6b)}[data-theme=night] .statusbar{background:linear-gradient(90deg,#162f7c,#244aaf 48%,#365fc3)}[data-theme=night] .fx-grid{opacity:.42;background-size:72px 72px}[data-theme=night] .fx-beam.b3{display:none}[data-theme=night] .hero{background:radial-gradient(ellipse 56% 62% at 74% 42%,rgba(114,155,255,.075),transparent 72%),linear-gradient(180deg,rgba(7,9,16,.18),transparent 74%)}[data-theme=night] .hero>.hero-glow{background:radial-gradient(ellipse at center,rgba(114,155,255,.16),rgba(133,103,210,.045) 45%,transparent 72%)}[data-theme=night] .hero h1{background-image:linear-gradient(158deg,#fff 24%,#dce5ff 58%,#9caed8);filter:drop-shadow(0 8px 30px rgba(92,140,255,.12))}.hero-r{isolation:isolate}[data-theme=night] .hero-r:before{content:"";position:absolute;z-index:-1;width:min(540px,48vw);aspect-ratio:1;right:-10%;top:50%;border:1px solid rgba(114,155,255,.08);border-radius:50%;transform:translateY(-50%) rotate(-18deg);box-shadow:0 0 90px #5c8cff09;pointer-events:none}[data-theme=night] .hero-r:after{content:"ORBIT 09 · REMOTE";position:absolute;z-index:-1;right:4%;top:-18px;font-family:var(--mono);font-size:.58rem;letter-spacing:.18em;color:#a4b8ff4d;pointer-events:none}[data-theme=night] .hero-r .win,[data-theme=night] .hero-r .term{border-color:#a4b8ff24;box-shadow:0 30px 80px -42px #3d68dc5c,0 1px #ffffff09 inset}[data-theme=day] .hero h1{-webkit-text-fill-color:#1f2a38;background:none;filter:none}[data-theme=night] .portals,[data-theme=night] .exp-sec,[data-theme=night] .web-sec,[data-theme=night] .certs,[data-theme=night] .contact{isolation:isolate;background:linear-gradient(180deg,rgba(114,155,255,.012),transparent 34%,rgba(133,103,210,.009))}[data-theme=night] .portals:before,[data-theme=night] .exp-sec:before,[data-theme=night] .web-sec:before,[data-theme=night] .certs:before,[data-theme=night] .contact:before{display:none!important}[data-theme=night] .portals:after,[data-theme=night] .exp-sec:after,[data-theme=night] .web-sec:after,[data-theme=night] .certs:after,[data-theme=night] .contact:after{display:none!important}@media (hover:hover) and (pointer:fine){[data-theme=night] .portal-card,[data-theme=night] .pcard,[data-theme=night] .web-card,[data-theme=night] .cert-card{background-image:linear-gradient(112deg,transparent 0 43%,rgba(164,184,255,.055) 49%,transparent 55%);background-size:240% 100%;background-position:115% 0;transition:transform .35s var(--ease),border-color .35s var(--ease),box-shadow .35s var(--ease),background-position .7s var(--ease)}[data-theme=night] .portal-card:hover,[data-theme=night] .pcard:hover,[data-theme=night] .web-card:hover,[data-theme=night] .cert-card:hover{background-position:-15% 0;border-color:#729bff61;box-shadow:0 24px 64px -34px #5c8cff6b}}@media (max-width:960px){.hero-r:before,.hero-r:after{display:none}}@media (max-width:720px),(prefers-reduced-motion:reduce){.sound-toggle{display:none}}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:5px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:#5c8cff4d}::selection{background:#5c8cff47;color:#fff}::-moz-selection{background:#5c8cff47;color:#fff}.gitlog{position:relative}.gitlog:before{content:"";position:absolute;left:10px;top:0;bottom:0;width:2px;background:var(--line);border-radius:1px}.gitlog:after{content:"";position:absolute;left:10px;top:0;width:1.5px;height:var(--tl-progress, 0%);background:linear-gradient(180deg,#b4aaff59,#8cbee66b,#a08cdc47);border-radius:2px;transition:height .3s var(--ease-out);box-shadow:0 0 14px #a0aaff38}.commit{opacity:.55;transition:opacity .4s var(--ease-out),transform .4s var(--ease-out);transform:translate(0)}.commit.active{opacity:1;transform:translate(4px)}.commit.active .cnode{background:linear-gradient(145deg,#beb4fff2,#78bedcd9);border-color:#b4beff8c;box-shadow:0 0 0 5px #a0aaff1a,0 0 18px #a0aaff59}.commit.active .cmsg{color:var(--ink)}.commit.active .cdesc{color:var(--sub)}@keyframes nodePulse{0%,to{box-shadow:0 0 0 5px var(--accent-soft),0 0 12px #5c8cff80}50%{box-shadow:0 0 0 8px #5c8cff14,0 0 20px #5c8cffb3}}.commit:not(.active) .cgraph:after{opacity:.3}.recruiter-proof{padding:24px clamp(20px,5vw,44px);background:#080a11ad}.proof-intro{font-family:var(--mono);font-size:.67rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sub2);margin-bottom:12px}.proof-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--editor)}.proof-card{display:flex;align-items:center;gap:12px;min-width:0;padding:17px 18px;border-right:1px solid var(--line)}.proof-card:last-child{border-right:0}.proof-card>.icn{width:19px;height:19px;color:var(--accent);flex:0 0 auto}.proof-card div{display:flex;flex-direction:column;min-width:0}.proof-card b{font-size:.88rem;font-weight:650;color:var(--ink);white-space:nowrap}.proof-card span{font-family:var(--mono);font-size:.65rem;color:var(--sub2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-actions{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:10px;margin:28px 0 4px}.contact-actions .cvmenu{display:inline-flex}.inquiry-wrap{max-width:520px;margin:22px auto 8px;text-align:left}.inquiry-form{display:grid;gap:12px;padding:20px 18px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,rgba(114,155,255,.04),transparent 42%),var(--editor)}.inquiry-form-head{display:grid;gap:4px;margin-bottom:4px}.inquiry-form-head strong{font-size:1.02rem;letter-spacing:-.02em}.inquiry-form-head span{font-size:.82rem;color:var(--sub);line-height:1.5}.inquiry-form label{display:grid;gap:6px}.inquiry-form label>span{font-family:var(--mono);font-size:.7rem;letter-spacing:.04em;color:var(--sub2)}.inquiry-form input,.inquiry-form textarea{width:100%;border:1px solid var(--line2);border-radius:10px;background:var(--surface);color:var(--ink);padding:11px 12px;font:inherit;resize:vertical}.inquiry-form input:focus,.inquiry-form textarea:focus{outline:none;border-color:#729bff8c;box-shadow:0 0 0 3px #729bff1f}.inquiry-msg{font-size:.86rem;min-height:1.2em}.inquiry-msg.ok{color:#7fd8a8}.inquiry-msg.err{color:#ff9b94}.inquiry-form .btn{justify-self:start}.qr-block{margin:36px auto 0;max-width:760px;text-align:center}.qr-block .qr-lead{margin:0}.qr-block .qr-row{margin-top:20px}.hero:before,.hero:after,[data-theme=night] .hero-r:before,[data-theme=night] .hero-r:after{display:none}.hero>.hero-glow{opacity:.55;animation:none}.fx-canvas{opacity:.68}.hero-r>.term{display:none}.hero-r{justify-content:center}.progress{z-index:150}@media (max-width:960px){.proof-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.proof-card:nth-child(2){border-right:0}.proof-card:nth-child(-n+2){border-bottom:1px solid var(--line)}}@media (max-width:560px){.recruiter-proof{padding-top:18px;padding-bottom:18px}.proof-grid{grid-template-columns:1fr}.proof-card{border-right:0;border-bottom:1px solid var(--line);padding:14px 16px}.proof-card:nth-child(2){border-right:0}.proof-card:nth-child(-n+2){border-bottom:1px solid var(--line)}.proof-card:last-child{border-bottom:0}.proof-card b,.proof-card span{white-space:normal}.hero-r,.aistrip{display:none!important}.hero-cta{width:100%}.hero-cta>.btn,.hero-cta>.cvmenu{flex:1 1 100%;width:100%}.hero-cta .btn,.hero-cta .cvmenu .btn{width:100%;justify-content:center;min-height:46px}.hero-links{width:100%;margin-bottom:18px;justify-content:center;gap:8px 12px}.camp-promo{padding:0 14px 4px}.camp-promo-card{flex-direction:column;align-items:flex-start;padding:16px;gap:10px}.camp-promo-copy strong{font-size:.95rem}.camp-promo-copy span{font-size:.72rem;line-height:1.45}.camp-promo-go{width:100%;text-align:left}.contact-actions{width:100%;flex-direction:column}.contact-actions>.btn,.contact-actions>.cvmenu{width:100%;justify-content:center}.contact-actions .btn{width:100%;justify-content:center;min-height:46px}}[data-theme=night]{--space-void:#030408;--space-mist:rgba(164,184,255,.065);--star-core:#e8eeff;--star-dim:#6b7a9a;--rim-cold:rgba(143,168,232,.24);--rim-violet:rgba(151,124,218,.19);--warm-landing:rgba(232,223,208,.11);--accent-cinema:#8fa8e8}[data-theme=night] body{background-color:var(--space-void)}.cinema-grid,.cinema-beam{position:fixed;inset:0;z-index:0;pointer-events:none}.cinema-grid{opacity:.16;background-image:linear-gradient(rgba(143,168,232,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(143,168,232,.025) 1px,transparent 1px);background-size:88px 88px;-webkit-mask-image:linear-gradient(to bottom,#000,transparent 72%);mask-image:linear-gradient(to bottom,#000,transparent 72%)}.cinema-beam{width:min(72vw,980px);height:44vh;left:38%;top:4%;background:radial-gradient(ellipse,rgba(107,130,204,.07),rgba(130,98,194,.025) 48%,transparent 72%);filter:blur(70px);opacity:.72;transform:rotate(-9deg)}[data-theme=day] .cinema-grid,[data-theme=day] .cinema-beam{display:none}.act{isolation:isolate}.act>.wide,.act>.wrap{position:relative}.act>.wide:before,.act>.wrap:before,.act-hero .hero-l:before{content:"";position:absolute;right:0;top:-40px;font-family:var(--mono);font-size:.57rem;letter-spacing:.2em;text-transform:uppercase;color:#a4b8ff47;white-space:nowrap;pointer-events:none}.act-hero .hero-l:before{content:"ACT 01  /  IDENTITY";top:-30px}.act-proof>.wide:before{content:"ACT 02  /  EVIDENCE"}.act-projects>.wide:before{content:"ACT 03  /  SELECTED WORK"}.act-experience>.wrap:before{content:"ACT 04  /  FLIGHT RECORDER"}.act-contact>.wrap:before{content:"ACT 05  /  LANDING"}.act-projects,.act-experience,.act-contact{padding-top:clamp(92px,12vh,150px)}.act-projects{background:radial-gradient(70% 42% at 76% 10%,rgba(79,107,184,.045),transparent 75%)}.act-experience{background:radial-gradient(62% 48% at 15% 18%,rgba(120,91,179,.04),transparent 74%)}.act-contact{padding-top:clamp(108px,14vh,170px);background:radial-gradient(58% 46% at 50% 18%,var(--warm-landing),transparent 76%)}.hero-r .win,.contact-term{background:#070910b8;border-color:var(--rim-cold);-webkit-backdrop-filter:blur(12px) saturate(115%);backdrop-filter:blur(12px) saturate(115%);box-shadow:inset 0 1px #ffffff0b,0 32px 90px -48px #4b69be85}.proof-grid{border-color:var(--space-mist);background:linear-gradient(180deg,rgba(143,168,232,.035),transparent),#07090fdb}.proof-card{border-color:var(--space-mist);box-shadow:inset 0 1px #8fa8e80e}.pcard{background-image:linear-gradient(180deg,rgba(143,168,232,.03),transparent 38%);box-shadow:inset 0 1px #ffffff0b,inset 0 0 0 1px #00000047,0 22px 64px -46px #000000e0}.proj-grid .pcard:first-child{background-image:linear-gradient(180deg,rgba(116,145,222,.06),transparent 44%)}.web-sec .pcard{border-radius:18px}.pcard:hover{box-shadow:inset 0 1px #ffffff0f,0 24px 60px -34px #5c8cff42}.hero .hero-l{transform:translate3d(0,calc(var(--cinema-progress,0) * 18px),0);will-change:transform}.hero .hero-r{transform:translate3d(0,calc(var(--cinema-progress,0) * -12px),0);will-change:transform}.hero-r .win{transform:perspective(1700px) rotateY(-1.2deg) rotateX(.5deg)}.hero h1{font-weight:600;letter-spacing:-.035em}.hero h1 .en{font-size:.29em;letter-spacing:.11em;color:var(--faint)}.hero>.hero-glow{opacity:.38;animation:breathe 12s ease-in-out infinite alternate}.proof-intro{text-align:center;letter-spacing:.22em;margin-bottom:18px}.proof-intro:after{content:"";display:block;width:48px;height:1px;margin:12px auto 0;background:linear-gradient(90deg,transparent,rgba(180,170,255,.35),rgba(120,200,230,.28),transparent);box-shadow:0 0 12px #a0aaff33}.heromets .hm b{font-family:var(--serif);font-weight:600}.contact .mail{text-shadow:0 0 40px rgba(180,200,255,.14)}.commit.active .cnode{animation:none}.pcard:hover{transform:translateY(-2px)}.progress{display:none!important}[data-theme=night] .statusbar{background:linear-gradient(90deg,#182b59,#263d78 52%,#324b8a)}@media (max-width:960px){.act>.wide:before,.act>.wrap:before,.act-hero .hero-l:before{right:4px;top:-28px}.hero .hero-l,.hero .hero-r{transform:none;will-change:auto}.hero-r .win{transform:none}}@media (max-width:560px){.cinema-grid{opacity:.1;background-size:72px 72px}.cinema-beam{display:none}.act>.wide:before,.act>.wrap:before{top:-22px;font-size:.5rem;letter-spacing:.14em}.act-hero .hero-l:before{display:none}.back-top{right:14px;bottom:calc(var(--h-status) + 126px)}}@media (prefers-reduced-motion:reduce){.cinema-beam{display:none}.hero>.hero-glow{animation:none}.hero .hero-l,.hero .hero-r{transform:none!important;will-change:auto}}.tier-portfolio section,.tier-minimal section{background-color:transparent;background-image:none}.tier-portfolio footer,.tier-minimal footer{border-top:none}@supports (padding:env(safe-area-inset-top)){.titlebar{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.statusbar{padding-left:max(0px,env(safe-area-inset-left));padding-bottom:env(safe-area-inset-bottom)}body{padding-bottom:calc(var(--h-status) + env(safe-area-inset-bottom))}}@media (max-width:720px){.titlebar{gap:8px;padding:0 10px}.tb-right{gap:6px}.langsel{padding:2px;gap:1px;max-width:min(52vw,220px)}.langsel-icn{display:none}.langopt{padding:7px 8px;min-width:32px;min-height:36px;font-size:.7rem}.theme-toggle:not(.sound-toggle),.burger{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px}.sound-toggle{display:none!important}.tb-file .path{display:none}.tb-file b{font-size:.78rem}.hero h1{font-size:clamp(2.35rem,11vw,3.4rem);line-height:1.02}.hero h1 .en{font-size:.36em;margin-top:10px;letter-spacing:.08em}.hero .eyebrow{letter-spacing:.14em;font-size:.62rem;margin-bottom:14px}.techrow{gap:6px;margin-bottom:14px}.tchip{font-size:.72rem;padding:6px 10px}.tchip .icn{width:13px;height:13px}.avail{font-size:.7rem;padding:6px 12px;margin-bottom:16px;max-width:100%}.pastline{gap:8px;margin-top:4px}.pastline .cos{font-size:.84rem;line-height:1.45}section{padding-left:16px;padding-right:16px}.web-sec .wide,.exp-sec .wrap,.contact .wrap,.recruiter-proof .wide{padding-left:0;padding-right:0}h2.head{font-size:clamp(1.7rem,7.2vw,2.4rem);max-width:none;margin-bottom:16px}.lede{font-size:.95rem;line-height:1.65}.ai-fab{right:14px;bottom:calc(var(--h-status) + 18px + env(safe-area-inset-bottom,0px))}.back-top{right:14px;bottom:calc(var(--h-status) + 78px + env(safe-area-inset-bottom,0px))}}@media (max-width:560px){.hero{padding:28px 16px 36px}.heromets{margin-bottom:18px;border-radius:14px}.heromets .hm{padding:12px}.heromets .hm b{font-size:1rem}.heromets .hm span{font-size:.62rem;letter-spacing:.04em;line-height:1.3}.pcard .pin{padding:16px 16px 18px}.pcard .pbar{height:32px;padding:0 10px;gap:8px}.pcard .pbar .plang{display:none}.pcard .pbar .pfile{font-size:.66rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pmeta h3,.web-sec .proj-grid .pcard h3,.proj-grid .pcard:first-child h3{font-size:1.12rem;line-height:1.3}.pmeta .ptag{font-size:.62rem}.pcard p,.web-sec .pcard p{font-size:.86rem;line-height:1.62;-webkit-line-clamp:3;line-clamp:3}.pstack{gap:6px;margin-bottom:12px}.pstack span{font-size:.64rem;padding:3px 7px}.project-actions{gap:12px}.plink{font-size:.76rem;min-height:40px}.pfeat{top:36px;right:8px;font-size:.56rem;padding:3px 7px;max-width:46%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appicon{width:48px;height:48px;border-radius:12px}.inquiry-wrap{margin:18px 0 10px;max-width:none}.inquiry-form{padding:16px 14px;border-radius:14px;gap:10px}.inquiry-form .btn{width:100%;justify-content:center;min-height:46px;justify-self:stretch}.inquiry-form input,.inquiry-form textarea{font-size:16px}.mail{font-size:clamp(.95rem,5vw,1.35rem);overflow-wrap:anywhere}.mailwrap{gap:10px}.socials{gap:8px;justify-content:center}.soc{min-height:40px}.qr-block{margin-top:22px}.qr-row{gap:12px;margin-top:14px}.qr-card{padding:14px}.fact-row{margin:16px 0 20px;justify-content:flex-start}.commit .cmsg{font-size:.95rem;flex-wrap:wrap}.commit .cdesc{font-size:.86rem}.exp-more-link{min-height:44px;padding:10px 0}.statusbar{font-size:.65rem}footer{padding:36px 16px 28px;font-size:.82rem;line-height:1.55}.footer-support,.footer-filing{display:flex;flex-wrap:wrap;gap:6px 10px;justify-content:center}}@media (max-width:380px){.langopt{padding:6px;min-width:28px;font-size:.66rem}.heromets{grid-template-columns:1fr}.heromets .hm{border-right:none!important;border-bottom:1px solid var(--line)}.heromets .hm:last-child{border-bottom:none}.tchip{font-size:.68rem;padding:5px 9px}}
