:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-background:#f4f4f2;--color-surface:#fcfcfb;--color-surface-muted:#ececea;--color-surface-strong:#dcdcd9;--color-border:#e2e2e0;--color-border-strong:#c2c2be;--color-text-primary:#111;--color-text-secondary:#555;--color-text-tertiary:#888;--color-accent:#3f6f4f;--color-accent-soft:#e4ece6;--color-accent-faint:color-mix(in srgb, var(--color-accent) 22%, transparent);--color-grid-line:#11111109;--color-header-backdrop:#f4f4f2d1;--color-header-fade-start:#f4f4f2ad;--shadow-header:0 1px 18px #11111109;--shadow-action:0 10px 24px #1111110a;--shadow-log-card:5px 5px 0 #11111112;--shadow-log-card-small:4px 4px 0 #1111110f;--shadow-log-card-tiny:3px 3px 0 #1111110d;--shadow-log-hover:0 14px 26px #1111111c, 4px 4px 0 color-mix(in srgb, var(--color-accent) 14%, transparent);--shadow-browser:0 32px 56px -36px #1111118c;--font-sans:"Interlude Variable", "Interlude", Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", system-ui, sans-serif;--font-mono:"Interlude Variable", "Interlude", Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", SFMono-Regular, Consolas, monospace;--text-display:56px;--text-display-mobile:34px;--text-headline:24px;--text-body-lg:18px;--text-body:16px;--text-small:14px;--text-mono:12px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--container:1120px;--reading-width:760px;--radius-small:10px;--radius-base:16px;--radius-media:22px;--radius-media-inner:18px;--media-frame-inset:12px;--radius-pill:999px;--motion-fast:.14s;--motion-base:.22s;--motion-slow:.52s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-spring:cubic-bezier(.22, 1, .36, 1)}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-background:#10110f;--color-surface:#181a17;--color-surface-muted:#20231f;--color-surface-strong:#2b302a;--color-border:#2c302b;--color-border-strong:#454c43;--color-text-primary:#f3f4ef;--color-text-secondary:#b8beb3;--color-text-tertiary:#7f887d;--color-accent:#8fcca5;--color-accent-soft:#1f3227;--color-accent-faint:color-mix(in srgb, var(--color-accent) 28%, transparent);--color-grid-line:#f3f4ef0e;--color-header-backdrop:#10110fd1;--color-header-fade-start:#10110fbd;--shadow-header:0 1px 20px #00000047;--shadow-action:0 12px 26px #00000038;--shadow-log-card:5px 5px 0 #00000047;--shadow-log-card-small:4px 4px 0 #0000003d;--shadow-log-card-tiny:3px 3px 0 #00000038;--shadow-log-hover:0 16px 30px #00000057, 4px 4px 0 color-mix(in srgb, var(--color-accent) 22%, transparent);--shadow-browser:0 32px 56px -36px #000000c7}*{box-sizing:border-box;min-width:0}html{background:var(--color-background);scrollbar-width:none;scroll-behavior:smooth}html::-webkit-scrollbar{width:0;height:0}body::-webkit-scrollbar{width:0;height:0}body{background:var(--color-background);min-height:100dvh;color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--text-body);letter-spacing:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;line-height:1.6}::selection{background:var(--color-accent-soft);color:var(--color-text-primary)}button,a{font:inherit}button{border:0}a{color:inherit;text-decoration:none}svg{width:var(--space-4);height:var(--space-4);flex:none}#root{min-height:100dvh}.site-shell{flex-direction:column;min-height:100dvh;display:flex;overflow-x:clip}.site-header{z-index:30;transition:background-color var(--motion-base) var(--ease-standard), box-shadow var(--motion-base) var(--ease-standard), transform .26s var(--ease-standard), backdrop-filter var(--motion-base) var(--ease-standard), -webkit-backdrop-filter var(--motion-base) var(--ease-standard);will-change:background-color, backdrop-filter;background:0 0;position:sticky;top:0;transform:translateZ(0)}.site-header.is-hidden{transform:translateY(-100%)}.site-header.is-scrolled{background-color:var(--color-header-backdrop);-webkit-backdrop-filter:blur(14px)saturate(.9);box-shadow:var(--shadow-header)}.site-header:after{content:"";height:var(--space-6);pointer-events:none;background:linear-gradient(to bottom, var(--color-header-fade-start), transparent);opacity:0;transition:opacity var(--motion-base) var(--ease-standard);position:absolute;top:100%;left:0;right:0}.site-header.is-scrolled:after{opacity:1}.site-header-inner{align-items:center;gap:var(--space-8);width:min(100%, var(--container));padding:var(--space-5) var(--space-6);grid-template-columns:minmax(0,1fr) auto;margin:0 auto;display:grid;position:relative}.site-identity,.desktop-nav,.site-footer,.mono-label,.text-link,.meta-grid dt,.log-list-item time{font-family:var(--font-mono);letter-spacing:0}.site-identity{color:var(--color-text-secondary);font-size:15px;line-height:1;display:flex}.identity-name{width:fit-content;color:var(--color-text-primary);font-size:14px;font-weight:600}.site-identity .back-link{font-size:13px;font-weight:500;line-height:1}.site-identity .back-link svg{width:17px;height:17px;margin-block:-2px}.site-identity .back-link{gap:4px}.desktop-nav{align-items:center;gap:var(--space-6);color:var(--color-text-secondary);font-size:15px;font-weight:500;line-height:1;display:flex}.nav-link{color:var(--color-text-secondary);transition:color var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-spring);align-items:center;padding:0;display:inline-flex;position:relative}.nav-link:after{content:"";background:var(--color-accent);border-radius:var(--radius-pill);opacity:0;transform-origin:50%;height:1.5px;transition:opacity var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-spring);position:absolute;bottom:-5px;left:0;right:0;transform:scaleX(.18)translateY(3px)}.nav-link span{color:var(--color-text-tertiary)}.nav-link:hover,.nav-link:focus-visible{color:var(--color-text-primary);transform:translateY(-1px)}.nav-link.is-active{color:var(--color-accent);font-weight:600}.nav-link:hover:after,.nav-link:focus-visible:after,.nav-link.is-active:after{opacity:1;transform:scaleX(1)translateY(0)}.nav-log-trigger:after{content:none}.nav-log-menu{display:inline-flex;position:relative}.nav-log-trigger{font:inherit;cursor:pointer;background:0 0;border:0;gap:2px}.nav-log-caret{width:9px;height:9px;color:var(--color-text-tertiary);transition:transform var(--motion-base) var(--ease-standard);transform:translateY(1px)}.nav-log-trigger.is-open .nav-log-caret{transform:translateY(1px)rotate(180deg)}.nav-log-dropdown{z-index:40;padding-top:10px;position:absolute;top:100%;right:0}.nav-log-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-small);width:max-content;box-shadow:var(--shadow-action);animation:nav-log-in .16s var(--ease-spring) backwards;gap:1px;padding:6px 4px;display:grid;position:relative}.nav-log-option{width:fit-content;color:var(--color-text-secondary);white-space:nowrap;transition:color var(--motion-base) var(--ease-standard);padding:6px 10px;font-size:14px;line-height:1.2;text-decoration:none;display:inline-flex;position:relative}.nav-log-option:after{content:"";background:var(--color-accent);border-radius:var(--radius-pill);opacity:0;transform-origin:0;height:1.5px;transition:opacity var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-spring);position:absolute;bottom:2px;left:10px;right:10px;transform:scaleX(.2)}.nav-log-option:hover,.nav-log-option:focus-visible{color:var(--color-text-primary)}.nav-log-option:hover:after,.nav-log-option:focus-visible:after{opacity:.45;transform:scaleX(1)}.nav-log-option.is-active{color:var(--color-accent);font-weight:600}.nav-log-option.is-active:after{opacity:1;transform:scaleX(1)}@keyframes nav-log-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}main{flex:1;min-height:0}.route-transition{animation:route-reveal var(--motion-slow) var(--ease-spring) both}@keyframes route-reveal{0%{opacity:0;filter:blur(8px);transform:translateY(14px)}to{opacity:1;filter:none;transform:translateY(0)}}.page{gap:var(--space-20);width:min(100%, var(--container));padding:var(--space-20) var(--space-6);margin:0 auto;display:grid}.page-home{width:min(100%, var(--container));padding-top:var(--space-8);align-content:center;gap:0}.page-readable{width:min(100%, var(--container))}.page-detail{--page-gap:var(--space-10);gap:var(--page-gap);width:min(100%, var(--container));padding-top:var(--space-10)}.detail-reveal{opacity:0;filter:blur(5px);transition:opacity .62s var(--ease-standard), filter .62s var(--ease-standard), transform .76s var(--ease-spring);transition-delay:var(--reveal-delay,0s);will-change:opacity, filter, transform;transform:translateY(18px)}.detail-reveal-media{opacity:.34;filter:blur(6px)saturate(.84);transform:translateY(24px)scale(.99)}.detail-reveal.is-visible{opacity:1;filter:blur();will-change:auto;transform:translateY(0)}.page-work{gap:var(--space-8);padding-top:var(--space-12)}.home-dof{width:100%;animation:home-rise .78s var(--ease-spring) both;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.home-dof *{-webkit-user-select:none!important;user-select:none!important}.home-dof ::selection{color:#0000!important;text-shadow:none!important;background:0 0!important}.home-dof ::-moz-selection{color:#0000!important;text-shadow:none!important;background:0 0!important}.home-dof-story{color:var(--color-text-primary);letter-spacing:-.02em;text-align:left;word-break:keep-all;overflow-wrap:break-word;margin:0;font-size:clamp(22px,2.4vw + .8vh,34px);font-weight:500;line-height:1.55}.home-dof-blur{color:#0000;text-shadow:0 0 .42em color-mix(in srgb, var(--color-text-tertiary) 42%, transparent);pointer-events:none;font-weight:400}.home-dof-focus{color:var(--color-text-primary);font-weight:750}.home-dof-mail{white-space:nowrap}.home-dof-link{color:var(--color-accent);font-weight:750;line-height:inherit;white-space:nowrap;border:1.5px solid var(--color-accent);transition:color var(--motion-base) var(--ease-standard), border-color var(--motion-base) var(--ease-standard), background-color var(--motion-base) var(--ease-standard);border-radius:2px;padding:0 .14em;text-decoration:none;display:inline}.home-dof-link:after{content:none}.home-dof-link:hover,.home-dof-link:focus-visible{color:var(--color-text-primary);border-color:var(--color-text-primary);background:var(--color-accent-soft);transform:none}@keyframes home-rise{0%{opacity:0;transform:translateY(1.35rem)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.home-dof{animation:none}}.mono-label{color:var(--color-text-secondary);font-size:var(--text-mono);margin:0;font-weight:500;line-height:1}.page-intro h1{color:var(--color-text-primary);font-size:var(--text-display);margin:0;font-weight:700;line-height:1.08}.page-intro p{max-width:var(--reading-width);color:var(--color-text-secondary);font-size:var(--text-body-lg);overflow-wrap:break-word;word-break:keep-all;margin:0;line-height:1.68}.case-study-section h2{color:var(--color-text-primary);font-size:var(--text-headline);margin:0;font-weight:600;line-height:1.35}.log-list{border-top:1px solid var(--color-border)}.log-list-item h2{color:var(--color-text-primary);font-size:var(--text-body-lg);margin:0;font-weight:600;line-height:1.35}.log-list-item p,.case-study-section p,.case-study-section li{color:var(--color-text-secondary);font-size:var(--text-body);margin:0;line-height:1.62}.meta-grid{gap:var(--space-5);padding:var(--space-4) 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;display:grid}.meta-grid div{gap:var(--space-2);background:0 0;border:0;border-radius:0;min-height:0;padding:0;display:grid}.meta-grid dt{color:var(--color-text-tertiary);font-size:var(--text-mono);text-transform:uppercase;line-height:1}.meta-grid dd{color:var(--color-text-secondary);font-size:var(--text-small);overflow-wrap:break-word;word-break:keep-all;margin:0;line-height:1.55}.log-list-item time{color:var(--color-text-tertiary);font-size:var(--text-mono)}.log-list-item:hover{background:var(--color-accent-soft)}.page-intro{gap:var(--space-4);width:100%;max-width:none;display:grid}.page-intro-heading{align-items:start;gap:var(--space-5);grid-template-columns:minmax(0,1fr) auto;display:grid}.page-intro-heading h1{overflow-wrap:break-word;min-width:0}.page-intro-actions{padding-top:var(--space-2);justify-self:end}.detail-actions{justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}.detail-action-link{justify-content:center;align-items:center;gap:var(--space-2);min-height:38px;padding:0 var(--space-3);color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--text-mono);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-base);box-shadow:var(--shadow-action);transition:background-color var(--motion-base) var(--ease-standard), border-color var(--motion-base) var(--ease-standard), color var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-spring);font-weight:600;line-height:1;display:inline-flex}.detail-action-link svg{width:15px;height:15px}.detail-action-link:hover,.detail-action-link:focus-visible{color:var(--color-accent);background:var(--color-accent-soft);border-color:var(--color-accent);transform:translateY(-2px)}.detail-action-link.is-disabled{color:var(--color-text-tertiary);background:var(--color-surface-muted);border-color:var(--color-border);box-shadow:none;cursor:not-allowed;opacity:.68}.detail-action-link.is-disabled:hover,.detail-action-link.is-disabled:focus-visible{color:var(--color-text-tertiary);background:var(--color-surface-muted);border-color:var(--color-border);transform:none}.case-study-section strong,.page-intro strong{color:var(--color-text-primary);font-weight:750}.case-study-section code,.page-intro code{color:var(--color-text-primary);font-family:var(--font-mono);background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:6px;padding:.08em .35em;font-size:.92em}.text-link,.back-link{align-items:center;gap:var(--space-2);color:var(--color-text-primary);font-size:var(--text-mono);transition:color var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-spring);font-weight:500;display:inline-flex;position:relative}.text-link:after,.back-link:after{content:"";background:var(--color-accent);opacity:0;transform-origin:0;height:1px;transition:opacity var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-spring);position:absolute;bottom:-4px;left:0;right:0;transform:scaleX(0)translateY(4px)}.text-link svg{transition:transform var(--motion-base) var(--ease-standard)}.text-link:hover,.text-link:focus-visible,.back-link:hover,.back-link:focus-visible{color:var(--color-accent);transform:translateY(-1px)}.text-link:hover:after,.text-link:focus-visible:after,.back-link:hover:after,.back-link:focus-visible:after{opacity:1;transform:scaleX(1)translateY(0)}.text-link:hover svg,.text-link:focus-visible svg{transform:translateX(var(--space-1))}@keyframes section-reveal{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.skip-link{left:var(--space-3);top:var(--space-3);z-index:100;color:var(--color-surface);background:var(--color-text-primary);border-radius:var(--radius-small);padding:8px 12px;position:absolute;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}#main-content:focus{outline:none}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.case-study-section{gap:var(--space-4);padding-top:var(--space-8);border-top:1px solid var(--color-border);display:grid}.case-study-section:first-child{border-top:0}.case-study-section ul{gap:var(--space-3);padding-left:var(--space-5);margin:0;display:grid}.detail-links{gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.contact-link{isolation:isolate;justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--space-10);padding:var(--space-2) var(--space-4);color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--text-mono);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);transition:background-color var(--motion-base) var(--ease-standard), border-color var(--motion-base) var(--ease-standard), color var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-spring);display:inline-flex;position:relative}.contact-link:hover,.contact-link:focus-visible{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent);transform:translateY(-2px)}.site-footer-inner{align-items:center;gap:var(--space-4);width:min(100%, var(--container));padding:var(--space-8) var(--space-6) var(--space-6);color:var(--color-text-secondary);font-size:var(--text-mono);grid-template-columns:minmax(0,1fr) auto;margin:0 auto;display:grid}.site-footer p{white-space:nowrap;margin:0}.site-footer nav{justify-content:flex-end;gap:var(--space-4);flex-wrap:wrap;display:flex}.footer-link{color:var(--color-text-secondary);transition:color var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-spring);display:inline-flex;position:relative}.footer-link:after{content:"";background:var(--color-accent);opacity:0;transform-origin:0;height:1px;transition:opacity var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-spring);position:absolute;bottom:-5px;left:0;right:0;transform:scaleX(0)translateY(3px)}.footer-link:hover,.footer-link:focus-visible{color:var(--color-accent);transform:translateY(-1px)}.footer-link:hover:after,.footer-link:focus-visible:after{opacity:1;transform:scaleX(1)translateY(0)}:focus-visible{outline:2px solid var(--color-text-primary);outline-offset:var(--space-1)}@media (width<=1080px){.meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=761px) and (height>=720px){.site-shell-home{min-height:100dvh}.site-shell-home main,.site-shell-home .route-transition{min-height:0;display:grid}.site-shell-home .page-home{min-height:calc(100dvh - 128px);padding-block:clamp(var(--space-5), 4dvh, var(--space-10));align-content:center}.site-shell-home .site-footer-inner{padding-block:clamp(var(--space-4), 2dvh, var(--space-6))}}@media (width>=769px) and (height>=720px){.site-shell-work{height:100dvh;overflow-y:clip}.site-shell-work main,.site-shell-work .route-transition{min-height:0;display:grid}.site-shell-work .page-work{height:100%;min-height:0;padding-block:clamp(var(--space-5), 3dvh, var(--space-10)) clamp(var(--space-2), 1.5dvh, var(--space-5))}.site-shell-work .work-map-layout{height:100%;min-height:0}.site-shell-work .work-map{height:100%}.site-shell-work .site-footer-inner{padding-block:clamp(var(--space-4), 2dvh, var(--space-6))}.site-shell-log{height:100dvh;overflow-y:clip}.site-shell-log main,.site-shell-log .route-transition{min-height:0;display:grid}.site-shell-log .page-log{height:100%;min-height:0}.site-shell-log .site-footer-inner{padding-block:clamp(var(--space-4), 2dvh, var(--space-6))}}@media (width<=1024px){.site-header-inner{align-items:center;gap:var(--space-4);padding:var(--space-5);grid-template-columns:minmax(0,1fr) auto}.desktop-nav{gap:var(--space-4);display:flex}.experiment-stage{grid-template-columns:1fr}.experiment-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.site-header-inner{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);grid-template-columns:minmax(0,1fr) auto}.desktop-nav{gap:var(--space-3);font-size:14px;display:flex}.page{gap:var(--space-12);padding:var(--space-12) var(--space-5)}.page-home{padding-top:var(--space-5);align-content:start;min-height:calc(100dvh - 148px)}.home-dof-story{text-align:justify;text-justify:inter-word;-webkit-hyphens:none;hyphens:none;font-size:clamp(20px,5.2vw,26px);line-height:1.6}.home-dof-blur{text-shadow:0 0 .36em color-mix(in srgb, var(--color-text-tertiary) 38%, transparent)}.home-dof-link[href^=mailto\:]{padding:0 .12em;font-size:.7em}.page-intro h1{font-size:var(--text-display-mobile)}.page-intro-heading{align-items:start;gap:var(--space-3);grid-template-columns:minmax(0,1fr) auto;display:grid}.page-intro-actions{justify-self:end;padding-top:0}.detail-actions{justify-content:flex-start;align-items:flex-end;gap:var(--space-2);flex-flow:row}.detail-action-link{min-height:34px;padding:0 var(--space-3)}.case-study-section h2{font-size:var(--text-headline)}.page-intro p{font-size:var(--text-body)}.site-footer-inner{align-items:center;gap:var(--space-3);padding-top:var(--space-6);grid-template-columns:minmax(0,1fr) auto}.site-footer nav{justify-content:flex-end;gap:var(--space-3);flex-wrap:nowrap}.meta-grid{gap:var(--space-4) var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr))}.log-list-item{gap:var(--space-3);padding:var(--space-5) 0;grid-template-columns:1fr}.case-gallery{grid-template-columns:1fr}.case-gallery-media{height:auto}.case-gallery img{object-fit:contain;height:auto}.experiment-lab{gap:var(--space-4);padding:var(--space-4)}.experiment-lab-header{flex-direction:column;align-items:start}.experiment-actions{justify-content:flex-start;align-items:center;gap:var(--space-3);flex-wrap:nowrap;width:100%}.experiment-viewport-tabs{gap:var(--space-2);flex:none}.experiment-command-actions{gap:var(--space-2);flex:none;margin-left:auto}.experiment-icon-button{flex:none;width:40px;height:40px}.experiment-list{grid-template-columns:1fr}.experiment-browser{padding:var(--space-2)}.experiment-browser-viewport{min-height:min(500px,60dvh)}.experiment-browser-viewport iframe{pointer-events:none}.contact-link{width:100%}.page-log{gap:var(--space-8);height:auto;min-height:0;padding:var(--space-6) var(--space-5) var(--space-12);overflow:visible}.page-log .log-list{gap:var(--space-5);height:auto;min-height:0;margin-top:0;display:grid}.page-log .log-list-item,.page-log .log-list-item:nth-child(2n),.page-log .log-list-item:nth-child(3n),.page-log .log-list-item:nth-child(4n){--rot:0deg;--scrap-w:100%;grid-template-columns:1fr;width:100%;min-height:0;position:relative;top:auto;left:auto;transform:none}.page-log .log-list-item:nth-child(5){width:100%;position:relative;top:auto;left:auto;transform:none}.page-log .log-list-item:hover,.page-log .log-list-item:focus-within{transform:none}.page-log .log-list-item:hover .log-scrap-link,.page-log .log-list-item:focus-within .log-scrap-link,.log-scrap-link{width:100%;transform:none}.log-scrap-title h2,.log-scrap-strip .log-scrap-title,.log-scrap-excerpt h2,.log-scrap-feature h2{font-size:clamp(24px,8vw,36px);line-height:1.18}.log-scrap-excerpt p,.log-scrap-feature p,.log-scrap-body p{font-size:16px;line-height:1.62}.log-scrap-feature img{height:220px}.log-scrap-image .log-scrap-link,.log-scrap-caption .log-scrap-link{aspect-ratio:4/3}}@media (width<=360px){.site-header-inner{gap:var(--space-3);padding-right:var(--space-4);padding-left:var(--space-4)}.desktop-nav{gap:10px;font-size:13px}}@media (width<=768px){.page.page-log-post{gap:var(--page-gap)}.site-shell-work{min-height:100dvh;overflow:visible}.site-shell-work main,.site-shell-work .route-transition{min-height:0;display:block}.site-shell-work .page-work{min-height:auto;padding:0 var(--space-5) var(--space-8);overflow:visible}.work-mobile-editorial{gap:var(--space-5);display:grid}.work-mobile-header{text-align:left;justify-items:start;padding:44px 0 0;display:grid}.work-mobile-feature{isolation:isolate;gap:var(--space-3);padding:var(--space-5) 0;color:var(--color-text-primary);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);animation:section-reveal .56s var(--ease-spring) backwards;transition:color var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-spring);margin-top:26px;animation-delay:.11s;display:grid;position:relative}.work-mobile-feature:before{content:"";inset:0 calc(var(--space-2) * -1);z-index:-1;background:linear-gradient(105deg, var(--color-accent-soft), transparent 72%);border-left:2px solid var(--color-accent);opacity:0;transform-origin:0;transition:opacity var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-spring);position:absolute;transform:scaleX(.94)translate(-8px)}.work-mobile-feature:hover,.work-mobile-feature:focus-visible{transform:translate(4px)}.work-mobile-feature:hover>strong,.work-mobile-feature:focus-visible>strong{color:var(--color-accent)}.work-mobile-feature:hover:before,.work-mobile-feature:focus-visible:before{opacity:1;transform:scaleX(1)translate(0)}.work-mobile-feature-kicker{justify-content:space-between;gap:var(--space-3);color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:12px;line-height:1.3;display:flex}.work-mobile-feature>strong{max-width:12ch;color:var(--color-text-primary);font-size:clamp(27px,7.4vw,36px);font-weight:700;line-height:1.08}.work-mobile-feature-description{color:var(--color-text-secondary);word-break:keep-all;font-size:15px;line-height:1.56}.work-mobile-feature-action{align-items:center;gap:var(--space-2);width:fit-content;color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--text-mono);line-height:1;display:inline-flex}.work-mobile-feature-action svg{width:15px;height:15px;transition:transform var(--motion-base) var(--ease-spring)}.work-mobile-feature:hover .work-mobile-feature-action,.work-mobile-feature:focus-visible .work-mobile-feature-action{color:var(--color-accent)}.work-mobile-feature:hover .work-mobile-feature-action svg,.work-mobile-feature:focus-visible .work-mobile-feature-action svg{transform:translateX(var(--space-1))}.work-mobile-editorial-list{border-top:1px solid var(--color-border);gap:0;margin:0;padding:0;list-style:none;display:grid}.work-mobile-editorial-link{isolation:isolate;align-items:center;gap:var(--space-4);min-height:78px;color:var(--color-text-primary);border-bottom:1px solid var(--color-border);animation:section-reveal .52s var(--ease-spring) backwards;animation-delay:calc(.18s + (var(--mobile-work-index,0) * 60ms));transition:color var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-spring);grid-template-columns:minmax(0,1fr) auto;padding:0;display:grid;position:relative}.work-mobile-editorial-link:before{content:"";inset:0 calc(var(--space-2) * -1);z-index:-1;background:linear-gradient(90deg, var(--color-accent-soft), transparent 70%);border-left:2px solid var(--color-accent);opacity:0;transform-origin:0;transition:opacity var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-spring);position:absolute;transform:scaleX(.94)translate(-8px)}.work-mobile-editorial-list li:first-child{--mobile-work-index:0}.work-mobile-editorial-list li:nth-child(2){--mobile-work-index:1}.work-mobile-editorial-list li:nth-child(3){--mobile-work-index:2}.work-mobile-editorial-list li:nth-child(4){--mobile-work-index:3}.work-mobile-editorial-list li:nth-child(5){--mobile-work-index:4}.work-mobile-editorial-link:hover,.work-mobile-editorial-link:focus-visible{transform:translate(4px)}.work-mobile-editorial-link:hover:before,.work-mobile-editorial-link:focus-visible:before{opacity:1;transform:scaleX(1)translate(0)}.work-mobile-editorial-link:hover .work-mobile-editorial-copy strong,.work-mobile-editorial-link:focus-visible .work-mobile-editorial-copy strong{color:var(--color-accent)}.work-mobile-editorial-copy{gap:var(--space-1);align-content:center;min-width:0;display:grid}.work-mobile-editorial-copy strong{color:var(--color-text-primary);font-size:20px;font-weight:650;line-height:1.2}.work-mobile-editorial-copy span,.work-mobile-editorial-year{color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:12px;line-height:1.35}.work-mobile-editorial-year{white-space:nowrap;align-self:center}.site-shell-log{min-height:100dvh;overflow:visible}.site-shell-log main,.site-shell-log .route-transition{min-height:0;display:block}.site-shell-log .page-log-mobile{gap:var(--space-4);height:auto;min-height:auto;padding:0 var(--space-5);grid-template-rows:auto auto auto;overflow:visible}.log-mobile-header{align-items:start;gap:var(--space-2);text-align:left;grid-template-columns:1fr;padding:44px 0 0;display:grid}.log-mobile-header h1,.work-mobile-header h1{color:var(--color-text-primary);margin:0;font-size:clamp(30px,9vw,40px);font-weight:700;line-height:1.08}.log-feed{border-top:1px solid var(--color-border);grid-template-rows:none;grid-auto-rows:minmax(54px,auto);gap:0;width:100%;min-height:0;margin-top:72px;display:grid}.log-card{min-height:0;animation:log-card-in .42s var(--ease-spring) both;animation-delay:calc(var(--mobile-log-index,0) * 36ms);margin:0}.log-feed .log-card:first-child{--mobile-log-index:0}.log-feed .log-card:nth-child(2){--mobile-log-index:1}.log-feed .log-card:nth-child(3){--mobile-log-index:2}.log-feed .log-card:nth-child(4){--mobile-log-index:3}.log-feed .log-card:nth-child(5){--mobile-log-index:4}.log-feed .log-card:nth-child(6){--mobile-log-index:5}.log-feed .log-card:nth-child(7){--mobile-log-index:6}.log-feed .log-card:nth-child(8){--mobile-log-index:7}.log-feed .log-card:nth-child(9){--mobile-log-index:8}.log-feed .log-card:nth-child(10){--mobile-log-index:9}.log-card-link{isolation:isolate;align-items:center;gap:var(--space-3);height:auto;min-height:54px;color:var(--color-text-primary);border-bottom:1px solid var(--color-border);transition:color var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-spring);grid-template-columns:34px minmax(0,1fr) auto;padding:0;display:grid;position:relative}.log-card-link:before{content:"";inset:0 calc(var(--space-2) * -1);z-index:-1;background:linear-gradient(90deg, var(--color-accent-soft), transparent 78%);border-left:2px solid var(--color-accent);opacity:0;transform-origin:0;transition:opacity var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-spring);position:absolute;transform:scaleX(.94)translate(-8px)}.log-card-link:hover,.log-card-link:focus-visible{transform:translate(4px)}.log-card-link:hover:before,.log-card-link:focus-visible:before{opacity:1;transform:scaleX(1)translate(0)}.log-card-number{color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:12px;line-height:1}.log-card-date{color:var(--color-text-tertiary);font-family:var(--font-mono);white-space:nowrap;flex:none;font-size:12px;line-height:1}.log-card-title{min-width:0;color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;transition:color var(--motion-base) var(--ease-standard);font-size:15px;font-weight:600;line-height:1.25;overflow:hidden}.log-card-link:hover .log-card-title,.log-card-link:focus-visible .log-card-title{color:var(--color-accent)}.log-pager{align-items:center;gap:var(--space-3);color:var(--color-text-tertiary);font-family:var(--font-mono);grid-template-columns:36px minmax(0,1fr) 36px;font-size:12px;display:grid}.log-pager span{justify-self:center}.log-pager button{width:36px;height:36px;color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);transition:background-color var(--motion-base) var(--ease-standard), border-color var(--motion-base) var(--ease-standard), color var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-spring);place-items:center;display:grid}.log-pager button:not(:disabled):hover,.log-pager button:not(:disabled):focus-visible{color:var(--color-accent);background:var(--color-accent-soft);border-color:var(--color-accent);transform:translateY(-2px)}.log-pager button:disabled{color:var(--color-text-tertiary);cursor:not-allowed;opacity:.45}.log-pager svg{width:15px;height:15px}@keyframes log-card-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.site-shell-home{min-height:100dvh}.site-shell-home main,.site-shell-home .route-transition{flex-direction:column;flex:1;min-height:0;display:flex}.site-shell-home .page-home{flex:1;align-content:center;min-height:0;display:grid}.page{gap:var(--space-10);padding:var(--space-8) var(--space-5) var(--space-12)}.page-detail{padding-top:var(--space-8)}.case-study-body{gap:var(--space-8)}.case-study-section{padding-top:var(--space-6)}.case-study-section h2{font-size:var(--text-body-lg)}.case-study-section ul{gap:var(--space-2);padding-left:var(--space-5)}.case-gallery{gap:var(--space-3);scroll-snap-type:none;grid-template-columns:1fr;grid-auto-columns:auto;grid-auto-flow:row;margin-inline:0;padding-inline:0;display:grid;overflow:visible}.case-gallery::-webkit-scrollbar{display:none}.case-gallery figure{scroll-snap-align:none}.case-gallery-media{height:auto}.case-gallery img{object-fit:contain;height:auto}}@media (width<=768px) and (height<=760px){.site-shell-log,.site-shell-work{height:auto;min-height:100dvh;overflow:visible}.site-shell-log main,.site-shell-log .route-transition,.site-shell-work main,.site-shell-work .route-transition{display:block}.page-log-mobile{grid-template-rows:auto auto auto;height:auto;min-height:100dvh;overflow:visible}.page-log-mobile .log-feed{grid-template-rows:repeat(10,54px)}.page-log-mobile .log-card-link{min-height:54px}.page-log-mobile .log-pager{padding-top:var(--space-4)}.log-mobile-header{gap:var(--space-3);grid-template-columns:1fr}.site-shell-work .page-work{height:auto;min-height:100dvh;padding-bottom:var(--space-5);overflow:visible}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}.route-transition{animation:none}.detail-reveal{opacity:1!important;filter:none!important;transition:none!important;transform:none!important}.text-link:hover svg,.text-link:focus-visible svg{transform:none}}.log-older{width:min(100%, calc(var(--container) - (var(--space-6) * 2)));border-top:1px solid var(--color-border-strong);margin:0 auto}.log-older summary{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) 0;color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--text-mono);cursor:pointer;transition:color var(--motion-base) var(--ease-standard);line-height:1.3;list-style:none;display:flex}.log-older summary::-webkit-details-marker{display:none}.log-older summary:hover,.log-older summary:focus-visible{color:var(--color-accent)}.log-older-caret{width:14px;height:14px;color:var(--color-text-tertiary);transition:transform var(--motion-base) var(--ease-standard)}.log-older[open] .log-older-caret{transform:rotate(180deg)}.log-older ol{padding:0 0 var(--space-5);margin:0;list-style:none;display:grid}.log-older-link{gap:var(--space-4);padding:var(--space-3) 0;color:var(--color-text-secondary);border-top:1px solid var(--color-border);transition:color var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-spring);grid-template-columns:104px minmax(0,1fr);align-items:baseline;display:grid}.log-older-link time{color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:var(--text-mono)}.log-older-link:hover,.log-older-link:focus-visible{color:var(--color-accent);transform:translateX(var(--space-1))}.page-not-found{align-content:center;gap:var(--space-6);min-height:min(620px,100dvh - 160px)}.not-found-copy{gap:var(--space-4);max-width:var(--reading-width);display:grid}.not-found-copy h1,.not-found-copy p{margin:0}.not-found-copy h1{font-size:var(--text-display);line-height:1.08}.not-found-copy p{color:var(--color-text-secondary)}.not-found-actions{gap:var(--space-5);flex-wrap:wrap;display:flex}@media (width>=769px){.site-shell-log{height:auto;min-height:100dvh;overflow-y:visible}.site-shell-log main,.site-shell-log .route-transition{display:block}.site-shell-log .page-log{gap:var(--space-5);height:auto;min-height:calc(100dvh - 150px);padding-top:var(--space-3);padding-bottom:var(--space-12);grid-template-rows:minmax(560px,calc(100dvh - 190px)) auto;overflow:visible}.site-shell-log .page-log .log-list{height:100%;overflow:visible}}@media (width<=768px){.not-found-copy h1{font-size:var(--text-display-mobile)}}@media (width<=420px){.log-older-link{gap:var(--space-1);grid-template-columns:1fr}}
