:root[data-terminal-concept]{--paper:#f1f1ef;--ink:#2d2e2b;--quiet:#63675e;--copy:#5c6058;--accent:#007aff;--line:#e2e3dc;--sheet:#f7f7f4;--sheet-clear:#f7f7f400;--veil:#f7f7f4b3;--terminal-font:'SFMono-Regular',Consolas,'Liberation Mono',monospace;color-scheme:light}
[data-terminal-concept] body{background-color:var(--paper);background-image:none}
[data-terminal-concept]{-webkit-tap-highlight-color:transparent}
[data-terminal-concept] :is(:focus,:focus-visible){outline:none!important;box-shadow:none!important}
[data-terminal-concept] :is(a,button,summary):focus-visible{color:var(--accent);text-decoration:underline;text-decoration-color:currentColor;text-decoration-thickness:1px;text-underline-offset:5px}
[data-terminal-concept] .view-site{--view-top:0px;--view-bottom:96px;--stage-height:100svh}
[data-terminal-concept] .view-site::before,[data-terminal-concept] .view-site::after{display:none}
[data-terminal-concept] #main.page-stage{inset:0}
[data-terminal-concept] .opening.page-view{display:grid;place-items:center;grid-template-rows:1fr;padding:76px 48px 104px}
.terminal-scene{width:max-content;max-width:100%;margin:0 auto;transform:translateY(-8px);font-family:var(--terminal-font);font-variant-ligatures:none;-webkit-font-smoothing:antialiased}
.terminal-copy{position:relative;cursor:default}
.terminal-eyebrow{position:relative;color:var(--quiet);font-size:11px;line-height:1.8;letter-spacing:0;margin:0 0 18px}
.terminal-eyebrow::before{content:'›';position:absolute;right:calc(100% + 17px);top:0;display:flex;align-items:center;height:1lh;color:var(--accent);font-family:var(--terminal-font);font-size:inherit;line-height:inherit}
.terminal-heading{color:var(--ink);font-family:var(--terminal-font);font-size:clamp(22px,2.1vw,29px);font-weight:400;line-height:1.65;letter-spacing:-1.15px}
.terminal-body{margin-top:24px;font-size:12px;line-height:1.9;letter-spacing:-.15px;color:var(--copy)}
.type-line{display:grid;position:relative;min-height:1lh;grid-template-columns:minmax(0,1fr)}
.type-ghost,.type-content{grid-area:1/1;white-space:pre-wrap;overflow-wrap:normal}
.type-ghost{visibility:hidden;pointer-events:none}
.type-ghost::after{content:'';display:inline-block;inline-size:.55em;margin-left:2px}
.type-content{position:absolute;inset:0;display:block;min-width:0}
.type-content::after{content:'';display:inline-block;vertical-align:-.15em;inline-size:.55em;block-size:1.02em;margin-left:2px;background:var(--accent);opacity:0}
.type-line.is-typing .type-content::after{opacity:1}
.terminal-finished .type-line:last-child.is-complete .type-content::after{opacity:.7;animation:terminal-cursor 1.1s steps(1,end) infinite}
.has-terminal-caret .type-content::after{opacity:0!important;animation:none!important}
.terminal-caret{position:absolute;left:0;top:0;z-index:1;display:block;background:var(--accent);pointer-events:none;opacity:1}
.terminal-caret.is-travelling{transition:transform .26s cubic-bezier(.4,0,.2,1),width .26s cubic-bezier(.4,0,.2,1),height .26s cubic-bezier(.4,0,.2,1)}
.terminal-finished .terminal-caret{opacity:.7;animation:terminal-cursor 1.1s steps(1,end) infinite}
.terminal-pending .terminal-caret{visibility:hidden}
.terminal-pending .type-output{visibility:hidden}
.terminal-pending .terminal-eyebrow::before{opacity:0}
.terminal-finished .terminal-copy{cursor:text}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.buddy-navigation{position:fixed;right:max(32px,env(safe-area-inset-right,0px));bottom:max(24px,env(safe-area-inset-bottom,0px));z-index:20;font-family:var(--terminal-font)}
.buddy-toggle{--buddy-size:164px;--pose-x:calc(100% + var(--buddy-size) * .0439);--pose-y:100%;display:none;position:relative;width:108px;height:158px;border:0;padding:0;border-radius:18px;background:none;outline-offset:5px;touch-action:manipulation}
.buddy-ready .buddy-toggle{display:block}
.buddy-character,.buddy-art{position:absolute;inset:auto auto 0 50%;width:var(--buddy-size);max-width:none;height:var(--buddy-size);transform:translateX(-50%);pointer-events:none}
.buddy-character{display:none;object-fit:contain;filter:grayscale(1)}
.buddy-art{display:block}
.sprite-failed .buddy-fallback{display:block}.sprite-failed .buddy-art{display:none}
.buddy-toggle[data-buddy-pose="rest"]{--pose-x:calc(var(--buddy-size) * -.0813);--pose-y:0%}
.buddy-toggle[data-buddy-pose="wave-a"]{--pose-x:calc(100% + var(--buddy-size) * .0439);--pose-y:0%}
.buddy-toggle[data-buddy-pose="wave-b"]{--pose-x:calc(var(--buddy-size) * -.0813);--pose-y:100%}
.buddy-sprite{position:absolute;inset:0;display:block}
.buddy-sprite{background:url('assets/roux-buddy-poses.png') var(--pose-x) var(--pose-y)/200% 200% no-repeat;filter:grayscale(1)}
.buddy-spark{position:absolute;width:9px;height:9px;color:#007aff;opacity:0;background:currentColor;clip-path:polygon(50% 0,61% 37%,100% 50%,61% 63%,50% 100%,39% 63%,0 50%,39% 37%)}
.buddy-spark-one{top:18%;left:17%}.buddy-spark-two{top:8%;right:21%;width:5px;height:5px}
.buddy-toggle:is(:hover,:focus-visible) .buddy-spark{animation:buddy-sparkle .9s ease-out 1}
.buddy-toggle:is(:hover,:focus-visible) .buddy-spark-two{animation-delay:.2s}
.buddy-toggle:focus-visible::after{content:'';position:absolute;left:calc(50% - 10px);bottom:0;width:20px;border-bottom:1px solid var(--accent);pointer-events:none}
.buddy-menu{position:absolute;right:4px;bottom:calc(100% + 14px);width:240px;max-width:calc(100vw - 40px);max-height:calc(100dvh - 214px);overflow-y:auto;padding:22px;background:#fcfcf9;border:1px solid #e5e6df;border-radius:14px;box-shadow:0 8px 32px -12px #33392d26;transform-origin:calc(100% - 40px) 100%;animation:buddy-menu-arrive .22s cubic-bezier(.22,1,.36,1) both}
.buddy-menu[hidden]{display:none!important}
.buddy-menu-name{font-size:12px;line-height:1.5;margin-bottom:17px;color:var(--ink)}
.buddy-menu-name>span{display:block;font-family:Figtree,Arial,sans-serif;font-size:10px;margin-top:4px;color:#6f7467}
.buddy-main-links{display:grid;gap:1px;padding-block:9px;border-block:1px solid var(--line)}
.buddy-main-links>a{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:36px;padding:6px 0;font-size:12px;color:#62675c;transition:color .18s}
.buddy-main-links>a>span:last-child{font-size:10px;color:#9b9f94}
.buddy-main-links>a[aria-current="page"],.buddy-main-links>a:hover,.buddy-menu a:focus-visible,.buddy-menu button:focus-visible{color:var(--accent)}
.buddy-menu a:focus-visible,.buddy-menu button:focus-visible{color:var(--accent);text-decoration:underline;text-underline-offset:5px}
.buddy-main-links>a[aria-current="page"]>span:last-child{color:var(--accent)}
.buddy-legal{display:flex;gap:15px;margin-top:12px;color:#6f7467;font-size:9px}
.buddy-legal>a{display:grid;align-items:center;min-height:24px}
.buddy-legal>a[aria-current="page"]{color:var(--accent)}
[data-terminal-concept] .page-copy{padding-block:64px 122px}
[data-terminal-concept] .view-site .work{padding-block:64px 122px}
[data-terminal-concept] .illustrated-work .work-heading{display:block;position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
[data-terminal-concept] .page-view{scrollbar-color:#c5c9bf transparent}
@keyframes terminal-cursor{0%,45%{opacity:.7}46%,100%{opacity:0}}
@keyframes buddy-menu-arrive{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}
@keyframes buddy-sparkle{0%,100%{opacity:0;scale:.2}30%{opacity:1;scale:1}70%{opacity:.8;scale:.6}}
@media(min-width:1600px){.terminal-heading{font-size:31px}.terminal-eyebrow{font-size:12px}.terminal-body{font-size:13px}}
@media(max-width:700px){
  [data-terminal-concept] .opening.page-view{padding:40px 28px 118px}
  .terminal-scene{transform:translateY(-8px)}
  .terminal-eyebrow::before{right:calc(100% + 11px)}
  .terminal-eyebrow{font-size:11px;line-height:1.9;margin-bottom:16px}
  .terminal-heading{font-size:clamp(18px,5.1vw,27px);letter-spacing:-.8px;line-height:1.7}
  .terminal-body{font-size:11px;line-height:1.9;margin-top:21px;letter-spacing:-.2px}
  .buddy-navigation{right:max(20px,env(safe-area-inset-right,0px));bottom:max(18px,env(safe-area-inset-bottom,0px))}
  .buddy-toggle{--buddy-size:132px;width:86px;height:126px}
  .buddy-menu{right:0;bottom:calc(100% + 10px);max-height:calc(100dvh - 180px)}
  [data-terminal-concept] .page-copy{padding-block:32px 142px}
  [data-terminal-concept] .view-site .work{padding-block:32px 142px}
}
@media(max-width:360px){[data-terminal-concept] .opening.page-view{padding-inline:24px}.terminal-heading{font-size:18px;letter-spacing:-.9px}.terminal-body{font-size:10.5px}}
@media(max-height:500px){[data-terminal-concept] .opening.page-view{padding-block:28px}.terminal-scene{transform:none}.terminal-eyebrow{margin-bottom:10px}.terminal-body{margin-top:14px}.buddy-navigation{bottom:12px;right:18px}.buddy-toggle{--buddy-size:106px;height:100px;width:70px}.buddy-menu{max-height:calc(100dvh - 140px)}}
@media(prefers-reduced-motion:reduce){.terminal-caret{transition:none!important}.buddy-menu,.type-content::after,.terminal-caret,.buddy-spark{animation:none!important}}
