@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Noto+Sans+TC:wght@400;500;700;900&family=Syne:wght@500;600;700;800&display=swap";*{box-sizing:border-box;margin:0;padding:0}:root[data-theme=light]{--bg:#f6f6f0;--surface:#fff;--text:#111;--muted:#565650;--line:#111;--blue:#3457f1;--yellow:#f7d94c;--coral:#ff6555;--white:#fff;--shadow:#111}:root[data-theme=dark]{--bg:#111;--surface:#1b1b1b;--text:#f7f6ef;--muted:#b5b4ad;--line:#f7f6ef;--blue:#6481ff;--yellow:#f7d94c;--coral:#ff7163;--white:#fff;--shadow:#000}html{scroll-behavior:smooth;scroll-padding-top:84px}body{min-width:320px;color:var(--text);background:linear-gradient(color-mix(in srgb, var(--text) 3%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--text) 3%, transparent) 1px, transparent 1px), var(--bg);background-size:42px 42px;font-family:Syne,Noto Sans TC,sans-serif;line-height:1.55;overflow-x:hidden}button,a{font:inherit}a{color:inherit}::selection{color:var(--white);background:var(--blue)}.site-shell{min-height:100vh}.section-wrap{width:min(1240px,100% - 72px);margin:0 auto}.topbar{z-index:30;background:color-mix(in srgb, var(--bg) 91%, transparent);border-bottom:2px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);justify-content:space-between;align-items:center;min-height:78px;padding:0 max(36px,50vw - 620px);display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;font-weight:800;text-decoration:none;display:flex}.brand-mark{width:46px;height:34px;color:var(--white);background:var(--text);place-items:center;font:500 12px DM Mono,monospace;display:grid;position:relative;transform:skew(-6deg)}.brand-mark:after{content:"";background:var(--coral);width:9px;height:9px;position:absolute;bottom:-2px;right:-7px}.topbar nav{gap:34px;display:flex}.topbar nav a{color:var(--muted);font-size:13px;font-weight:700;text-decoration:none;position:relative}.topbar nav a:after{content:"";background:var(--blue);transform-origin:0;height:3px;transition:transform .2s;position:absolute;bottom:-6px;left:0;right:0;transform:scaleX(0)}.topbar nav a:hover:after{transform:scaleX(1)}.topbar-actions{gap:8px;display:flex}.text-button{border:2px solid var(--line);width:40px;height:38px;color:var(--text);background:var(--bg);cursor:pointer;box-shadow:3px 3px 0 var(--shadow);font-size:12px;font-weight:800;transition:transform .15s,box-shadow .15s}.text-button:hover{box-shadow:0 0 0 var(--shadow);transform:translate(3px,3px)}.theme-button{color:#111;background:var(--yellow)}.hero{flex-direction:column;justify-content:center;min-height:calc(100vh - 78px);padding-block:96px 42px;display:flex;position:relative}.availability{letter-spacing:.1em;text-transform:uppercase;align-self:flex-start;align-items:center;gap:10px;margin-bottom:34px;font:500 11px DM Mono,monospace;display:flex}.availability span{background:var(--blue);width:8px;height:8px;box-shadow:0 0 0 6px color-mix(in srgb, var(--blue) 18%, transparent);border-radius:50%}.eyebrow{color:var(--muted);letter-spacing:.13em;font:500 11px DM Mono,monospace}.hero>.eyebrow,.hero>h1,.hero>.hero-copy,.hero>.hero-actions{z-index:5;position:relative}.hero h1{letter-spacing:-.07em;max-width:830px;margin:18px 0 26px;font-size:clamp(58px,7.3vw,110px);font-weight:800;line-height:.88}.hero h1 em{color:var(--blue);margin-top:10px;font-style:normal;display:block}.hero h1:after{z-index:-1;content:"";border:2px solid var(--line);width:66%;height:25%;position:absolute;top:38%;left:18%;transform:rotate(-1deg)}.hero-copy{max-width:610px;color:var(--muted);margin-left:25%;font-family:Noto Sans TC,sans-serif;font-size:clamp(16px,1.6vw,19px)}.hero-actions{flex-wrap:wrap;gap:14px;margin:30px 0 0 25%;display:flex}.button{border:2px solid var(--line);min-height:50px;box-shadow:5px 5px 0 var(--shadow);justify-content:center;align-items:center;gap:9px;padding:0 21px;font-size:13px;font-weight:800;text-decoration:none;transition:transform .16s,box-shadow .16s;display:inline-flex}.button:hover{box-shadow:1px 1px 0 var(--shadow);transform:translate(4px,4px)}.button.primary{color:var(--white);background:var(--blue)}.button.secondary{background:var(--bg)}.portrait-stage{z-index:4;pointer-events:none;width:430px;height:500px;position:absolute;top:9%;right:-3%}.portrait-card{z-index:3;color:#fff;width:242px;box-shadow:13px 13px 0 var(--shadow);background:#111;border:2px solid #111;padding:10px 10px 14px;animation:6s ease-in-out infinite portraitFloat;position:absolute;top:54px;right:54px;transform:rotate(-3deg)}.portrait-window{background:#d9d5c8;height:300px;overflow:hidden}.portrait-window img{object-fit:cover;object-position:74% 69%;transform-origin:74% 69%;width:100%;height:100%;transform:scale(1.72)}.portrait-card figcaption{letter-spacing:.08em;flex-direction:column;gap:2px;padding:11px 3px 0;font:9px DM Mono,monospace;display:flex}.portrait-card figcaption strong{font-weight:500}.portrait-shape{display:block;position:absolute}.portrait-triangle{background:var(--coral);clip-path:polygon(50% 0,100% 100%,0 100%);width:150px;height:190px;top:0;right:28px;transform:rotate(6deg)}.portrait-circle{background:var(--yellow);border:2px solid #111;border-radius:50%;width:235px;height:235px;bottom:20px;right:-24px}.portrait-line{z-index:5;width:330px;position:absolute;bottom:42px;left:-30px;overflow:visible}.portrait-line path{fill:none;stroke:var(--blue);stroke-width:5px;stroke-linecap:round}.proof-row{z-index:6;border:2px solid var(--line);background:var(--surface);box-shadow:7px 7px 0 var(--shadow);grid-template-columns:repeat(3,1fr);margin-top:64px;display:grid;position:relative}.proof-row div{border-right:2px solid var(--line);flex-direction:column;justify-content:center;gap:3px;min-height:88px;padding:16px 20px;display:flex}.proof-row div:nth-child(2){color:#111;background:var(--yellow)}.proof-row div:last-child{border-right:0}.proof-row strong{font-size:13px}.proof-row span{color:currentColor;opacity:.68;font:11px DM Mono,monospace}.section-block{border-top:2px solid var(--line);padding-block:126px}.section-heading{grid-template-columns:.65fr 1.7fr;align-items:start;margin-bottom:58px;display:grid}.section-heading h2,.contact-section h2{letter-spacing:-.055em;max-width:800px;font-size:clamp(38px,5.3vw,74px);font-weight:800;line-height:.98}.service-grid{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.service-card{color:#111;background:var(--yellow);min-height:310px;box-shadow:9px 9px 0 var(--shadow);border:2px solid #111;padding:26px;transition:transform .25s;position:relative}.service-card:nth-child(2){color:#fff;background:var(--blue);transform:translateY(28px)rotate(1deg)}.service-card:nth-child(3){background:var(--coral);transform:rotate(-1deg)}.service-card:hover{transform:translateY(-8px)rotate(0)}.service-card:nth-child(2):hover{transform:translateY(18px)rotate(0)}.service-card>span,.project-topline{font:11px DM Mono,monospace}.service-card h3{margin:84px 0 16px;font-size:24px;line-height:1.12}.service-card p,.project-card>p,.process-list p,.contact-section p{font-family:Noto Sans TC,sans-serif}.service-card p{opacity:.74}.project-list{grid-template-columns:repeat(2,1fr);gap:24px;display:grid}.project-card{color:#111;background:var(--yellow);min-height:410px;box-shadow:10px 10px 0 var(--shadow);border:2px solid #111;flex-direction:column;padding:30px;transition:transform .22s,box-shadow .22s;display:flex}.project-card:nth-child(3){background:var(--coral)}.project-card:hover{box-shadow:4px 4px 0 var(--shadow);transform:translate(6px,6px)}.project-card.featured{color:#fff;background:linear-gradient(135deg, transparent 70%, #ffffff1d 70%), var(--blue);grid-column:1/-1;min-height:470px}.project-topline{justify-content:space-between;display:flex}.project-topline b{color:#111;background:var(--yellow);padding:5px 8px;font-weight:500}.project-card h3{letter-spacing:-.045em;max-width:800px;margin:auto 0 16px;font-size:clamp(34px,4.5vw,66px);line-height:.95}.project-card>p{opacity:.76;max-width:760px}.tag-list{flex-wrap:wrap;gap:7px;margin-top:25px;display:flex}.tag-list span{border:1.5px solid;padding:5px 9px;font:10px DM Mono,monospace}.project-links{gap:22px;margin-top:30px;display:flex}.project-links a{text-underline-offset:5px;align-items:center;gap:6px;font-size:12px;font-weight:800;display:inline-flex}.skills-section{color:#fff;background:var(--blue);box-shadow:0 0 0 100vmax var(--blue);clip-path:inset(0 -100vmax)}.skills-section .eyebrow{color:#dce3ff}.skills-grid{border-top:2px solid #fff;grid-template-columns:repeat(3,1fr);display:grid}.skills-grid div{border-right:1px solid #fff6;min-height:190px;padding:28px 28px 0 0}.skills-grid div:nth-child(2),.skills-grid div:last-child{padding-left:28px}.skills-grid div:last-child{border-right:0}.skills-grid h3{margin-bottom:14px;font-size:19px}.skills-grid p{color:#e5e8ff;font:12px/1.9 DM Mono,monospace}.process-list{border-top:2px solid var(--line);list-style:none}.process-list li{border-bottom:2px solid var(--line);grid-template-columns:.65fr 1.7fr;padding:30px 0;transition:padding .2s,background .2s;display:grid}.process-list li:hover{color:#111;background:var(--yellow);padding-inline:20px}.process-list>li>span{color:var(--blue);font:11px DM Mono,monospace}.process-list h3{margin-bottom:6px;font-size:21px}.process-list p{color:var(--muted)}.process-list li:hover p,.process-list li:hover>span{color:#111}.contact-section{color:#111;background:var(--yellow);border-block:2px solid #111;padding-block:118px;position:relative;overflow:hidden}.contact-section:before{content:"";background:var(--coral);border:3px solid #111;border-radius:50%;width:410px;height:410px;position:absolute;top:-140px;right:-90px}.contact-section:after{content:"";background:var(--blue);clip-path:polygon(50% 0,100% 100%,0 100%);width:230px;height:280px;position:absolute;bottom:-100px;right:210px}.contact-section>div{z-index:2;position:relative}.contact-section .eyebrow,.contact-section p{color:#292919}.contact-section h2{max-width:880px;margin:20px 0}.contact-section>div>p:not(.eyebrow){max-width:660px}.button.primary.light{color:#fff;background:#111}.button.secondary.light{color:#111;background:#fff;border-color:#111}footer{width:min(1240px,100% - 72px);color:var(--muted);letter-spacing:.05em;justify-content:space-between;margin:0 auto;padding-block:30px;font:10px DM Mono,monospace;display:flex}@keyframes portraitFloat{0%,to{transform:rotate(-3deg)translateY(0)}50%{transform:rotate(-1deg)translateY(-10px)}}@media (width<=1080px){.hero h1{max-width:760px}.portrait-stage{opacity:.82;right:-100px;transform:scale(.88)}.service-grid{gap:14px}}@media (width<=780px){.section-wrap{width:min(100% - 32px,1240px)}.topbar{min-height:68px;padding-inline:16px}.brand>span:last-child,.topbar nav{display:none}.hero{min-height:auto;padding-block:68px 46px}.hero h1{font-size:clamp(50px,15.5vw,78px)}.hero h1:after{display:none}.hero-copy,.hero-actions{margin-left:0}.portrait-stage{opacity:1;width:100%;height:430px;margin-top:40px;position:relative;top:auto;right:auto;transform:none}.portrait-card{right:12%}.portrait-circle{right:-28px}.proof-row,.service-grid,.project-list,.skills-grid{grid-template-columns:1fr}.proof-row{margin-top:28px}.proof-row div{border-right:0;border-bottom:2px solid var(--line)}.proof-row div:last-child{border-bottom:0}.section-block,.contact-section{padding-block:82px}.section-heading,.process-list li{grid-template-columns:1fr;gap:15px}.section-heading{margin-bottom:38px}.service-grid{gap:22px}.service-card:nth-child(2),.service-card:nth-child(3){transform:none}.project-card.featured{grid-column:auto}.skills-grid div,.skills-grid div:nth-child(2),.skills-grid div:last-child{border-bottom:1px solid #fff6;border-right:0;min-height:0;padding:24px 0}.contact-section:before{opacity:.45;width:250px;height:250px}.contact-section:after{display:none}footer{flex-direction:column;gap:8px;width:calc(100% - 32px)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}
