@layer base{[data-portfolio=spec-all-in-one]{--color-ink:#000;--color-ink-soft:#111;--color-ink-muted:#333;--color-body:#4a4a4a;--color-muted:#777;--color-muted-soft:#a0a0a0;--color-hairline:#e5e5e5;--color-hairline-strong:#d0d0d0;--color-canvas:#fff;--color-canvas-warm:#fafaf8;--color-surface:#f6f6f4;--color-error:#e5484d;--color-success:#30a46c;--font-display:"Helvetica Neue", Arial, "Pretendard", sans-serif;--font-text:"Pretendard", "Helvetica Neue", Arial, sans-serif;--font-mono:"JetBrains Mono", "SFMono-Regular", Menlo, monospace;--ease-reveal:cubic-bezier(.16, 1, .3, 1);--ease-micro:cubic-bezier(.22, 1, .36, 1);--spacing-edge:40px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:var(--color-canvas);color:var(--color-ink);font-family:var(--font-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;isolation:isolate;min-height:100svh;position:relative;overflow-x:hidden}@media (max-width:768px){[data-portfolio=spec-all-in-one]{--spacing-edge:28px}}@media (max-width:480px){[data-portfolio=spec-all-in-one]{--spacing-edge:20px}}[data-portfolio=spec-all-in-one] ::selection{background:var(--color-ink);color:var(--color-canvas)}@media (hover:hover) and (pointer:fine){body.has-dot-cursor [data-portfolio=spec-all-in-one] *{cursor:none!important}}}.demo-surface{--color-canvas:#14181f;--color-canvas-warm:#161b23;--color-surface:#1c2230;--color-ink:#f3f5f9;--color-ink-soft:#e6e9f0;--color-ink-muted:#c4c9d6;--color-body:#aeb4c2;--color-muted:#8c93a4;--color-muted-soft:#6b7282;--color-hairline:#2a3140;--color-hairline-strong:#3a4252;color:var(--color-ink)}.hero-night{--color-canvas:#08090c;--color-canvas-warm:#0b0d11;--color-surface:#14171e;--color-ink:#f6f8fc;--color-ink-soft:#e7eaf1;--color-ink-muted:#cdd2dd;--color-body:#aab0bd;--color-muted:#828998;--color-muted-soft:#5b6271;--color-hairline:#20242e;--color-hairline-strong:#2e3340;color:var(--color-ink)}.cta-night{--color-canvas:#0a0c11;--color-canvas-warm:#0d0f15;--color-surface:#161a22;--color-ink:#f6f8fc;--color-ink-soft:#e7eaf1;--color-ink-muted:#cdd2dd;--color-body:#aab0bd;--color-muted:#828998;--color-muted-soft:#5b6271;--color-hairline:#232833;--color-hairline-strong:#333a48;color:var(--color-ink)}.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}@property --cta-a{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes cta-spin{to{--cta-a:360deg}}.cta-spin{background:conic-gradient(from var(--cta-a), #ffffff29 0deg, #ffffff29 215deg, #b0c6ffd9 300deg, #fff 338deg, #ffffff29 360deg);animation:4.2s linear infinite cta-spin}@layer components{.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--color-muted);font-size:13px;font-weight:500}.t-display{font-family:var(--font-display);letter-spacing:-.03em;font-weight:500;line-height:.98}.t-section{font-family:var(--font-display);letter-spacing:-.025em;font-size:clamp(34px,5.4vw,64px);font-weight:500;line-height:1.02}.t-title-lg{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(24px,3.4vw,32px);font-weight:500;line-height:1.16}.lead{color:var(--color-body);letter-spacing:-.01em;font-size:clamp(17px,2vw,22px);line-height:1.56}}.thread-layer{z-index:0;pointer-events:none;width:100%;position:absolute;top:0;left:0;overflow:visible}.thread-path{transition:stroke-width .2s linear}.thread-path:not(.thread--settled){filter:url(#thread-wobble)}.thread-path.thread--reduced{animation:thread-fade .9s var(--ease-reveal) both}@keyframes thread-fade{0%{opacity:0}to{opacity:1}}.page{z-index:1;position:relative}.cursor-dot,.cursor-ring{pointer-events:none;z-index:9999;will-change:transform;mix-blend-mode:difference;border-radius:50%;display:none;position:fixed;top:0;left:0}body.has-dot-cursor .cursor-dot,body.has-dot-cursor .cursor-ring{display:block}.cursor-dot{background:#fff;width:6px;height:6px}.cursor-ring{width:56px;height:56px;transition:border-color .3s var(--ease-micro), opacity .3s var(--ease-micro);border:2px solid #ffffffb3}.cursor-ring.is-active{border-color:#fff}.line-mask{display:block;overflow:hidden}.line-mask>span{will-change:transform;display:block}.site-header{width:100%;height:64px;padding:0 var(--spacing-edge);z-index:100;transition:color .35s var(--ease-micro);justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0}.site-footer{z-index:1;background:var(--color-canvas);border-top:1px solid var(--color-hairline);position:relative}
