@import"https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&display=swap";:root{--bg-color: #fcfbf9;--surface-color: #ffffff;--text-primary: #1a1a1a;--text-secondary: #666666;--text-tertiary: #737373;--text-accent: #ba3928;--text-accent-on-dark: color-mix(in srgb, var(--accent-color-on-dark) 85%, black);--accent-color: #ea580c;--accent-color-on-dark: #d5ff3f;--border-color: #e5e5e5;--grid-line: rgba(0, 0, 0, .03);--media-dark: #1a1a1a;--control-overlay: rgba(255, 255, 255, .7);--control-border: rgba(0, 0, 0, .05);--control-selected: #ffffff;--control-muted: #666666;--control-size: 44px;--font-sans: "Helvetica Neue", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-serif: "Noto Serif SC", "Songti SC", serif;--font-collection: "Helvetica Neue", "PingFang SC", "Microsoft YaHei", sans-serif;--font-handwritten: "Covered By Your Grace", cursive;--type-caption: .8rem;--type-small: .9rem;--type-link: .95rem;--type-body: 1.05rem;--type-label: 1.1rem;--type-subheading: 1.25rem;--type-section: 1.8rem;--type-title: 3rem;--type-hero: 3.5rem;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--weight-label: var(--weight-semibold);--leading-heading: 1.2;--leading-ui: 1.6;--leading-body: 1.8;--tracking-heading: -.02em;--space-2xs: .25rem;--space-xs: .5rem;--space-sm: 1rem;--space-md: 2rem;--space-lg: 4rem;--space-xl: 8rem;--radius-sm: 8px;--radius-md: 16px;--radius-lg: 24px;--radius-pill: 999px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .02);--shadow-hover: 0 16px 48px rgba(0, 0, 0, .08);--content-width: 1200px;--reading-width: 800px;--title-width: 900px;--split-width: calc(var(--content-width) - 2 * var(--page-gutter));--case-media-height: clamp(280px, 40vw, 480px);--page-gutter: var(--space-md);--case-nav-height: calc(var(--control-size) + 2 * var(--space-sm));--case-nav-fade: var(--space-sm);--case-nav-blur-max: 16px;--case-top-offset: calc(var(--case-nav-height) + var(--case-header-gap));--case-header-gap: var(--space-lg);--duration-fast: .2s;--duration-normal: .4s;--duration-slow: .8s;--duration-theme: .3s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-standard: cubic-bezier(.2, .8, .2, 1);--transition-fast: var(--duration-fast) var(--ease-out);--transition-smooth: var(--duration-normal) var(--ease-out);--layer-content: 1;--layer-controls: 30;--layer-nav: 100;--layer-popover: 200;--layer-modal: 300;--layer-tooltip: 400}body.dark-theme{--bg-color: #111111;--surface-color: #1a1a1a;--text-primary: #f5f5f5;--text-secondary: #a3a3a3;--text-tertiary: #8a8a8a;--text-accent: var(--text-accent-on-dark);--accent-color: var(--accent-color-on-dark);--border-color: #262626;--grid-line: rgba(255, 255, 255, .04);--control-overlay: rgba(30, 30, 30, .7);--control-border: rgba(255, 255, 255, .1);--control-selected: #444444;--control-muted: #a3a3a3}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-color);color:var(--text-primary);line-height:var(--leading-ui);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--duration-theme) ease,color var(--duration-theme) ease;background-image:linear-gradient(to right,var(--grid-line) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-line) 1px,transparent 1px);background-size:64px 64px;background-position:center top}h1,h2,h3,h4,h5,h6{font-weight:var(--weight-semibold);line-height:var(--leading-heading)}a{color:inherit;text-decoration:none}@media(prefers-reduced-motion:reduce){body{transition:none}}@font-face{font-family:Covered By Your Grace;src:url(/fonts/CoveredByYourGrace-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Garage Latin;src:url(/fonts/garage-latin-medium-italic.woff2) format("woff2");font-weight:500;font-style:italic;font-display:swap}.legacy-home{padding-bottom:0}.legacy-home .project-grid{margin-bottom:var(--space-lg)}.garage-scene{--garage-accent: #ff4000}.garage-door{position:relative;z-index:1;background-color:var(--bg-color);background-image:linear-gradient(to right,var(--grid-line) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-line) 1px,transparent 1px);background-size:64px 64px;background-position:center top;transform:translateY(calc(-1 * var(--garage-overpull, 0px)))}.garage-entrance{position:relative;-webkit-user-select:none;user-select:none}.garage-threshold{position:relative;height:var(--threshold-height, 224px)}.garage-metal-edge{position:absolute;z-index:1;left:0;bottom:-5px;width:100%;height:12px;object-fit:fill;pointer-events:none}.garage-keyhole{position:absolute;bottom:18px;left:calc(50% - 22px);display:grid;place-items:center;width:44px;height:44px;border-radius:50%}.garage-keyhole img{display:block;width:40px;height:40px;transform:rotate(var(--lock-turn, 0deg));transition:transform .12s linear}.garage-keyhole:focus-visible{outline:2px solid var(--accent-color);outline-offset:2px}.garage-reveal{position:relative;display:grid;place-items:center;isolation:isolate;height:33.333svh;overflow:visible;clip-path:inset(calc(-1 * var(--garage-overpull, 0px)) 0 0);background:#0b0e0e}.garage-background{position:fixed;z-index:-2;bottom:0;left:0;width:100%;height:var(--garage-background-height, calc(33.333svh + 64px) );object-fit:cover;object-position:50% 55%;filter:brightness(.62);pointer-events:none}.garage-reveal:after{content:"";position:fixed;left:0;bottom:0;width:100%;height:var(--garage-background-height, calc(33.333svh + 64px) );z-index:-1;background:linear-gradient(180deg,#0003,#0006);pointer-events:none}.garage-enter{color:#d4efa0;font-family:"Garage Latin",var(--font-sans);font-size:var(--type-caption);font-weight:var(--weight-medium);font-style:italic;font-synthesis:none;line-height:var(--leading-ui);letter-spacing:.09em;text-shadow:0 0 .35em #bddb7080;pointer-events:none;opacity:0;transition:opacity var(--duration-fast) var(--ease-out)}.garage-scene:is([data-door-state=open],[data-door-state=overpulled]) .garage-enter{opacity:1}.garage-scene[data-departing=true] .garage-door,.garage-scene[data-departing=true] .garage-reveal{pointer-events:none}.garage-invitation{position:absolute;left:50%;bottom:52px;display:grid;place-items:center;width:min(468px,calc((100% - 40px)*.9));color:var(--garage-accent);text-align:center;transform:translate(-50%) rotate(-5deg) skew(-4deg);pointer-events:none}.garage-phrase{display:block;width:100%;overflow:visible;font-family:var(--font-handwritten);font-size:48px;font-weight:400;letter-spacing:-.5px;fill:currentColor}.garage-underline{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;opacity:.85}.garage-cursor{position:fixed;z-index:40;top:0;left:0;display:none;align-items:center;gap:10px;padding:14px 20px;border-radius:100px;background:var(--garage-accent);color:#fff;font-family:var(--font-sans);font-size:.875rem;font-weight:500;line-height:1.5;white-space:nowrap;pointer-events:none;opacity:0;transform:translate3d(var(--cursor-x, -500px),var(--cursor-y, -500px),0) translate(-50%,-50%);transition:opacity .15s ease}@media(hover:hover)and (pointer:fine){.garage-reveal,.garage-reveal *{cursor:none}.garage-cursor{display:flex}.garage-cursor[data-active=true]{opacity:1}.garage-scene .garage-reveal:hover .garage-enter{opacity:0}}.garage-reveal:focus-visible{outline:2px solid #fffdf5;outline-offset:-8px}@media(max-width:600px){.garage-background{object-position:65% 55%}}@media(prefers-reduced-motion:reduce){.garage-keyhole img,.garage-cursor,.garage-enter{transition:none}.garage-keyhole img{transform:none}}.home-archive-section{margin-top:var(--space-xl);margin-bottom:var(--space-xl)}.project-card.archive-card{display:grid;grid-column:1 / -1;grid-template-columns:minmax(200px,.3fr) minmax(0,1fr);height:224px}.archive-card .archive-card-caption{position:relative;flex-direction:row;align-items:center;justify-content:flex-start;gap:var(--space-sm)}.archive-card-caption .card-title{margin:0;font-family:var(--font-serif);font-size:1.75rem}.archive-card-visual{position:relative;min-width:0;overflow:hidden;filter:grayscale(1);transition:filter var(--transition-smooth)}.archive-card:is(:hover,:focus) .archive-card-visual{filter:grayscale(0)}.archive-card-image{position:absolute;inset:0}.archive-card-mosaic{position:absolute;left:50%;top:50%;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));grid-template-areas:"bugu bugu ocestra oracle roli roli" "dialect dialect ocestra oracle metro brand" "maschine maschine marketing marketing metro seaboard";width:108%;aspect-ratio:2.4;transform:translate(-50%,-50%) perspective(1000px) rotateX(38deg) rotateY(-12deg) rotate(-19deg);box-shadow:0 20px 24px #00000024}.archive-cover-tile{min-width:0;min-height:0;overflow:hidden}.archive-cover-tile img{display:block;width:100%;height:100%;object-fit:cover}.archive-cover-bugu-dashboard{grid-area:bugu}.archive-cover-ocestra-mix{grid-area:ocestra}.archive-cover-oracle{grid-area:oracle}.archive-cover-roli-blocks{grid-area:roli}.archive-cover-dialect{grid-area:dialect}.archive-cover-sleepy-routes{grid-area:metro}.archive-cover-wusi-stationery{grid-area:brand}.archive-cover-claw-cover{grid-area:maschine}.archive-cover-bugu-marketing{grid-area:marketing}.archive-cover-roli-detail{grid-area:seaboard}.archive-cover-bugu-dashboard img,.archive-cover-bugu-marketing img{object-position:left top}.archive-cover-oracle img{object-position:center 30%}.archive-card:focus-visible{outline:2px solid var(--accent-color);outline-offset:var(--space-2xs)}@media(max-width:992px){.project-card.archive-card{grid-template-columns:200px minmax(0,1fr)}.archive-card-mosaic{width:max(108%,580px)}}@media(max-width:600px){.project-card.archive-card{grid-template-columns:108px minmax(0,1fr);height:180px}.archive-card .archive-card-caption{flex-direction:column;align-items:flex-start;justify-content:center;gap:var(--space-xs);padding:var(--space-sm)}.archive-card-caption .card-title{font-size:var(--type-subheading)}.archive-card-mosaic{width:380px;aspect-ratio:1.9}}@media(prefers-reduced-motion:reduce){.project-card.archive-card,.archive-card-visual{transition:none}}.personal-projects{margin-top:var(--space-xl);margin-bottom:var(--space-lg)}.personal-projects-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-sm);margin-bottom:var(--space-md);font-weight:var(--weight-regular);line-height:var(--leading-heading)}.personal-projects-title [lang=zh-CN]{font-family:var(--font-serif);font-size:1.75rem;font-weight:var(--weight-semibold)}.personal-projects-title [lang=en]{font-family:var(--font-handwritten);font-size:2.25rem}.personal-projects-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md);align-items:stretch}.personal-project-feature{min-width:0}.personal-project-feature .card-desc{text-wrap:balance}.personal-project-feature:focus-visible{outline:2px solid var(--accent-color);outline-offset:var(--space-2xs)}.personal-projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:var(--space-sm)}.project-card.personal-project-card{position:relative;isolation:isolate;display:flex;flex-direction:row;align-items:flex-end;width:100%;min-width:0;min-height:144px;padding:20px;overflow:hidden;color:#fff}.personal-project-card-media{position:absolute;inset:0;overflow:hidden;border-radius:calc(var(--radius-lg) - 1px)}.personal-project-cover{position:absolute;inset:0;background-size:cover;background-repeat:no-repeat}.personal-project-card-media:after{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(to bottom,#00000005 15%,#00000014 45%,#00000042 70%,#000000ad)}.personal-project-card h3{position:relative;z-index:2;font-size:var(--type-label);font-weight:var(--weight-medium);line-height:1.35;text-wrap:balance;text-shadow:0 1px 6px rgb(0 0 0 / .25)}.personal-project-card:focus-visible{outline:2px solid var(--accent-color);outline-offset:var(--space-2xs)}@media(max-width:992px){.personal-projects-layout{grid-template-columns:minmax(0,1fr)}.project-card.personal-project-card{aspect-ratio:8 / 5}.project-card.personal-project-card{padding:var(--space-sm)}}body.collection-theme{background:#111;color:#f0f0f0;color-scheme:dark}.collection-home{--collection-muted: #929292;min-height:100svh;padding-bottom:48px;background:#111;color:#f0f0f0;font-family:var(--font-collection);overflow:clip}.collection-home button{font:inherit}.collection-home button,.home-version-switch{-webkit-tap-highlight-color:transparent}.collection-home a:focus-visible,.collection-home button:focus-visible,.record-stage:focus-visible,.home-version-switch:focus-visible{outline:2px solid #ddd;outline-offset:6px}.collection-about{width:min(1120px,calc(100% - 112px));margin-inline:auto}.home-version-switch{position:absolute;z-index:var(--layer-controls);top:32px;right:max(56px,calc((100% - 1120px)/2));display:flex;align-items:center;gap:8px;padding:7px 0;border:none;background:transparent;color:#999;font-size:11px;cursor:pointer;transition:color .2s}.home-version-switch:hover{color:#eee}.home-version-switch.on-classic{color:var(--text-secondary)}.collection-about{padding-block:96px 34px}.about-name{display:block;width:clamp(270px,28vw,360px);max-width:100%;height:auto}.about-copy{margin-top:24px}.about-education{font-size:14px;color:#ccc}.about-awards{font-size:12px;color:var(--collection-muted);margin-top:12px;line-height:1.9}.about-contacts{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:21px;font-size:12px;color:#bbb}.about-contacts a{padding-bottom:3px}.about-contacts a:hover{color:#fff}.about-contacts a span{margin-left:6px;color:#777}.record-stage{--record-size: clamp(260px, 30vw, 420px);--record-spread: clamp(155px, 20vw, 263px);--thickness: 12px;height:calc(var(--record-size) + 82px);position:relative;perspective:1500px;touch-action:pan-y;cursor:grab;-webkit-user-select:none;user-select:none;isolation:isolate}.record-stage:active{cursor:grabbing}.record{position:absolute;left:calc(50% - var(--record-size) / 2);top:44px;width:var(--record-size);height:var(--record-size);border:0;background:none;padding:0;color:var(--ink);cursor:pointer;transform-style:preserve-3d;transform:translate(calc(var(--offset) * var(--record-spread))) translateZ(calc(var(--distance) * -110px)) rotateY(var(--turn));transition:transform .7s cubic-bezier(.22,.68,0,1.02)}.record-object{display:block;position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .3s}.record.is-active:hover .record-object{transform:translateY(-6px)}.record-front,.record-back{position:absolute;inset:0;background:var(--sleeve);backface-visibility:hidden;border-radius:1px}.record-front{background:var(--cover-bg);transform:translateZ(calc(var(--thickness) / 2));display:flex;flex-direction:column;text-align:left;padding:8%;overflow:hidden}.record-back{transform:rotateY(180deg) translateZ(calc(var(--thickness) / 2))}.sleeve-title{font-size:calc(var(--record-size) * .105);font-weight:500;line-height:1.25;letter-spacing:-1px}.sleeve-picture{display:flex;flex:1;min-height:0;align-items:center;justify-content:center;padding:9% 5%}.sleeve-picture img{display:block;width:100%;max-height:100%;object-fit:contain;pointer-events:none}.sleeve-picture-enlarged{padding-inline:0}.sleeve-picture-enlarged img{transform:scale(1.3)}.sleeve-category{font-size:calc(var(--record-size) * .027);letter-spacing:.5px}.record-full-cover{padding:0}.record-artwork{width:100%;height:100%;object-fit:cover;pointer-events:none}.record-artwork-tilted{transform:rotate(-18deg) scale(1.28)}.record-artwork-cropped{object-position:left top;transform:scale(1.65);transform-origin:left top}.sleeve-title-overlay{position:absolute;top:8%;left:8%;max-width:84%;padding:5px 9px 7px;background:var(--cover-bg);font-size:calc(var(--record-size) * .09)}.record-spine{position:absolute;top:0;width:var(--thickness);height:100%;background:var(--sleeve);display:flex;align-items:center;justify-content:center;font-size:8px;letter-spacing:.8px;font-weight:500;backface-visibility:hidden;border-inline:1px solid color-mix(in srgb,var(--ink) 12%,transparent)}.record-spine>span{position:absolute;top:8%;left:50%;white-space:nowrap;writing-mode:horizontal-tb;transform:rotate(90deg) translateY(-50%);transform-origin:top left;line-height:1}.record-spine-left{left:calc(var(--thickness) / -2);transform:rotateY(-90deg)}.record-spine-right{right:calc(var(--thickness) / -2);transform:rotateY(90deg)}.record-edge{position:absolute;left:0;width:100%;height:var(--thickness);background:var(--sleeve);backface-visibility:hidden}.record-edge-top{top:calc(var(--thickness) / -2);transform:rotateX(90deg)}.record-edge-bottom{bottom:calc(var(--thickness) / -2);transform:rotateX(-90deg)}.record-pagination{display:flex;justify-content:center;margin-top:16px}.record-pagination button{display:grid;place-items:center;width:32px;height:44px;background:none;border:none;cursor:pointer}.record-pagination button span{width:4px;height:4px;border-radius:50%;background:#666;transition:width .3s,background .3s}.record-pagination button.is-active span{width:20px;border-radius:2px;background:#ddd}.record-details{width:min(480px,calc(100% - 48px));margin-inline:auto;text-align:center}.record-copy{animation:record-copy-in .35s ease both}.record-copy h2{font-size:22px;font-weight:500;letter-spacing:-.4px;margin-bottom:12px}.record-description{color:#aaa;font-size:13px;line-height:1.9}@keyframes record-copy-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1600px){.record-stage{--record-spread: 280px}}@media(max-width:760px){.collection-about{width:calc(100% - 44px)}.home-version-switch{right:22px;top:22px}.collection-about{padding-block:87px 25px}.about-copy{margin-top:22px}.about-education{font-size:12px}.about-awards{font-size:11px}.about-contacts{gap:10px 20px;font-size:11px}.record-stage{--record-size: clamp(250px, 63vw, 360px);--record-spread: clamp(174px, 35vw, 232px);--thickness: 10px;height:calc(var(--record-size) + 68px);perspective:1100px}.record{top:36px}.record-copy h2{font-size:21px}}@media(prefers-reduced-motion:reduce){.collection-home *,.collection-home *:before,.collection-home *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.new-home{--scene-accent: var(--text-accent);position:relative;isolation:isolate;overflow:clip;color:var(--scene-ink);transition:color 1s}.new-home-backdrop{position:fixed;inset:0;z-index:-1;background-color:var(--scene-bg);background-image:linear-gradient(to right,rgba(0,0,0,.03) 1px,transparent 1px),linear-gradient(to bottom,rgba(0,0,0,.03) 1px,transparent 1px);background-size:64px 64px;background-position:center top;transition:background-color 1s;pointer-events:none}.new-home-intro{position:fixed;inset:0 0 auto;width:100%;z-index:0;pointer-events:none}.new-home-intro .hero{pointer-events:auto}.new-home-intro .hero-subtitle,.new-home-intro .hero-awards,.new-home-intro .contact-link{transition:color 1s}.new-home.has-project-theme .hero-subtitle,.new-home.has-project-theme .contact-link{color:var(--scene-ink)}.new-home.has-project-theme .hero-awards{color:color-mix(in srgb,var(--scene-ink) 72%,transparent)}.new-home-intro .contact-link:hover{color:var(--scene-accent)}.new-home.has-project-theme{--scene-accent: color-mix(in srgb, var(--text-accent) 65%, black)}.new-home.has-dark-project{--scene-accent: color-mix(in srgb, var(--text-accent-on-dark) 90%, white)}.new-home.has-dark-project .hero-title img{filter:invert(1) hue-rotate(180deg)}.new-home-intro .hero-title img{transition:filter 1s}.new-home-intro-space{height:calc(100svh - var(--preview-height, 260px) / 2);pointer-events:none}.new-home-projects{position:relative;z-index:1;max-width:1600px;margin-inline:auto;padding:0 32px 32px;pointer-events:none}.new-home-work-heading{position:fixed;inset-inline:0;bottom:calc(var(--preview-height, 260px) / 2 + 48px);z-index:0;display:flex;align-items:baseline;justify-content:space-between;margin-inline:auto;width:min(1136px,calc(100% - 64px));gap:24px;pointer-events:none}.new-home-work-heading h2{font:600 1.75rem/1.4 var(--font-serif)}.new-home-work-heading>span{font-size:12px;color:var(--scene-accent);letter-spacing:.06em}.new-home-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:128px 16px}.new-home-item{min-width:0;margin-inline:9vw 6.7vw}.new-home-item:nth-child(2n){margin:50% 9vw 0 6.7vw}.new-home-item:nth-child(6n+3){margin-inline:0 15.5vw}.new-home-project{display:block;pointer-events:auto;perspective:1000px;transform:scale(var(--entry-scale, 1));transform-origin:right center;transition:transform .12s linear}.new-home-item:nth-child(2n) .new-home-project{transform-origin:left center}.new-home-visual{background:var(--art-bg);transform:rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));transition:transform .18s ease-out,box-shadow .5s;box-shadow:0 24px 30px 3px #00000029}.new-home-visual img{display:block;width:100%;height:auto;opacity:var(--entry-opacity, 1);transition:opacity .12s linear}.new-home-project.is-cutout .new-home-visual{background:transparent;box-shadow:none}.new-home-project.is-cutout img{filter:drop-shadow(0 20px 20px rgba(0,0,0,.12))}.new-home-item-2 .new-home-visual{padding-block:8%}.new-home-caption{padding-block:22px 12px;background:var(--scene-bg);transition:background-color 1s}.new-home-project-meta{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:10px;font-size:11px;letter-spacing:.06em}.new-home-arrow{font-size:22px;line-height:1;transition:transform .25s}.new-home-caption h3{font-size:clamp(18px,1.5vw,23px);font-weight:500;line-height:1.45}.new-home-caption p{margin-top:12px;font-size:13px;line-height:1.8}.new-home-project:hover .new-home-arrow{transform:translate(3px,-3px)}.new-home-project:not(.is-cutout):hover .new-home-visual{box-shadow:0 24px 30px 3px #00000040}.new-home a:focus-visible,.new-home button:focus-visible{outline:2px solid currentColor;outline-offset:8px}.new-home-outro{position:relative;z-index:1;height:200svh;padding-top:30svh;text-align:center;pointer-events:none}.new-home-outro button{border:0;background:transparent;color:var(--scene-accent);padding:16px;font:inherit;font-size:13px;cursor:pointer;pointer-events:auto}.new-home-loop{position:absolute;top:100svh;height:1px;width:100%}.new-home-transition{position:fixed;inset:0;z-index:var(--layer-nav);display:grid;place-items:center;animation:new-home-cover 1.75s cubic-bezier(.76,0,.24,1) both}.new-home-transition span{font-size:clamp(32px,7vw,96px);font-weight:500}@keyframes new-home-cover{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(min-width:1600px){.new-home-item{margin-inline:144px 107px}.new-home-item:nth-child(2n){margin-inline:107px 144px}.new-home-item:nth-child(6n+3){margin-inline:0 248px}}@media(max-width:991px){.new-home-item,.new-home-item:nth-child(2n),.new-home-item:nth-child(6n+3){margin-inline:24px}.new-home-grid{gap:80px 16px}.new-home-outro{height:65svh;padding-top:20svh}.new-home-loop{display:none}}@media(max-width:767px){.new-home-grid{grid-template-columns:minmax(0,1fr);gap:100px}.new-home-item,.new-home-item:nth-child(2n),.new-home-item:nth-child(6n+3){margin:0 7vw}.new-home-projects{padding-inline:24px}.new-home-work-heading{width:calc(100% - 48px)}.new-home-work-heading h2{font-size:1.4rem}.new-home-item-2 .new-home-visual{padding:0}.new-home-caption h3{font-size:21px}}@media(max-width:479px){.new-home-item,.new-home-item:nth-child(2n),.new-home-item:nth-child(6n+3){margin:0}.new-home-visual{box-shadow:none}}@media(prefers-reduced-motion:reduce){.new-home *,.new-home *:before,.new-home *:after{animation:none!important;transition:none!important}.new-home-project,.new-home-visual{transform:none}.new-home-visual img{opacity:1}.new-home-outro{height:65svh;padding-top:20svh}.new-home-loop{display:none}}.case-study-page{animation:fadeIn var(--duration-normal) var(--ease-out) both}.container.case-study-page{padding-top:var(--case-top-offset);padding-bottom:var(--space-xl)}.case-nav{position:fixed;top:0;left:0;right:0;z-index:var(--layer-nav);height:var(--case-nav-height);pointer-events:none}.case-nav-backdrop{position:absolute;z-index:0;inset:0 0 auto;height:calc(var(--case-nav-height) + var(--case-nav-fade));pointer-events:none}.case-nav-backdrop:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,color-mix(in srgb,var(--bg-color) 98%,transparent) 0%,color-mix(in srgb,var(--bg-color) 95%,transparent) 30%,color-mix(in srgb,var(--bg-color) 90%,transparent) 40%,color-mix(in srgb,var(--bg-color) 73%,transparent) 50%,color-mix(in srgb,var(--bg-color) 50%,transparent) 60%,color-mix(in srgb,var(--bg-color) 28%,transparent) 70%,color-mix(in srgb,var(--bg-color) 12%,transparent) 80%,color-mix(in srgb,var(--bg-color) 3%,transparent) 90%,transparent 100%);opacity:0;transition:opacity var(--duration-fast) var(--ease-out)}.case-nav.scrolled .case-nav-backdrop:after{opacity:1}.case-nav-blur{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity var(--duration-fast) var(--ease-out)}@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) and ((mask-image: linear-gradient(black,transparent)) or (-webkit-mask-image: linear-gradient(black,transparent))){.case-nav-blur{mask-image:linear-gradient(to bottom,black 0%,black var(--blur-solid),transparent var(--blur-end));-webkit-mask-image:linear-gradient(to bottom,black 0%,black var(--blur-solid),transparent var(--blur-end))}.case-nav.scrolled .case-nav-blur{opacity:1;backdrop-filter:blur(var(--blur-radius));-webkit-backdrop-filter:blur(var(--blur-radius))}}.case-nav-blur:nth-child(1){--blur-radius: calc(var(--case-nav-blur-max) / 16);--blur-solid: 75%;--blur-end: 100%}.case-nav-blur:nth-child(2){--blur-radius: calc(var(--case-nav-blur-max) / 8);--blur-solid: 60%;--blur-end: 85%}.case-nav-blur:nth-child(3){--blur-radius: calc(var(--case-nav-blur-max) / 4);--blur-solid: 45%;--blur-end: 70%}.case-nav-blur:nth-child(4){--blur-radius: calc(var(--case-nav-blur-max) / 2);--blur-solid: 30%;--blur-end: 55%}.case-nav-blur:nth-child(5){--blur-radius: var(--case-nav-blur-max);--blur-solid: 15%;--blur-end: 40%}@supports not (background: color-mix(in srgb,white,transparent)){.case-nav-backdrop:after{background:linear-gradient(to bottom,var(--bg-color) 0%,var(--bg-color) 40%,transparent 100%)}}.case-nav-inner{position:relative;z-index:var(--layer-content);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);gap:var(--space-sm);align-items:center;height:var(--case-nav-height);padding:var(--space-sm) var(--page-gutter);max-width:var(--content-width);margin:0 auto;pointer-events:none}.case-nav .back-link{justify-self:start;min-height:var(--control-size);white-space:nowrap;pointer-events:auto}.case-nav-title{justify-self:center;min-width:0;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-weight:var(--weight-label);font-size:var(--type-label);opacity:0;transform:translateY(10px) scale(.95);transition:all var(--duration-normal) var(--ease-standard);pointer-events:none;color:var(--text-primary)}.case-nav.scrolled .case-nav-title{opacity:1;transform:translateY(0) scale(1)}.case-nav-right{justify-self:end;display:flex;align-items:center;min-width:var(--control-size);min-height:var(--control-size);pointer-events:auto}.back-link{display:inline-flex;align-items:center;gap:var(--space-xs);font-weight:var(--weight-medium);color:var(--text-secondary);transition:color var(--transition-fast);cursor:pointer}.back-link:hover{color:var(--text-accent)}@media(max-width:600px){.case-nav-inner{grid-template-columns:auto minmax(0,1fr) auto;gap:var(--space-sm)}.case-nav .back-link{white-space:nowrap}.case-nav-title{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.case-header{margin-bottom:var(--case-header-gap)}.case-header>:last-child{margin-bottom:0}.case-study-page>.case-header+.case-media{margin-top:0}.case-title{font-size:var(--type-title);font-weight:var(--weight-bold);letter-spacing:var(--tracking-heading);margin-bottom:var(--space-sm);max-width:var(--title-width)}.case-role{font-family:var(--font-serif);font-size:var(--type-label);color:var(--text-accent);font-weight:var(--weight-label);margin-bottom:var(--space-md)}.case-section{max-width:var(--reading-width);margin:0 auto var(--space-xl) auto}.case-section--wide{max-width:var(--split-width)}.case-reading{max-width:var(--reading-width);margin-inline:auto}.case-project-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md);max-width:var(--split-width);margin:var(--space-xl) auto 0;border-top:1px solid var(--border-color)}.case-project-link{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:var(--space-xs);min-width:0;min-height:var(--control-size);padding-block:var(--space-md);color:var(--text-primary);transition:color var(--transition-fast)}.case-project-link--next{align-items:flex-end;text-align:right}.case-project-direction{display:inline-flex;align-items:center;gap:var(--space-xs);color:var(--text-secondary);font-size:var(--type-small);line-height:var(--leading-ui)}.case-project-direction svg{flex-shrink:0}.case-project-link--next .case-project-direction svg{order:1}.case-project-title{font-size:var(--type-subheading);font-weight:var(--weight-semibold);line-height:var(--leading-heading);overflow-wrap:anywhere}.case-project-link:hover{color:var(--text-accent)}@media(max-width:600px){.case-project-nav{gap:var(--space-sm)}}.case-section h2,.case-section h3{font-size:var(--type-section);margin-bottom:var(--space-sm);color:var(--text-primary)}.case-section h4{font-size:var(--type-subheading);margin-top:var(--space-md);margin-bottom:var(--space-xs);color:var(--text-primary)}.case-text{font-size:var(--type-body);line-height:var(--leading-body);color:var(--text-secondary);margin-bottom:var(--space-sm)}.case-intro .case-text{font-weight:var(--weight-bold)}.case-intro .case-text--regular{font-weight:var(--weight-regular)}.case-media-note{max-width:var(--reading-width);margin:0 auto;color:var(--text-secondary);font-size:var(--type-caption);line-height:var(--leading-ui)}.case-list{padding-left:var(--space-sm);margin-bottom:var(--space-md)}.case-list li{font-size:var(--type-body);line-height:var(--leading-body);color:var(--text-secondary);margin-bottom:var(--space-xs)}.img-block{margin:var(--space-lg) auto;width:100%;display:flex;justify-content:center}.img-container{max-width:100%;border-radius:var(--radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);overflow:hidden;background:var(--surface-color)}.img-container img{display:block;width:100%;height:auto}.img-mockup{max-width:100%}.img-mockup img{display:block;width:100%;height:auto;filter:drop-shadow(0 12px 32px rgba(0,0,0,.06))}.case-split{--split-copy-track: 1fr;--split-media-track: 1fr;display:grid;grid-template-columns:minmax(0,var(--split-copy-track)) minmax(0,var(--split-media-track));gap:var(--space-xl);align-items:center;margin:var(--space-xl) auto;max-width:var(--split-width)}.case-split--media{--split-media-track: 1.5fr}.case-split--text{--split-copy-track: 1.5fr}.case-split--media-left{grid-template-columns:minmax(0,var(--split-media-track)) minmax(0,var(--split-copy-track))}.case-split--media-left .case-split-copy{order:2}.case-split--media-left .case-split-visual{order:1}.case-split-copy,.case-split-visual{min-width:0}.case-split-visual{position:relative;width:min(100%,var(--case-media-height));margin-inline:auto}.case-split .case-section{margin:0}.case-split-media{display:flex;align-items:center;justify-content:center;aspect-ratio:1;min-width:0}.case-split-media>.case-media{margin:0;width:100%;height:100%}.case-split-media>.case-media>img,.case-split-media>.case-media>video{height:100%;object-fit:contain}.case-split-media>.case-media>img{width:auto;max-width:100%}.case-split-caption{margin-top:var(--space-xs);font-size:var(--type-caption);color:var(--text-secondary);text-align:center}.case-split-visual--caption-overlay{overflow:hidden;border-radius:var(--radius-lg)}.case-split-visual--caption-overlay .case-split-caption{position:absolute;inset:auto 0 0;margin:0;padding:var(--space-lg) var(--space-sm) var(--space-sm);color:#fff;text-align:left;background:linear-gradient(to top,rgba(0,0,0,.8),rgba(0,0,0,.65) 50%,transparent)}@media(max-width:992px){.case-split{grid-template-columns:minmax(0,1fr);gap:var(--space-lg)}.case-split .case-split-copy{order:1}.case-split .case-split-visual,.case-split--media-first .case-split-copy{order:2}.case-split--media-first .case-split-visual{order:1}}.case-gallery{width:100%;max-width:var(--split-width);margin:var(--space-lg) auto;padding-bottom:var(--space-md)}.case-gallery .case-gallery-title{font-size:var(--type-subheading);color:var(--text-secondary);margin-bottom:var(--space-md)}.horizontal-scroll{display:flex;overflow-x:auto;gap:var(--space-md);border-radius:var(--gallery-radius, var(--radius-sm));scroll-snap-type:x mandatory;scrollbar-width:thin}.horizontal-scroll::-webkit-scrollbar{height:8px}.horizontal-scroll::-webkit-scrollbar-track{background:transparent}.horizontal-scroll::-webkit-scrollbar-thumb{background:var(--grid-line);border-radius:4px}.horizontal-scroll .img-container,.horizontal-scroll img{flex:0 0 auto;scroll-snap-align:start;height:100%;width:auto;max-width:none}.horizontal-scroll .case-media,.horizontal-scroll img{border-radius:var(--gallery-radius, var(--radius-sm))}.case-media--bare,.case-media--muted,.case-media--dark{border:none;box-shadow:none}.case-media--bare{background:transparent}.case-media--muted{background:var(--grid-line);border-radius:var(--radius-lg)}.case-media--dark{background:var(--media-dark)}.case-media>video{display:block;width:100%;height:auto}.case-media--spaced{margin-bottom:var(--space-xl)}.horizontal-scroll:focus-visible,.back-link:focus-visible,.case-project-link:focus-visible{outline:2px solid var(--accent-color);outline-offset:var(--space-2xs)}@media(prefers-reduced-motion:reduce){.case-nav-title,.case-nav-blur,.case-nav-backdrop:after,.case-project-link{transition:none}}.ailoha-design-media{border-radius:var(--radius-lg);overflow:hidden;transition:background-color var(--duration-theme) var(--ease-out),border-color var(--duration-theme) var(--ease-out)}.ailoha-trust-surface{height:100%;aspect-ratio:1;max-width:100%}@media(prefers-reduced-motion:reduce){.ailoha-design-media{transition:none}}.ailoha-design-media .img-magnifier-container{display:block}.ailoha-design-video{display:block;width:100%;height:auto;border-radius:var(--radius-lg)}.case-split-media>.ailoha-efficiency-media>.ailoha-design-video{height:100%;object-fit:cover}.ailoha-components-media{background:#ebebeb}body.dark-theme .ailoha-components-media{background:#1a1a1a}.ailoha-components-media .theme-image-switch-container,.ailoha-components-media .theme-image-wrapper{height:100%}.ailoha-components-media .theme-image-wrapper{border-radius:0}.ailoha-components-media .theme-image-layer{display:flex;align-items:center;justify-content:center;height:100%}.ailoha-components-media .img-magnifier-container{flex:0 0 calc(100% * 4884 / 5728);border-radius:0;transform:rotate(6deg) scale(1.2)}.ailoha-task-demo{margin:var(--space-md) auto 0;text-align:center}.ailoha-task-demo-gallery{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,4fr) minmax(0,3fr);grid-template-areas:"left video right";align-items:center;isolation:isolate}.ailoha-task-demo-main{grid-area:video;z-index:2}.ailoha-task-demo-left{grid-area:left;justify-self:start}.ailoha-task-demo-right{grid-area:right;justify-self:end}.ailoha-task-demo-phone{position:relative;width:min(100%,320px);aspect-ratio:1840 / 3840;margin:0 auto;isolation:isolate;filter:drop-shadow(0 16px 24px rgba(0,0,0,.12))}.ailoha-task-demo-side{width:116.6667%;max-width:280px;margin:0;z-index:1}.ailoha-task-demo-video,.ailoha-task-demo-screen{position:absolute;inset:2.45% 4.24%;width:91.52%;height:95.1%;object-fit:contain;border-radius:15%/7%;background:#000}.ailoha-task-demo-frame{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}@media(max-width:600px){.ailoha-task-demo-gallery{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"video video" "left right";gap:24px 16px}.ailoha-task-demo-side{width:100%;margin:0 auto}}.a5-interaction-container{--a5-divider-position: 100%;--a5-divider-opacity: 0;--a5-app-canvas: color-mix(in srgb, #ebebeb 92%, var(--a5-app-accent));--a5-app-surface: #fff;--a5-app-border: #e9e9e9;--a5-app-text: #333;--a5-app-secondary: #606060;--a5-app-accent: #00c8b3;--a5-app-shadow: 0 2px 6px rgba(0, 0, 0, .03);position:relative;width:100%;height:420px;border-radius:var(--radius-lg);border:1px solid var(--border-color);overflow:hidden;margin:var(--space-lg) auto;background:var(--a5-app-canvas)}.a5-layer{position:absolute;inset:0}.a5-interaction-container .after-layer:before{content:"";position:absolute;inset:0;z-index:0;background:url(/images/A1bgpattern.png) center / cover;mix-blend-mode:multiply;opacity:.5;pointer-events:none}.a5-interaction-container .before-layer{background:#f6f7f2;clip-path:inset(0 calc(100% - var(--a5-divider-position)) 0 0)}.a5-interaction-container .after-layer{background:var(--a5-app-canvas);clip-path:inset(0 0 0 var(--a5-divider-position));isolation:isolate}.a5-interaction-container .schedule-cards-container{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-areas:"c1 c3" "c2 c5" "c4 c5";align-content:center;align-items:start;gap:12px 20px;height:100%;max-width:800px;margin:0 auto;padding:24px 32px}.a5-interaction-container .schedule-card{min-width:0;background:var(--a5-app-surface);border:1px solid var(--a5-app-border);border-radius:12px;padding:12px;box-shadow:var(--a5-app-shadow)}.a5-interaction-container .card-event-inner{border-left:2px solid var(--a5-app-accent);padding-left:8px}.a5-interaction-container .card-title{margin:0;font-size:15px;font-weight:600;color:var(--a5-app-text);line-height:1.4}.a5-interaction-container .card-subtitle{font-weight:400;color:var(--a5-app-secondary);font-size:14px}.a5-interaction-container .card-info{display:flex;flex-direction:column;gap:4px;margin-top:6px}.a5-interaction-container .card-info-item{display:flex;align-items:flex-start;gap:8px;font-size:13px;line-height:1.5;color:var(--a5-app-secondary);overflow-wrap:anywhere}.a5-interaction-container .card-info-item svg{flex-shrink:0;margin-top:2px;color:var(--a5-app-secondary)}.a5-interaction-container .bubbles-container{position:relative;height:100%}.a5-interaction-container .chat-bubble{position:absolute;max-width:220px;padding:10px 14px;border-radius:12px;font-size:.9rem;line-height:1.4;box-shadow:0 2px 8px #232d140a;overflow-wrap:anywhere;font-weight:400;transform:var(--a5-bubble-transform, none);transform-origin:75% 50%}.a5-interaction-container .chat-bubble.left{background:#fff;color:#34382e;border-bottom-left-radius:3px}.a5-interaction-container .chat-bubble.right{background:#e9f5bf;color:#2d3818;border-bottom-right-radius:3px}.a5-scroll-divider{position:absolute;inset-block:0;left:var(--a5-divider-position);width:1px;background:var(--a5-app-secondary);opacity:calc(var(--a5-divider-opacity) * .35);transform:translate(-50%);pointer-events:none}body.dark-theme .a5-interaction-container{--a5-app-canvas: color-mix(in srgb, #1a1a1a 94%, var(--a5-app-accent));--a5-app-surface: #212121;--a5-app-border: #313131;--a5-app-text: #e5e5e5;--a5-app-secondary: #9e9e9e;--a5-app-accent: #d6fe51;--a5-app-shadow: none}body.dark-theme .a5-interaction-container .before-layer{background:#1a1c17}body.dark-theme .a5-interaction-container .after-layer:before{filter:invert(1);mix-blend-mode:screen;opacity:.2}body.dark-theme .a5-interaction-container .chat-bubble.left{background:#2a2e23;border-color:#3b4232;color:#edf1e5}@media(prefers-reduced-motion:reduce){.a5-interaction-container .chat-bubble{transform:none}}@media(max-width:600px){.a5-interaction-container{height:400px}.a5-interaction-container .schedule-cards-container{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:16px 12px}.a5-interaction-container .schedule-card{padding:10px 8px}.a5-interaction-container .card-title{font-size:13px}.a5-interaction-container .card-subtitle,.a5-interaction-container .card-info-item{font-size:11px}.a5-interaction-container .card-info-item{gap:5px}.a5-interaction-container .card-event .card-info-item:last-child{display:none}.a5-interaction-container .chat-bubble{max-width:44%;padding:8px 10px;font-size:12px}}.img-magnifier-container{position:relative;display:inline-block;cursor:none;border-radius:inherit;overflow:hidden}body.dark-theme .magnifier-glass{border-color:#fff3!important;box-shadow:0 4px 16px #00000080!important}.theme-image-switch-container{position:relative;width:100%;display:block;border-radius:inherit}.theme-toggle-pill{position:absolute;top:var(--space-sm);right:var(--space-sm);z-index:var(--layer-controls);display:flex;align-items:center;background:var(--control-overlay);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:var(--radius-pill);padding:var(--space-2xs);box-shadow:0 4px 12px #00000014;border:1px solid var(--control-border)}.theme-image-switch-container.outset-switch{padding-top:calc(var(--control-size) + var(--space-xs) + var(--space-sm))}.theme-image-switch-container.outset-switch .theme-toggle-pill{top:0;right:0}body.dark-theme .theme-toggle-pill{box-shadow:0 4px 12px #0000004d}.theme-toggle-slider{position:absolute;top:var(--space-2xs);bottom:var(--space-2xs);width:var(--control-size);background:var(--control-selected);border-radius:var(--radius-pill);transition:transform var(--duration-theme) var(--ease-standard);box-shadow:0 1px 4px #0000001a;z-index:1}body.dark-theme .theme-toggle-slider{box-shadow:0 1px 4px #0006}.theme-toggle-slider.left{transform:translate(0)}.theme-toggle-slider.right{transform:translate(var(--control-size))}.theme-toggle-icon-btn{position:relative;z-index:2;background:transparent;border:none;cursor:pointer;width:var(--control-size);height:var(--control-size);display:flex;align-items:center;justify-content:center;color:var(--control-muted);padding:0;transition:color var(--duration-theme) var(--ease-out)}.theme-toggle-icon-btn.active{color:var(--text-primary)}.theme-image-wrapper{display:grid;width:100%;border-radius:inherit;overflow:hidden}.theme-image-layer{grid-area:1 / 1;min-width:0;border-radius:inherit;opacity:0;pointer-events:none;transition:opacity var(--duration-theme) var(--ease-out)}.theme-image-layer.is-active{z-index:1;opacity:1;pointer-events:auto}.theme-toggle-icon-btn:focus-visible{outline:2px solid var(--accent-color);outline-offset:var(--space-2xs);border-radius:var(--radius-pill)}@media(prefers-reduced-motion:reduce){.theme-toggle-slider,.theme-toggle-icon-btn,.theme-image-layer{transition:none}}.floating-theme-toggle{pointer-events:auto;width:var(--control-size);height:var(--control-size);border-radius:var(--radius-pill);background-color:var(--control-overlay);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--control-border);box-shadow:0 4px 16px #0006;color:var(--text-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform var(--duration-theme) var(--ease-standard),background-color var(--duration-theme) var(--ease-out);margin-left:auto}.floating-theme-toggle:hover{transform:scale(1.05);background-color:var(--surface-color)}.floating-theme-toggle:focus-visible{outline:2px solid var(--accent-color);outline-offset:var(--space-2xs)}@media(prefers-reduced-motion:reduce){.floating-theme-toggle{transition:none}.floating-theme-toggle:hover{transform:none}}.third-retention-gallery .horizontal-scroll{gap:var(--space-sm)}.third-retention-gallery .horizontal-scroll img{width:calc((100% - 3 * var(--space-sm)) / 4);min-width:min(100%,224px);height:auto}@media(max-width:600px){.third-retention-gallery .horizontal-scroll img{width:min(76vw,280px)}}.case-image-stack{position:relative;width:100%;max-width:600px;aspect-ratio:1.5;margin-inline:auto;isolation:isolate}.case-image-card{position:absolute;top:10%;left:4%;width:92%;border:0;border-radius:var(--radius-md);padding:0;background:transparent;overflow:hidden;cursor:pointer;transform-origin:center;box-shadow:0 14px 32px #00000040;transition:transform .6s cubic-bezier(.22,1,.36,1),box-shadow .6s ease}.case-image-card.is-active{--stack-card-transform: translate(-3%, 3%) rotate(-4deg);z-index:2;transform:var(--stack-card-transform)}.case-image-card.is-behind{--stack-card-transform: translate(5%, -7%) rotate(6deg) scale(.96);z-index:1;transform:var(--stack-card-transform);box-shadow:0 6px 20px #0000002e}.case-image-stack.is-returning>.case-image-card{transition:none}.case-image-stack.is-returning>.case-image-card.is-returning{animation:case-stack-return var(--duration-fast) var(--ease-out) var(--stack-return-delay) both}@keyframes case-stack-return{0%{opacity:0;transform:var(--stack-card-transform) translate(-1%) rotate(-1.5deg) scale(.98)}to{opacity:1;transform:var(--stack-card-transform)}}.case-image-card img{display:block;width:100%;height:auto;border-radius:0}.case-image-card:focus-visible{outline:3px solid var(--stack-focus-color, var(--accent-color));outline-offset:6px}@media(prefers-reduced-motion:reduce){.case-image-card{transition:none}.case-image-stack.is-returning>.case-image-card.is-returning{animation:none}}.case-split-media>.xcmg-bauma-media>img{width:100%;object-fit:cover;object-position:center}.xcmg-system-scroll{height:var(--case-media-height);margin:var(--space-md) 0 var(--space-lg)}.xcmg-system-window{position:relative;height:var(--case-media-height);overflow:hidden;border-radius:var(--radius-lg);background:#1a1a1a}.xcmg-system-image{display:block;width:100%;height:auto;transform:translate3d(0,var(--xcmg-image-offset, 0px),0);will-change:transform}@media(prefers-reduced-motion:reduce){.xcmg-system-scroll,.xcmg-system-window{height:auto}.xcmg-system-window{position:static}.xcmg-system-image{transform:none;will-change:auto}}.sona-gallery .horizontal-scroll{gap:var(--space-sm)}.sona-gallery .horizontal-scroll img{height:clamp(220px,26vw,320px);width:auto}.sona-slides{padding-block:var(--space-sm)}.sona-slides .case-image-stack{max-width:100%}.sona-slides .case-image-card.is-active{--stack-card-transform: translate(-2%, 2%) rotate(-2deg);z-index:10}.sona-slides .case-image-card.is-behind{--stack-card-transform: translate(calc(var(--stack-depth) * 1.4%), calc(var(--stack-depth) * -2.2%)) rotate(calc(var(--stack-depth) * 2deg)) scale(calc(1 - var(--stack-depth) * .012));z-index:calc(10 - var(--stack-depth))}.blublub-design-media{border-radius:var(--radius-lg);overflow:hidden}.case-split-media>.blublub-design-media>img{width:100%;object-fit:cover;object-position:center}.blublub-gallery .horizontal-scroll{gap:var(--space-sm)}.blublub-gallery .horizontal-scroll img{height:clamp(220px,26vw,320px);width:auto}.blublub-gallery .horizontal-scroll img:first-child{margin-inline-start:auto}.blublub-gallery .horizontal-scroll img:last-child{margin-inline-end:auto}.ocestra-concept-row{--stack-focus-color: #a9c9ba;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--space-lg)}@media(max-width:992px){.ocestra-concept-row{grid-template-columns:minmax(0,1fr)}}.tiktok-page{height:100vh;padding:var(--space-lg) 5%;animation:fadeIn .5s var(--ease-out) both;overflow:hidden;position:relative}.tiktok-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:var(--layer-modal);animation:modalFadeIn .3s ease forwards}.tiktok-modal{background:#fff;border-radius:20px;padding:40px 32px 32px;max-width:400px;width:90%;text-align:center;box-shadow:0 24px 64px #0003;animation:modalFadeIn .3s ease forwards}.tiktok-modal-icon{display:flex;justify-content:center;margin-bottom:16px}.tiktok-modal-title{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin-bottom:12px;letter-spacing:-.01em}.tiktok-modal-body{font-size:.9rem;line-height:1.7;color:var(--text-secondary);margin-bottom:28px}.tiktok-modal-btn{background:var(--text-primary);color:#fff;border:none;border-radius:24px;padding:12px 32px;font-size:.9rem;font-weight:500;cursor:pointer;transition:opacity .2s ease}.tiktok-modal-btn:hover{opacity:.85}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.tiktok-layout{display:flex;align-items:center;justify-content:center;gap:var(--space-xl);max-width:1400px;margin:0 auto;height:100%;box-sizing:border-box}.tiktok-phone{display:flex;justify-content:center;align-items:center;flex-shrink:0}.phone-frame{width:390px;height:844px;background:#000;border-radius:48px;box-shadow:0 0 0 8px #0000000a,0 32px 64px #00000014,0 64px 128px #0000000a;overflow:hidden;position:relative;flex-shrink:0}.phone-content{width:100%;height:100%;overflow:hidden}.phone-iframe-wrapper{width:390px;height:844px;overflow:hidden;position:relative}.phone-iframe{width:390px;height:844px;border:none;background:#000;display:block;transform-origin:center center;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}@media(max-width:1100px){.phone-frame,.phone-iframe-wrapper{width:320px;height:692px}.phone-iframe{transform:translate(-50%,-50%) scale(.8205)}}@media(max-width:768px){.phone-frame,.phone-iframe-wrapper{width:280px;height:606px}.phone-iframe{transform:translate(-50%,-50%) scale(.7179)}}.tiktok-intro{display:flex;flex-direction:column;justify-content:flex-start;gap:var(--space-sm);flex:1;min-height:0;overflow:hidden}.intro-header{display:flex;align-items:baseline;gap:var(--space-md);flex-shrink:0}.intro-title{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;color:var(--text-primary)}.intro-subtitle{font-family:var(--font-serif);font-size:1rem;color:var(--text-accent);font-weight:500}.intro-pages{position:relative;height:520px;overflow-y:scroll;padding:var(--space-sm);background:#fff;border-radius:var(--radius-lg);border:1px solid var(--border-color)}.intro-pages::-webkit-scrollbar{width:6px}.intro-pages::-webkit-scrollbar-track{background:#0000000d;border-radius:3px}.intro-pages::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}.intro-pages::-webkit-scrollbar-thumb:hover{background:#00000040}.intro-page{display:none}.intro-page.active{display:block}.intro-page-title{font-size:1.25rem;font-weight:600;margin-bottom:var(--space-sm);color:var(--text-primary);letter-spacing:-.01em}.intro-page-content{font-size:.9rem;line-height:1.7;color:var(--text-secondary)}.intro-page-content h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin-top:var(--space-md);margin-bottom:var(--space-xs)}.intro-page-content h4{font-size:.9rem;font-weight:600;color:var(--text-primary);margin-top:var(--space-sm);margin-bottom:var(--space-xs)}.intro-page-content p{margin-bottom:var(--space-sm)}.intro-page-content ul,.intro-page-content ol{margin-left:var(--space-md);margin-bottom:var(--space-sm)}.scene-list{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px}.intro-page-content li{margin-bottom:var(--space-xs)}.intro-page-content strong{color:var(--text-primary);font-weight:600}.intro-nav{display:flex;align-items:center;gap:var(--space-md);margin-top:var(--space-md)}.intro-nav-btn{width:48px;height:48px;border-radius:50%;border:1px solid var(--border-color);background:var(--surface-color);color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.25rem;transition:all var(--transition-fast);flex-shrink:0}.intro-nav-btn:hover:not(:disabled){background:var(--text-primary);color:var(--bg-color);border-color:var(--text-primary)}.intro-nav-btn:disabled{color:var(--text-tertiary);border-color:var(--border-color);cursor:not-allowed}.chapter-nav{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.chapter-btn{padding:6px 12px;border:none;background:transparent;color:var(--text-tertiary);font-size:.8rem;cursor:pointer;border-radius:4px;transition:all var(--transition-fast);white-space:nowrap}.chapter-btn:hover:not(.active){color:var(--text-secondary);background:var(--surface-color)}.chapter-btn.active{color:var(--text-primary);background:var(--surface-color);font-weight:500;position:relative}.chapter-btn.active:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:16px;height:2px;background:var(--accent-color);border-radius:1px}.doc-link{display:inline-flex;align-items:center;gap:6px;font-size:.95rem;color:var(--text-accent);text-decoration:none;transition:opacity var(--transition-fast)}.doc-link:hover{opacity:.7}.intro-links{display:flex;align-items:flex-start;gap:var(--space-md);margin-top:var(--space-sm);flex-wrap:wrap}.demo-notice-wrapper{position:relative}.demo-notice-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:none;padding:0;font-size:.95rem;color:var(--text-accent);cursor:pointer;transition:opacity var(--transition-fast)}.demo-notice-btn:hover{opacity:.7}.demo-notice-popover{position:absolute;bottom:calc(100% + 12px);left:0;width:440px;background:#fff;border-radius:16px;box-shadow:0 8px 32px #0000001f,0 2px 8px #0000000f;border:1px solid var(--border-color);z-index:var(--layer-nav);animation:modalFadeIn .2s ease forwards}.demo-notice-popover:after{content:"";position:absolute;top:100%;left:20px;border:8px solid transparent;border-top-color:#fff}.demo-notice-popover-content{padding:24px;max-height:520px;overflow-y:auto}.demo-notice-item{font-size:.9rem;line-height:1.7;color:var(--text-secondary);margin-bottom:8px}.demo-notice-label{font-size:.9rem;font-weight:600;color:var(--text-primary);margin-top:14px;margin-bottom:8px}.demo-notice-footer{font-size:.875rem;color:var(--text-tertiary);margin-top:14px;padding-top:12px;border-top:1px solid var(--border-color)}.demo-notice-popover--qr{width:320px}.demo-notice-popover-content--qr{padding:20px;display:flex;flex-direction:column;align-items:center;gap:14px}.demo-notice-popover-content--qr img{border-radius:8px}.demo-qr-hint{font-size:.85rem;color:var(--text-secondary);text-align:center;margin:0}@media(max-width:1100px){.tiktok-layout{gap:var(--space-lg)}.phone-frame{width:320px;height:692px}}@media(max-width:768px){.tiktok-page{padding:var(--space-md) 5%;height:auto;min-height:100vh}.tiktok-layout{flex-direction:column;gap:var(--space-lg);align-items:center;height:auto}.tiktok-intro{align-items:flex-start;text-align:left;flex:none}.phone-frame{width:280px;height:606px}.intro-title{font-size:2.25rem}.intro-page-title{font-size:1.5rem}.intro-page-content{font-size:1rem}}.archive-page .case-header{margin-bottom:var(--space-md)}.archive-masonry{--archive-columns: 3;position:relative;display:grid;grid-template-columns:repeat(var(--archive-columns),minmax(0,1fr));gap:var(--space-sm)}.archive-masonry.is-laid-out{display:block}.archive-item{position:relative;display:block;margin:0;border-radius:var(--radius-sm);background:transparent}.archive-item>img,.archive-item>video{display:block;width:100%;height:auto;border-radius:inherit}.archive-item>img:not(.is-ready),.archive-item>video:not(.is-ready){background:var(--grid-line)}.archive-gallery{position:relative;display:block;width:100%;padding:0;border:0;border-radius:inherit;overflow:visible;isolation:isolate;background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}.archive-frame,.archive-frame-sheet{position:absolute;inset:0;display:block;border-radius:inherit;pointer-events:none}.archive-frame{opacity:0;transition:opacity var(--transition-fast)}.archive-frame:not(.is-ready) img{visibility:hidden}.archive-frame-sheet{overflow:hidden;background:var(--grid-line);transform-origin:center;transition:transform var(--transition-fast)}.archive-frame.is-ready .archive-frame-sheet{background:var(--archive-media-surface, transparent)}.archive-gallery img{display:block;width:100%;height:100%;object-fit:contain}.archive-frame.is-active{opacity:1;z-index:4}.archive-frame.is-next{z-index:2}.archive-frame.is-after{z-index:1}.archive-frame.is-previous{z-index:5}.archive-gallery[data-phase=advancing] .is-active{animation:archive-frame-in var(--duration-fast) var(--ease-out) both}.archive-gallery .is-previous{animation:archive-frame-out var(--duration-fast) var(--ease-out) both}.archive-gallery[data-phase=advancing] :is(.is-active,.is-previous) .archive-frame-sheet,.archive-gallery[data-phase=rewinding] .archive-frame-sheet,.archive-gallery[data-phase=settling] .archive-frame,.archive-gallery[data-phase=settling] .archive-frame-sheet{transition:none}.archive-gallery:is(:hover,:focus-visible) .is-next,.archive-gallery:is(:hover,:focus-visible) .is-after{opacity:1}.archive-gallery .is-next .archive-frame-sheet{transform:translate(.4%,.3%) rotate(.7deg) scale(var(--archive-next-scale))}.archive-gallery .is-after .archive-frame-sheet{transform:translate(.8%,.5%) rotate(1.2deg) scale(var(--archive-after-scale))}.archive-gallery:is(:hover,:focus-visible) :is(.is-active,.is-previous,.is-base,.is-returning) .archive-frame-sheet{transform:translate(-.6%,-.3%) rotate(-1.2deg) scale(var(--archive-front-scale))}.archive-frame.is-base{opacity:1;z-index:0}.archive-frame.is-returning{z-index:var(--stack-order);animation:archive-stack-return var(--duration-fast) var(--ease-out) var(--return-delay) both}@keyframes archive-frame-in{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:none}}@keyframes archive-frame-out{0%{opacity:1;transform:none}to{opacity:0;transform:translate(-10px)}}@keyframes archive-stack-return{0%{opacity:0;transform:translate(-1%) rotate(-1.5deg) scale(var(--archive-return-scale))}to{opacity:1;transform:none}}.archive-item-arrow{position:absolute;top:var(--space-xs);right:var(--space-xs);z-index:3;display:grid;place-items:center;width:var(--control-size);height:var(--control-size);border-radius:var(--radius-pill);background:var(--surface-color);color:var(--text-primary);opacity:0;transform:translate(-3px,3px);transition:opacity var(--transition-fast),transform var(--transition-fast)}.archive-item:hover .archive-item-arrow,.archive-item:focus-within .archive-item-arrow{opacity:1;transform:none}.archive-gallery:focus-visible,.archive-item-arrow:focus-visible,.archive-motion-toggle:focus-visible{outline:2px solid var(--accent-color);outline-offset:var(--space-2xs)}.archive-motion-toggle{display:grid;place-items:center;width:var(--control-size);height:var(--control-size);padding:0;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--text-secondary);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.archive-motion-toggle:hover,.archive-motion-toggle[aria-pressed=true]{background:var(--grid-line);color:var(--text-primary)}@media(max-width:992px){.archive-masonry{--archive-columns: 2}}@media(max-width:600px){.archive-masonry{--archive-columns: 1}}@media(hover:none),(pointer:coarse){.archive-item-arrow{opacity:1;transform:none}.archive-gallery .is-next{opacity:1}.archive-gallery .archive-frame:is(.is-active,.is-previous,.is-base,.is-returning) .archive-frame-sheet{transform:translate(-.3%,-.2%) rotate(-.6deg) scale(var(--archive-touch-scale))}}@media(prefers-reduced-motion:reduce){.archive-frame{animation:none!important}.archive-frame,.archive-frame-sheet,.archive-item-arrow,.archive-motion-toggle{transition:none}}.personal-project-switcher{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-md);padding-bottom:var(--space-sm);margin-bottom:var(--space-lg);border-bottom:1px solid var(--border-color)}.personal-project-switcher a{display:inline-flex;align-items:center;min-height:var(--control-size);color:var(--text-secondary);font-size:var(--type-link);transition:color var(--transition-fast)}.personal-project-switcher a[aria-current=page]{color:var(--text-primary);text-decoration:underline;text-underline-offset:var(--space-xs);text-decoration-thickness:1px}.personal-project-switcher a:hover{color:var(--text-accent)}.personal-project-detail{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:var(--space-lg);animation:personal-project-enter var(--duration-normal) var(--ease-out) both}.personal-project-media{display:grid;place-items:center;min-height:calc(280px * 3840 / 1840)}.personal-project-copy{min-width:0}.personal-project-copy .case-header{margin-bottom:var(--space-md)}.personal-project-copy .case-title{font-size:clamp(2rem,3.5vw,3rem);text-wrap:balance}.personal-project-copy .case-role{font-family:var(--font-sans);font-weight:var(--weight-regular)}.personal-project-copy>p{max-width:65ch;font-size:var(--type-body);line-height:var(--leading-body);text-wrap:pretty}.personal-project-copy>p+p{margin-top:var(--space-sm)}.personal-project-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-md)}.personal-project-action{position:relative;display:inline-flex}.personal-project-action>a{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:var(--control-size);padding:var(--space-xs) var(--space-sm);border:1px solid var(--text-primary);border-radius:var(--radius-sm);font-size:var(--type-link);font-weight:var(--weight-medium);transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.personal-project-action:first-child>a{background:var(--text-primary);color:var(--bg-color)}.personal-project-action>a:hover{background:var(--text-accent);border-color:var(--text-accent);color:var(--bg-color)}.personal-project-switcher a:focus-visible,.personal-project-action>a:focus-visible{outline:2px solid var(--accent-color);outline-offset:var(--space-2xs)}.personal-testflight-tooltip{display:none;position:absolute;z-index:var(--layer-tooltip);bottom:calc(100% + var(--space-xs));left:50%;transform:translate(-50%);padding:var(--space-xs);border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#fff;box-shadow:var(--shadow-hover);pointer-events:none}.personal-testflight-tooltip img{display:block;width:176px;height:176px}@media(hover:hover)and (pointer:fine){.personal-testflight-tooltip:not([hidden]){display:block}}.personal-showcase.case-media{width:100%;margin:0;border-radius:0;overflow:visible}.personal-showcase-screen{width:100%;aspect-ratio:16 / 10;overflow:hidden;border-radius:var(--radius-sm)}.personal-showcase:not(.personal-showcase--phone) .personal-showcase-screen{box-shadow:var(--shadow-hover)}.personal-showcase-screen>:is(img,video,iframe){display:block;width:100%;height:100%;object-fit:contain;border:0}.personal-media-placeholder{display:grid;place-items:center;width:100%;height:100%;background:var(--surface-color);border:1px dashed var(--border-color);border-radius:inherit;color:var(--text-secondary);font-size:var(--type-small)}.personal-showcase--phone.case-media{position:relative;isolation:isolate;width:min(100%,280px);aspect-ratio:1840 / 3840;justify-self:center;background:transparent}.personal-showcase--phone .personal-showcase-screen{position:absolute;inset:2.45% 4.24%;width:91.52%;height:95.1%;aspect-ratio:auto;border-radius:15%/7%;background:#000}.personal-showcase--phone>.personal-phone-frame{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.personal-project-missing{margin-block:var(--space-lg)}@keyframes personal-project-enter{0%{opacity:0;transform:translateY(var(--space-xs))}to{opacity:1;transform:translateY(0)}}@media(max-width:992px){.personal-project-detail{gap:var(--space-md)}}@media(max-width:600px){.personal-project-switcher{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--space-sm);margin-bottom:var(--space-md)}.personal-project-switcher a{font-size:var(--type-small)}.personal-project-detail{grid-template-columns:minmax(0,1fr)}.personal-project-media{min-height:0}.personal-project-copy{grid-row:1}.personal-project-copy .case-title{font-size:2rem}.personal-showcase{margin-top:var(--space-sm)}}@media(prefers-reduced-motion:reduce){.personal-project-switcher a,.personal-project-actions a{transition:none}.personal-project-detail{animation:none}}.container{max-width:var(--content-width);margin:0 auto;padding:var(--space-lg) var(--page-gutter)}.hero{display:flex;flex-direction:column;align-items:flex-start;margin-top:var(--space-xl);margin-bottom:var(--space-xl);animation:fadeIn var(--duration-slow) var(--ease-out) both}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.hero,.case-study-page,.tiktok-page{animation:none}}.hero-title{max-width:100%;font-size:var(--type-hero);font-weight:var(--weight-bold);letter-spacing:var(--tracking-heading);margin-bottom:var(--space-sm);color:var(--text-primary)}.hero-title img{max-width:100%;object-fit:contain;object-position:left center}.hero-title .en-name{color:var(--text-accent);font-family:var(--font-serif);font-weight:var(--weight-medium);font-style:italic;margin-left:16px;font-size:.8em}.hero-subtitle{font-size:var(--type-subheading);color:var(--text-secondary);margin-bottom:var(--space-md);font-weight:var(--weight-medium)}.hero-awards{font-size:var(--type-body);color:var(--text-tertiary);margin-bottom:var(--space-lg);max-width:600px;line-height:var(--leading-body)}.hero-contacts{display:flex;flex-wrap:wrap;gap:var(--space-md)}.contact-link{font-size:var(--type-link);font-weight:var(--weight-medium);color:var(--text-secondary);text-decoration:none;border-bottom:2px solid transparent;padding-bottom:4px;transition:all var(--transition-fast)}.contact-link:hover{color:var(--text-accent);border-bottom-color:var(--text-accent)}.project-grid{display:grid;grid-template-columns:repeat(24,1fr);gap:var(--space-md);margin-bottom:var(--space-xl)}.project-card{background:var(--surface-color);border-radius:var(--radius-lg);border:1px solid var(--border-color);overflow:hidden;position:relative;transition:transform var(--transition-smooth),box-shadow var(--transition-smooth),border-color var(--transition-smooth);box-shadow:var(--shadow-sm);cursor:pointer;display:flex;flex-direction:column}.project-card:is(:hover,:focus-visible){transform:translateY(-8px);box-shadow:var(--shadow-hover);border-color:#ea580c33}.card-image-wrapper{width:100%;height:240px;overflow:hidden;position:relative;background-color:#f0f0f0}.card-image{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-smooth)}.project-card:is(:hover,:focus-visible) .card-image{transform:scale(1.05)}@media(prefers-reduced-motion:reduce){.project-card,.card-image{transition:none}.project-card:is(:hover,:focus-visible),.project-card:is(:hover,:focus-visible) .card-image{transform:none}}.card-content{padding:var(--space-md);flex-grow:1;display:flex;flex-direction:column;justify-content:flex-start}.card-category{font-size:var(--type-caption);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-accent);margin-bottom:var(--space-xs)}.card-title{font-size:var(--type-subheading);font-weight:var(--weight-semibold);color:var(--text-primary);margin-bottom:var(--space-xs)}.card-desc{font-size:var(--type-link);color:var(--text-secondary)}.span-8{grid-column:span 16}.span-4{grid-column:span 8}.span-6{grid-column:span 12}.span-12{grid-column:span 24}.span-wide{grid-column:span 15}.span-narrow{grid-column:span 9}@media(max-width:992px){.project-grid{grid-template-columns:minmax(0,1fr)}.span-8,.span-4,.span-6,.span-wide,.span-narrow{grid-column:1 / -1}}
