:root{--azul:#1d54a8;--azul-deep:#143b78;--red:#d6342c;--gold:#e0a92e;--white:#f7f3ea;--ink:#171a20;--line:rgba(29,84,168,.28);--bg:#f7f3ea;--fg:#171a20;--muted:#56524a;--muted2:#6b6657;--accent:#1d54a8;--hair:rgba(23,26,32,.12);--topbar-bg:rgba(247,243,234,.85);--panel-bg:transparent;--panel-shadow:none;--card-bg:#f7f3ea;--card-fg:#171a20;--card-desc:#56524a;--num-color:#1d54a8;--num-opacity:.08;--logo-bg:transparent;--logo-pad:0;--logo-radius:0}[data-theme=dark]{--bg:#12151d;--fg:#ece7da;--muted:#8f897c;--muted2:#8f897c;--accent:#5b8fe0;--hair:rgba(236,231,218,.13);--topbar-bg:rgba(18,21,29,.82);--panel-bg:#f7f3ea;--panel-shadow:0 40px 90px -40px rgba(0,0,0,.7);--card-bg:#1a1e29;--card-fg:#ece7da;--card-desc:#8f897c;--num-color:#5b8fe0;--num-opacity:.16;--logo-bg:#f7f3ea;--logo-pad:7px;--logo-radius:11px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--fg);font-family:Space Mono,monospace;line-height:1.5;overflow-x:hidden;-webkit-font-smoothing:antialiased;transition:background-color .35s ease,color .35s ease}::selection{background:var(--red);color:var(--white)}::-moz-selection{background:var(--red);color:var(--white)}.contact-box ::selection{background:var(--white);color:var(--azul-deep)}.contact-box ::-moz-selection{background:var(--white);color:var(--azul-deep)}.wrap{max-width:1180px;margin:0 auto;padding:0 28px}.label{font-weight:700;text-transform:uppercase;letter-spacing:.2em;font-size:.7rem}.han{font-family:"Noto Serif TC",serif;font-weight:900}a{color:inherit}header.topbar{position:sticky;top:0;z-index:50;background:var(--topbar-bg);backdrop-filter:blur(7px);border-bottom:1px solid var(--hair)}.topbar .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}.brand{display:flex;align-items:center;gap:11px;font-family:Archivo,sans-serif;font-weight:700;font-size:1.02rem;letter-spacing:-.005em}.brand .seal{width:30px;height:30px;flex:none;border-radius:50%;object-fit:cover;display:block;box-shadow:0 0 0 1px var(--line)}.topbar nav{display:flex;gap:28px;align-items:center}.topbar nav a{text-decoration:none;font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;display:inline-flex;align-items:center;gap:6px;transition:color .12s}.topbar nav a .ar{color:var(--accent);transition:transform .12s}.topbar nav a:hover{color:var(--accent)}.topbar nav a:hover .ar{transform:translate(2px,-2px)}.themetoggle{background:none;border:none;cursor:pointer;color:var(--fg);display:grid;place-items:center;padding:5px;margin-left:4px;line-height:0;border-radius:50%;transition:color .12s}.themetoggle:hover{color:var(--accent)}.themetoggle svg{width:17px;height:17px;display:block;transition:transform .45s cubic-bezier(.4,1.4,.5,1)}[data-theme=dark] .themetoggle svg{transform:rotate(180deg)}@media(max-width:37.5em){.topbar nav .hidemob{display:none}}section.hero{padding:140px 0 72px}.sheet{display:grid;grid-template-columns:repeat(6,1fr);max-width:880px;background:var(--panel-bg);box-shadow:var(--panel-shadow);transition:box-shadow .35s ease;border-top:1px solid var(--line);border-left:1px solid var(--line)}.g{aspect-ratio:1;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;place-items:center;color:var(--ink);position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.g svg{display:block;width:54%;height:54%;transition:transform .16s cubic-bezier(.34,1.5,.5,1),color .2s ease}.g.pat{color:var(--azul);--tile-dot:var(--gold);--tile-core:var(--gold);--tile-gold:var(--gold)}.g.pat svg{width:100%;height:100%}.g.icon{cursor:pointer}.g.icon:hover svg{transform:scale(1.14)}.g.icon:active svg{transform:scale(.94)}.g svg.lh{width:62%;height:62%}.g.icon:hover svg.lh{transform:none}.lh .beam path{opacity:0}.lh .glow{opacity:0}.lh .dome{transition:fill .25s}.g:hover .lh .bL,.g.celebrate .lh .bL{animation:swpL 2.2s ease-in-out infinite}.g:hover .lh .bR,.g.celebrate .lh .bR{animation:swpR 2.2s ease-in-out infinite}.g:hover .lh .glow,.g.celebrate .lh .glow{animation:lglow 2.2s ease-in-out infinite}.g:hover .lh .dome,.g.celebrate .lh .dome{fill:var(--red)}@keyframes swpL{0%,to{opacity:.95}40%,60%{opacity:.05}}@keyframes swpR{0%,to{opacity:.05}40%,60%{opacity:.95}}@keyframes lglow{0%,to{opacity:.3}20%,80%{opacity:1}50%{opacity:.3}}.g svg.slot{width:62%;height:62%;overflow:visible}.g.icon:hover svg.slot{transform:none}.slot .strip{will-change:transform}.slot .stick{transform-box:fill-box;transform-origin:50% 100%;transition:transform .42s cubic-bezier(.34,1.56,.5,1)}.slot .knob{transform-box:fill-box;transform-origin:50% 50%;transition:transform .42s cubic-bezier(.34,1.56,.5,1)}.g.icon:hover .slot .knob{fill:var(--red)}.g.icon:active .slot .stick{transform:scaleY(.32);transition:transform .12s ease-out}.g.icon:active .slot .knob{transform:translateY(17px) scale(1.4);transition:transform .12s ease-out}.tart{position:absolute;inset:0;display:grid;place-items:center}.tart svg{transition:opacity .3s ease,transform .16s cubic-bezier(.34,1.5,.5,1)}.tart .photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none;filter:url(#f-grain);transition:opacity .3s ease}.g.icon:hover .tart .photo{opacity:1}.g.icon:hover .tart svg{opacity:0;transform:none}.confetti{position:fixed;width:7px;height:9px;z-index:99;pointer-events:none;border-radius:1px;animation:conf 1.3s cubic-bezier(.2,.6,.3,1) forwards}@keyframes conf{0%{transform:translate(0) rotate(0);opacity:1}to{transform:translate(var(--dx),var(--dy)) rotate(var(--rot));opacity:0}}.hero-body{margin-top:96px}.name{font-family:Archivo,sans-serif;font-weight:600;font-size:clamp(3.2rem,15vw,13rem);line-height:.82;letter-spacing:-.03em;white-space:nowrap}.name .d{color:var(--accent)}.kicker{margin-top:20px;font-weight:700;text-transform:uppercase;letter-spacing:.22em;font-size:.72rem;color:var(--accent)}.kicker .mut{color:var(--muted2)}@media(max-width:40em){.sheet{grid-template-columns:repeat(4,1fr)}}@media(max-width:35em){.name{white-space:normal}}.sec-head{display:flex;align-items:baseline;gap:16px;padding:56px 0 14px}.sec-head .label{color:var(--accent)}.sec-head .ar{margin-left:auto;color:var(--muted2);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase}section.about{padding-bottom:72px}.about-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:64px;align-items:start;margin-top:26px}.about-grid p{font-size:clamp(1.08rem,2vw,1.42rem);line-height:1.6}.facts div{padding:24px 0;border-top:1px solid var(--hair)}.facts dt{font-weight:700;text-transform:uppercase;letter-spacing:.16em;font-size:.62rem;color:var(--accent)}.facts dd{font-family:Archivo,sans-serif;font-weight:700;font-size:1.05rem;letter-spacing:-.01em;margin-top:8px}.facts dd small{display:block;font-family:Space Mono,monospace;font-weight:400;font-size:.72rem;color:var(--muted2);margin-top:6px}@media(max-width:45em){.about-grid{grid-template-columns:1fr;gap:24px}}section.work{padding-bottom:36px}.wgrid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:8px}.wcard{position:relative;overflow:hidden;border:1px solid var(--azul);background:var(--card-bg);color:var(--card-fg);text-decoration:none;padding:28px 26px 24px;min-height:236px;box-shadow:6px 6px 0 var(--azul-deep);display:flex;flex-direction:column;gap:14px;transition:transform .12s,box-shadow .12s,background-color .35s,color .35s}.wcard .num{position:absolute;right:6px;top:-36px;font-family:Archivo,sans-serif;font-weight:800;font-size:9rem;line-height:1;color:var(--num-color);opacity:var(--num-opacity);pointer-events:none;user-select:none}.wcard .logo{width:54px;height:54px;display:grid;place-items:center;overflow:hidden;background:var(--logo-bg);padding:var(--logo-pad);border-radius:var(--logo-radius)}.wcard .logo img{max-width:100%;max-height:100%;object-fit:contain;display:block}.wcard .ttl{font-family:Archivo,sans-serif;font-weight:700;font-size:1.7rem;line-height:1;letter-spacing:-.02em;position:relative}.wcard .desc{font-size:.82rem;line-height:1.55;color:var(--card-desc);margin-top:auto}.wcard .go{font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:var(--azul)}.wcard .go .ar{display:inline-block;transition:transform .12s}.wcard:hover .go .ar{transform:translate(2px,-2px)}.wcard:hover{transform:translate(-3px,-3px);box-shadow:9px 9px 0 var(--azul-deep)}.wcard:active{transform:none;box-shadow:0 0 0 var(--azul-deep)}@media(max-width:42.5em){.wgrid{grid-template-columns:1fr}}section.contact{padding:14px 0 0}.contact-box{background:var(--azul);color:var(--white);padding:56px 40px;position:relative;overflow:hidden}.contact-box .label{color:var(--white);opacity:.75;margin-bottom:16px}.contact-box h2{font-family:Archivo,sans-serif;font-weight:600;line-height:.9;font-size:clamp(2.6rem,9vw,6.4rem);letter-spacing:-.03em}.contact-box h2 .red{color:#aec6ee}.c-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px;align-items:center}.mail-cta{text-decoration:none;background:var(--white);color:var(--azul-deep);font-family:Archivo,sans-serif;font-weight:700;font-size:1.05rem;padding:16px 26px;letter-spacing:0;box-shadow:6px 6px 0 var(--azul-deep);transition:transform .12s,box-shadow .12s}.mail-cta:hover{transform:translate(-3px,-3px);box-shadow:9px 9px 0 var(--azul-deep)}.mail-cta:active{transform:none;box-shadow:0 0 0 var(--azul-deep)}.socials{display:flex;gap:10px;flex-wrap:wrap}.socials a{text-decoration:none;border:2px solid rgba(247,243,234,.45);color:var(--white);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.74rem;padding:13px 17px;transition:background .12s,color .12s,border-color .12s,transform .12s}.socials a:hover{background:var(--white);color:var(--azul-deep);border-color:var(--white);transform:translateY(-2px)}footer.foot{padding:26px 0 46px}.foot-row{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.foot-row .heart{color:#d6342c;font-size:1.15rem;line-height:0;vertical-align:-.12em}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
