@font-face{font-family:dmSans;src:url(../media/dm_sans_400_normal-s.p.1lf96kbl_wni-.ttf)format("truetype");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:dmSans;src:url(../media/dm_sans_500_normal-s.p.0uw4im59apgn9.ttf)format("truetype");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:dmSans;src:url(../media/dm_sans_700_normal-s.p.00a_w7me69mit.ttf)format("truetype");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:dmSans;src:url(../media/dm_sans_700_italic-s.p.1gj19t2m8j71y.ttf)format("truetype");font-display:swap;font-weight:700;font-style:italic}@font-face{font-family:dmSans Fallback;src:local(Arial);ascent-override:94.36%;descent-override:29.49%;line-gap-override:0.0%;size-adjust:105.13%}.V5LMfq_className{font-family:dmSans,dmSans Fallback}.V5LMfq_variable{--font-dm-sans:"dmSans", "dmSans Fallback"}
@font-face{font-family:caveat;src:url(../media/caveat_variable-s.0xqbs2zvymdr5.ttf)format("truetype");font-display:swap;font-weight:400 700;font-style:normal}@font-face{font-family:caveat Fallback;src:local(Arial);ascent-override:128.4%;descent-override:40.12%;line-gap-override:0.0%;size-adjust:74.77%}.-\30 NEQW_className{font-family:caveat,caveat Fallback;font-style:normal}.-\30 NEQW_variable{--font-caveat:"caveat", "caveat Fallback"}
@font-face{font-family:bitcount;src:url(../media/bitcount_single_400_normal-s.2fzwk09_rrtve.ttf)format("truetype");font-display:swap}@font-face{font-family:bitcount Fallback;src:local(Arial);ascent-override:63.88%;descent-override:27.38%;line-gap-override:0.0%;size-adjust:131.49%}.X3z1KG_className{font-family:bitcount,bitcount Fallback}.X3z1KG_variable{--font-bitcount:"bitcount", "bitcount Fallback"}
@font-face{font-family:notoSansTC;src:url(../media/noto_sans_tc_portfolio-s.41_90kzpjf52e.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:notoSansTC Fallback;src:local(Arial);ascent-override:117.61%;descent-override:29.2%;line-gap-override:0.0%;size-adjust:98.63%}.sXpVXW_className{font-family:notoSansTC,notoSansTC Fallback}.sXpVXW_variable{--font-noto-tc:"notoSansTC", "notoSansTC Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-dm-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.\!visible{visibility:visible!important}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.relative{position:relative}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.italic{font-style:italic}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--surface-main:#f6f5f0;--surface-white:#fff;--surface-soft:#e5e5e1;--accent-deep:#2a3c5a;--accent-base:#587fde;--accent-soft:#dce5f3;--secondary-base:#ffd95a;--secondary-deep:#e5a900;--secondary-soft:#fff4c4;--text-primary:#20252b;--text-secondary:#7b838c;--text-tertiary:#a5abb2;--text-disabled:#d1d8e0;--page-padding:120px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--surface-main);color:var(--text-primary);font-family:var(--font-dm-sans), sans-serif;-webkit-font-smoothing:antialiased;margin:0;font-weight:400}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a{color:inherit;text-decoration:none}button:disabled{cursor:not-allowed}:focus-visible{outline:3px solid var(--accent-base);outline-offset:5px}h1,h2,h3,p,figure,blockquote{margin:0}.page-padding{padding-inline:var(--page-padding)}.nav-item.active .portrait:after{content:"";border:1.5px solid var(--accent-base);border-radius:inherit;pointer-events:none;position:absolute;inset:0}.section-content{width:100%;max-width:1200px;margin-inline:auto}.section-content>h2{text-align:center;font-size:36px;font-weight:400;line-height:1.2}.skip-link{z-index:30;color:#fff;background:var(--accent-deep);border-radius:24px;padding:12px 20px;position:fixed;top:12px;left:12px;transform:translateY(-200%)}.skip-link:focus{transform:none}.hero{height:100dvh;padding-inline:var(--page-padding);justify-content:center;align-items:center;display:flex;position:relative;overflow:clip}.hero-background{object-fit:cover}.hero-copy{z-index:1;text-align:center;flex-direction:column;flex-shrink:0;align-items:center;gap:32px;width:458px;display:flex;position:relative}.greeting{color:var(--text-secondary);align-items:center;gap:12px;font-size:24px;line-height:29px;display:flex}.hero h1{width:100%;font-size:36px;font-weight:700;line-height:43px}.hero h1 em{color:var(--accent-base);isolation:isolate;white-space:nowrap;position:relative}@media (min-width:768px){.hero h1{white-space:nowrap;width:max-content}}.headline-underline{z-index:-1;max-width:none;position:absolute;bottom:-1px;left:0}.mobile-headline{display:none}.hero-description{width:100%;color:var(--text-secondary);font-size:16px;line-height:19px}.hero-illustrations{pointer-events:none;position:absolute;inset:0}.hero-illustrations-layout{display:contents}.illustration{pointer-events:auto;color:inherit;text-align:initial;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border:0;padding:0;position:absolute}.illustration[data-sticker-picked]{cursor:grabbing}.illustration:focus-visible{outline:none}.illustration:focus-visible .sticker-motion{outline:3px solid var(--accent-base);outline-offset:5px;border-radius:12px}.sticker-filter-definitions{pointer-events:none;position:absolute}.sticker-motion,.sticker-peel{transform-origin:50% 60%;display:block;position:relative}.sticker-motion{isolation:isolate}.sticker-gloss{pointer-events:none;opacity:0;background:linear-gradient(110deg,#0000 38%,#ffffff26 43%,#fffc 49%,#0000 56%) 0 0/250% 100%;position:absolute;inset:0;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.illustration[data-sticker-picked] .sticker-motion{filter:drop-shadow(1px 0 #fff)drop-shadow(-1px 0 #fff)drop-shadow(0 1px #fff)drop-shadow(0 -1px #fff)drop-shadow(0 9px 14px #2a3c5a21)}.illustration svg{max-width:none;display:block}.illustration-default,.illustration-hover{transition:opacity .2s ease-out;display:block}.illustration [data-eye-pupil]{transition:transform .16s ease-out}.illustration-hover{opacity:0;pointer-events:none;position:absolute}.illustration:is(:hover,:focus-visible) .illustration-default{opacity:0}.illustration:is(:hover,:focus-visible) .illustration-hover{opacity:1}.illustration-depth{transition:transform .45s cubic-bezier(.22,.61,.36,1),filter .45s ease-out;display:block;position:relative}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.illustration-depth{filter:drop-shadow(0 2px 8px var(--accent-deep))}@supports (color:color-mix(in lab, red, red)){.illustration-depth{filter:drop-shadow(0 2px 8px color-mix(in srgb, var(--accent-deep) 5%, transparent))}}.illustration:is(:hover,:focus-visible) .illustration-depth{transform:perspective(800px) translate3d(var(--illustration-shift-x,0px), calc(var(--illustration-shift-y,0px) - 4px), 0) rotateX(var(--illustration-tilt-x,0deg)) rotateY(var(--illustration-tilt-y,0deg));filter:drop-shadow(0 6px 18px var(--accent-deep))}@supports (color:color-mix(in lab, red, red)){.illustration:is(:hover,:focus-visible) .illustration-depth{filter:drop-shadow(0 6px 18px color-mix(in srgb, var(--accent-deep) 8%, transparent))}}.illustration:is(:hover,:focus-visible) .illustration-depth{transition-duration:.18s}}.mug{top:62.35%;left:calc(50% - 441.45px);transform:translate(-50%)rotate(-15deg)}.chips{top:24.37%;left:calc(50% - 383.57px);transform:translate(-50%)rotate(10deg)}.pillow{bottom:max(24px,50% - 347px);left:calc(50% - 7px);transform:translate(-50%)}.tea{top:23.21%;left:calc(50% + 424.4px);transform:translate(-50%)rotate(-10deg)}.coffee{bottom:22.7%;left:calc(50% + 411.91px);transform:translate(-50%)rotate(15deg)}.ball{top:max(104px,50% - 333px);left:calc(50% - 5px);transform:translate(-50%)}@media (max-width:1023px) and (prefers-reduced-motion:no-preference){.hero-illustrations .illustration{animation:.9s both mascot-drop-in}.hero-illustrations .mug{animation-delay:0s}.hero-illustrations .ball{animation-delay:.36s}.hero-illustrations .illustration:focus-visible{animation:none}.hero-illustrations .pillow{animation-delay:.12s}.hero-illustrations .chips{animation-delay:.24s}.hero-illustrations .tea{animation-delay:.48s}.hero-illustrations .coffee{animation-delay:.6s}}@keyframes mascot-drop-in{0%{opacity:0;animation-timing-function:cubic-bezier(.33,0,.67,1);translate:0 -24px}55%{opacity:1;animation-timing-function:ease-out;translate:0 4px}78%{opacity:1;animation-timing-function:ease-in-out;translate:0 -2px}to{opacity:1;translate:0}}@media (min-width:1024px) and (prefers-reduced-motion:no-preference){.hero-illustrations .illustration{animation:1s cubic-bezier(.22,1,.36,1) both mascot-clockwise-reveal}.hero-illustrations .ball{animation-delay:0s}.hero-illustrations .tea{animation-delay:.24s}.hero-illustrations .coffee{animation-delay:.48s}.hero-illustrations .pillow{animation-delay:.72s}.hero-illustrations .mug{animation-delay:.96s}.hero-illustrations .chips{animation-delay:1.2s}.hero-illustrations .illustration:focus-visible{animation:none}}@keyframes mascot-clockwise-reveal{0%{opacity:0}to{opacity:1}}.site-header{z-index:2;white-space:nowrap;align-items:start;gap:8px;display:flex;position:absolute;top:24px;left:50%;transform:translate(-50%)}.navigation,.language-control{border:1px solid var(--surface-soft);background:var(--surface-white);border-radius:40px;align-items:center;display:flex}.navigation{gap:24px;padding:12px 60px}.nav-item{color:var(--text-tertiary);background:0 0;border:0;align-items:center;gap:8px;padding:4px;font-size:14px;line-height:1.5;display:flex}.nav-item img{flex:none}.nav-item.active{color:var(--accent-base);font-weight:500}.header-icon{flex:0 0 24px;width:24px;height:24px;display:grid}.header-icon img{grid-area:1/1}.header-icon-hover{opacity:0}.nav-item:not(.active):is(:hover,:focus-visible){color:var(--text-secondary)}.nav-item:not(.active):is(:hover,:focus-visible) .header-icon-default{opacity:0}.nav-item:not(.active):is(:hover,:focus-visible) .header-icon-hover{opacity:1}.nav-item:not(.active):is(:hover,:focus-visible) .portrait:after{content:"";border:1.5px solid var(--text-secondary);border-radius:inherit;pointer-events:none;position:absolute;inset:0}.language-control{gap:8px;padding:12px 24px;font-size:14px;line-height:1.5}.language-current,.language-chinese{align-items:center;height:32px;padding:4px;display:flex}.language-current{color:var(--accent-base);font-weight:500}.language-chinese{color:var(--text-tertiary);background:0 0;border:0}.language-chinese:is(:hover,:focus-visible){color:var(--text-secondary)}.language-divider{justify-content:center;align-items:center;width:1px;height:14px;display:flex}.language-divider img{max-width:none;transform:rotate(90deg)}.marquee{background:var(--accent-base);height:56px;color:var(--secondary-soft);align-items:center;display:flex;overflow:hidden}.marquee-track{width:max-content;font-family:var(--font-bitcount), monospace;white-space:nowrap;flex-shrink:0;font-size:16px;line-height:24px;animation:60s linear infinite marquee-scroll;display:flex}.marquee-group{flex:none;justify-content:space-around;gap:48px;min-width:100vw;padding-right:48px;display:flex}.marquee span{text-align:center;flex:none;width:144px}.marquee:hover .marquee-track,.marquee:focus-within .marquee-track{animation-play-state:paused}.marquee:focus-visible{outline-color:var(--secondary-soft);outline-offset:-4px}@keyframes marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.about-section{justify-content:center;align-items:center;min-height:100dvh;padding-block:120px;display:flex;overflow:clip}.about-content{align-items:center;gap:16px;width:100%;max-width:800px;display:flex}.polaroid-space{flex:none;justify-content:center;align-items:center;width:376.73px;height:470.351px;display:flex}.polaroid-swing{transform-origin:50% 0;flex:none}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.polaroid-swing{transition:transform 1s cubic-bezier(.22,.61,.36,1)}.polaroid-space:hover .polaroid-swing{transition-timing-function:cubic-bezier(.34,1.56,.64,1);transform:rotate(4deg)}}.polaroid{background:var(--surface-white);border:1px solid var(--surface-soft);border-radius:8px;flex-direction:column;flex:none;align-items:center;gap:24px;width:320px;padding:12px 12px 24px;display:flex;transform:rotate(-8deg)}.polaroid-picture{border-radius:4px;width:100%;height:320px;position:relative;overflow:hidden}.polaroid-picture img{object-fit:cover}.polaroid figcaption{align-items:center;gap:8px;font-size:24px;font-weight:500;line-height:1.2;display:flex}.about-copy{flex-direction:column;flex:1;align-items:start;gap:32px;min-width:0;display:flex}.about-copy>p{font-family:var(--font-caveat), cursive;font-size:48px;font-weight:400;line-height:58px}.scroll-typewriter-word{white-space:nowrap;display:inline-block}.scroll-typewriter [data-typewriter-character]{color:var(--text-primary)}.scroll-typewriter[data-typewriter-active] [data-typewriter-character]{color:var(--text-tertiary)}.scroll-typewriter[data-typewriter-active] [data-revealed=true]{color:var(--text-primary)}@media (prefers-reduced-motion:reduce){.scroll-typewriter[data-typewriter-active] [data-typewriter-character]{color:var(--text-primary)}}.pill-button{--button-wave-size:132px;--button-wave-position:-84px -100px;--button-arrow-shift:0px;--button-wave-duration:1s;--button-wave-ease:cubic-bezier(.16, 1, .3, 1);isolation:isolate;background:var(--accent-base);color:#fff;white-space:nowrap;cursor:pointer;border:0;border-radius:40px;flex:none;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:8px 16px 8px 24px;font-size:16px;font-weight:500;line-height:24px;display:inline-flex;position:relative;overflow:hidden}.button-content{justify-content:center;align-items:center;gap:8px;display:inline-flex}.button-symbol{align-items:center;display:flex}.button-wave{padding:inherit;background:var(--secondary-base);color:#000;pointer-events:none;-webkit-mask-source-type:alpha;-webkit-mask-source-type:alpha;-webkit-mask-image:url(/effects/wave-fill.svg);mask-image:url(/effects/wave-fill.svg);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-source-type:alpha;mask-mode:alpha;-webkit-mask-size:var(--button-wave-size) auto;-webkit-mask-size:var(--button-wave-size) auto;-webkit-mask-size:var(--button-wave-size) auto;mask-size:var(--button-wave-size) auto;-webkit-mask-position:var(--button-wave-position);-webkit-mask-position:var(--button-wave-position);-webkit-mask-position:var(--button-wave-position);mask-position:var(--button-wave-position);transition:mask-size var(--button-wave-duration) var(--button-wave-ease), mask-position var(--button-wave-duration) var(--button-wave-ease);position:absolute;inset:0}.button-arrow{flex:none;align-items:center;width:24px;height:20px;display:flex;overflow:hidden}.button-arrow img{max-width:none;transform:translateX(var(--button-arrow-shift));transition:transform var(--button-wave-duration) var(--button-wave-ease);flex:none;display:block}.button-wave .button-arrow img{filter:brightness(0);transform:translateX(calc(var(--button-arrow-shift) - 32px))}.pill-button:not(:disabled):is(:focus-visible,:active){--button-wave-size:300%;--button-wave-position:50% 50%;--button-arrow-shift:32px}@media (hover:hover){.pill-button:hover{--button-wave-size:300%;--button-wave-position:50% 50%;--button-arrow-shift:32px}}@supports not ((-webkit-mask-image:url("/effects/wave-fill.svg")) or (mask-image:url("/effects/wave-fill.svg"))){.button-wave{display:none}.button-arrow img{transform:none}.pill-button:is(:hover,:focus-visible,:active){background:var(--secondary-base);color:#000}}.projects-section{padding-block:120px}.project-list{flex-direction:column;gap:32px;margin-top:60px;display:flex}.project-card{border:1.5px solid var(--surface-soft);background:var(--surface-white);border-radius:32px;flex-direction:column;gap:24px;height:600px;padding:24px;display:flex;overflow:clip}@media (min-width:768px){.project-card{height:550px}}.project-heading{flex:none;align-items:start;gap:32px;padding:16px;display:flex}.project-description{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.project-name{align-items:center;gap:8px;font-size:15px;line-height:23px;display:flex}.project-icon{border:1px solid var(--surface-soft);border-radius:8px;flex:none;width:24px;height:24px;padding:3px}.project-icon img{object-fit:cover}.shipped{background:var(--surface-soft);border-radius:4px;align-items:center;gap:8px;padding-inline:8px;display:inline-flex}.shipped>span{background:#98d37a;border-radius:3px;width:6px;height:6px}.project-description h3{font-size:24px;font-weight:500;line-height:29px}.project-meta{color:var(--text-secondary);align-items:center;gap:8px;font-size:15px;line-height:23px;display:flex}.meta-dot{background:var(--text-secondary);border-radius:50%;flex:none;width:4px;height:4px}.project-gallery{scrollbar-width:none;overscroll-behavior-x:contain;border-radius:16px 0 0 16px;flex:1;align-items:stretch;gap:16px;min-height:0;margin-right:-25.5px;padding-right:25.5px;display:flex;overflow:auto hidden}.project-gallery::-webkit-scrollbar{display:none}.project-gallery:focus-visible{outline-offset:-4px}.gallery-photo{aspect-ratio:1;border-radius:16px;flex:none;width:auto;height:100%;position:relative;overflow:hidden}.gallery-photo-wide{aspect-ratio:576/392;width:auto}.gallery-photo img{object-fit:cover}.gallery-placeholder{background:var(--surface-soft)}.project-gallery-marquee{position:relative}.project-gallery-track{width:max-content;height:100%;animation:60s linear infinite project-gallery-scroll;display:flex;position:absolute;top:0;left:0}.project-gallery-group{flex:none;gap:16px;height:100%;padding-right:16px;display:flex}.project-gallery-marquee:active .project-gallery-track{animation-play-state:paused}.project-gallery-marquee[data-manual-scroll] .project-gallery-track{animation:none}.project-gallery-marquee[data-manual-scroll] .project-gallery-group[aria-hidden=true]{display:none}@keyframes project-gallery-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.project-gallery-group[aria-hidden=true]{display:none}}.testimonials-section{justify-content:center;align-items:center;min-height:100dvh;padding-block:120px;display:flex}.testimonials-list{align-items:stretch;gap:16px;margin-top:60px;display:flex}.testimonial-wrap{width:calc(33.3333% - 10.6667px);min-width:0}.testimonial-1{padding-block:24px}.testimonial-2{padding-bottom:48px;transform:rotate(-2deg)}.testimonial-3{padding-top:48px;transform:rotate(1deg)}.testimonial-card{background:var(--secondary-soft);border-radius:32px;flex-direction:column;gap:48px;height:100%;padding:32px;display:flex}.testimonial-2 .testimonial-card{background:var(--accent-soft)}.testimonial-3 .testimonial-card{background:var(--surface-white)}.testimonial-person{align-items:center;gap:12px;display:flex}.testimonial-person>img:first-child{object-fit:cover;border-radius:49px;flex:none}.testimonial-person>div{flex:1;min-width:0}.testimonial-person>img:last-child{flex:none}.person-name{font-size:15px;font-weight:500;line-height:23px}.person-role{color:var(--text-secondary);font-size:12px;line-height:18px}.testimonial-card blockquote{font-size:15px;line-height:23px}.testimonial-2 blockquote,.testimonial-3 blockquote{margin-top:auto}.footer{background:var(--surface-main);text-align:center;padding-block:120px}.footer-message{color:var(--text-primary);font-size:36px;font-weight:500;line-height:1.2}.footer-email{vertical-align:baseline;text-align:left;white-space:nowrap;font-family:var(--font-caveat), cursive;color:var(--secondary-deep);font-weight:400;display:inline-grid}.footer-email-space,.footer-email-typed{grid-area:1/1}.footer-email-space{visibility:hidden}.footer-email:hover{text-underline-offset:5px;text-decoration:underline}.footer-cursor,.footer-cursor-space{width:.35em;font-family:var(--font-dm-sans), sans-serif;display:inline-block}.footer-cursor{visibility:hidden}.footer[data-typing] .footer-cursor{visibility:visible;animation:1s step-end infinite footer-cursor-blink}.footer[data-typing-paused] .footer-cursor{animation-play-state:paused}@keyframes footer-cursor-blink{50%{opacity:0}}@media (max-width:1280px){:root{--page-padding:60px}.mug{top:59.9%;left:calc(50% - 398.92px)}.chips{left:calc(50% - 360.31px)}.pillow{bottom:max(24px,50% - 328px);left:50%}.tea{left:calc(50% + 392.4px)}.coffee{bottom:22.95%;left:calc(50% + 379.91px)}.ball{top:max(104px,50% - 292px);left:50%}.about-copy>p{font-weight:700}}@media (min-width:768px) and (max-width:1023px){:root{--page-padding:40px}.hero{--mascot-frame-width:min(700px, calc(100vw - 80px));--mascot-frame-height:calc(var(--mascot-frame-width) * 245 / 512.815);padding-top:112px;padding-bottom:calc(var(--mascot-frame-height) + 82px)}.greeting{font-size:16px;line-height:19px}.hero-illustrations{width:var(--mascot-frame-width);height:var(--mascot-frame-height);inset:auto auto 50px 50%;transform:translate(-50%)}.hero-illustrations-layout{width:512.815px;height:245px;transform:translateX(-50%) scale(var(--mascot-cluster-scale,1));transform-origin:top;display:block;position:absolute;top:0;left:50%}.mug{top:57.346px;left:calc(50% - 157.33px)}.chips{top:44.963px;left:calc(50% - 15.72px)}.pillow{bottom:0;left:calc(50% - 67.41px)}.tea{top:6.494px;left:calc(50% + 100px)}.coffee{bottom:13.906px;left:calc(50% + 186.5px)}.ball{top:142px;left:calc(50% + 78.59px)}.about-copy>p{font-size:36px;line-height:43px}}@media (max-width:1023px){.polaroid-space{width:301.384px;height:376.281px}.polaroid{scale:.8}.section-content>h2{font-size:32px}.testimonials-section{min-height:0}.testimonials-list{flex-direction:column;gap:16px}.testimonial-wrap{width:100%;padding:0}.testimonial-card{height:auto}.testimonial-2{padding-block:calc((100vw - 2 * var(--page-padding)) * .01745 - .08px);transform:none}.testimonial-3{padding-block:calc((100vw - 2 * var(--page-padding)) * .008726 - .025px);transform:none}.testimonial-2 .testimonial-card{transform:rotate(-2deg)}.testimonial-3 .testimonial-card{transform:rotate(1deg)}.testimonial-2 blockquote,.testimonial-3 blockquote{margin-top:0}}@media (max-width:767px){.project-card,.testimonial-card{border-radius:24px}.gallery-photo{border-radius:16px}.hero h1{font-size:24pt;line-height:1.2}:root{--page-padding:24px}.site-header{gap:4px;top:24px}.navigation{gap:16px;padding:12px 24px}.nav-item>span:not(.portrait):not(.header-icon){display:none}.language-control{padding:12px 16px}.language-divider,.language-chinese{display:none}.hero{flex-direction:column;justify-content:flex-start;align-items:center;gap:32px;padding-top:112px;padding-bottom:50px}.hero-copy{flex:none;gap:24px;width:100%;min-width:0;margin-block:auto}.greeting{font-size:16px;line-height:19px}.desktop-headline{display:none}.mobile-headline{display:inline}.desktop-break{display:none}.hero-illustrations{flex:none;width:512.815px;height:245px;position:relative;inset:auto auto auto .41px;transform:none}.mug{top:57.346px;left:calc(50% - 157.33px)}.chips{top:44.963px;left:calc(50% - 15.72px)}.pillow{bottom:0;left:calc(50% - 67.41px)}.tea{top:6.494px;left:calc(50% + 100px)}.coffee{bottom:13.906px;left:calc(50% + 186.5px)}.ball{top:142px;left:calc(50% + 78.59px)}.about-section{padding-block:60px}.about-content{flex-direction:column}.about-copy{text-align:center;flex:none;align-items:center;width:100%}.about-copy>p{font-size:36px;line-height:43px}.projects-section,.testimonials-section{padding-block:60px}.project-list{gap:16px;margin-top:48px}.project-card{gap:16px;padding:16px}.project-heading{flex-direction:column;gap:24px}.project-description{flex:none;width:100%}.project-gallery{margin-right:-17.5px;padding-right:17.5px}.testimonials-list{margin-top:48px}.footer{padding-block:120px}.footer-message{font-size:32px}}@media (max-width:479px){:root{--page-padding:16px}.hero-illustrations{left:.91px}}@media (max-width:767px) and (max-height:740px){.hero{gap:24px;padding-top:104px}.hero-illustrations{transform-origin:top;margin-bottom:-49px;transform:scale(.8)}}@media (max-width:767px) and (max-height:620px){.hero{gap:16px;padding-top:96px}.hero-copy{gap:16px}.hero-illustrations{margin-bottom:-98px;transform:scale(.6)}}@media (max-width:374px){.navigation{gap:12px;padding-inline:16px}.polaroid-space{width:100%;height:344px}.polaroid{width:min(290px,90vw)}.polaroid-picture{height:290px}.project-heading{padding-inline:4px}.project-name,.project-meta{flex-wrap:wrap}.testimonial-card{padding:24px}.footer-message{font-size:28px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
html[lang=zh-Hant] body,html[lang=zh-Hant] .case-study,html[lang=zh-Hant] .about-copy>p,html[lang=zh-Hant] .about-bio h1,html[lang=zh-Hant] .case-next-message,html[lang=zh-Hant] .case-next-link{font-family:var(--font-noto-tc), var(--font-dm-sans), sans-serif}html[lang=zh-Hant] .about-accent{color:var(--text-primary)}html[lang=zh-Hant] .hero h1 em{font-style:normal}html[lang=zh-Hant] .headline-underline{max-width:none}html[lang=zh-Hant] .hero-description,html[lang=zh-Hant] .scroll-typewriter{white-space:pre-line}html[lang=zh-Hant] .scroll-typewriter{line-height:1.2}html[lang=zh-Hant] .case-content p,html[lang=zh-Hant] .case-content dd,html[lang=zh-Hant] .testimonial-card blockquote{line-height:1.5}html[lang=zh-Hant] .case-next-desktop{flex-wrap:wrap}html[lang=zh-Hant] .case-next-compact{font-size:clamp(16px,3.2vw,24px)}.language-option{font:inherit;color:var(--text-tertiary);cursor:pointer;background:0 0;border:0;padding:4px}.language-option.language-current,.language-option:hover{color:var(--accent-base)}.language-mobile{align-items:center;gap:8px;display:none;position:relative}.language-chevron{border-bottom:1.5px solid;border-right:1.5px solid;flex:none;width:6px;height:6px;transform:translateY(-2px)rotate(45deg)}.language-select{opacity:0;cursor:pointer;width:100%;height:100%;font:inherit;position:absolute;inset:0}.language-mobile:has(.language-select:focus-visible){outline:2px solid var(--accent-base);outline-offset:4px;border-radius:4px}@media (max-width:767px){.language-control .language-english,.language-control .language-chinese,.language-control .language-divider{display:none}.language-control .language-mobile{display:flex}html[lang=zh-Hant] .about-copy>p{font-size:32px}html[lang=zh-Hant] .headline-underline{transform-origin:0;transform:scaleX(.888889)}}
.project-photo-flight{z-index:40;pointer-events:none;position:fixed;overflow:hidden}.project-photo-flight img{object-fit:cover;width:100%;height:100%;display:block}html[data-project-photo-transition] .case-key-photo-frame{visibility:hidden}@media (prefers-reduced-motion:reduce){.project-photo-flight{display:none}html[data-project-photo-transition] .case-key-photo-frame{visibility:visible}}
