:root{--ink:#1c2420;--mist:#e8efe9;--sage:#6b8f71;--hint:#1c24208c;--screen-bg:#0f1412;--screen-ink:#e4efe8;--screen-muted:#e4efe88c;--screen-line:#e4efe81f;--screen-accent:#8fbf9a}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{background:#d4c4b0;width:100%;height:100%;overflow:hidden}#app{opacity:0}body.is-app-ready #app{opacity:1}#webgl{touch-action:none;cursor:grab;width:100%;height:100%;display:block}body.is-pointer #webgl,body.is-pointer .css3d-layer{cursor:pointer}body.is-dragging #webgl{cursor:grabbing}body.is-focused #webgl{cursor:default}.css3d-layer{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.hud{z-index:2;pointer-events:none;color:var(--ink);padding:clamp(1.25rem,3vw,2rem);transition:opacity .35s;position:fixed;inset:0 auto auto 0}.hud.is-dimmed{opacity:0}.focus-close{appearance:none;color:#e4efe8d9;cursor:pointer;background:#0f1412c7;border:0;border-radius:8px;padding:10px 12px;font-size:18px;line-height:1;transition:color .2s,opacity .2s,background .2s}.focus-close:hover{color:#e4efe8;background:#0f1412f2}.focus-close--hud{z-index:6;pointer-events:auto;position:fixed;box-shadow:0 6px 18px #0f141247}.focus-close--hud[hidden]{display:none}.focus-helper{z-index:4;pointer-events:none;max-width:min(300px,46vw);color:var(--ink);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;background:#f5f1eaf5;border:1px solid #1c24201a;border-radius:1.35rem;padding:1rem 1.15rem;transition:opacity .35s;position:fixed;box-shadow:0 12px 32px #1c242024,0 2px 6px #1c24200f}.focus-helper.is-visible{opacity:1}@media (prefers-reduced-motion:reduce){.focus-helper{transition:none}}.focus-helper[hidden]{display:none}.focus-helper:after{content:"";width:14px;height:14px;box-shadow:none;background:#f5f1eaf5;border:1px solid #1c24201a;position:absolute;top:50%;transform:translateY(-50%)rotate(45deg)}.focus-helper[data-side=right]:after{border-top:0;border-right:0;left:-6px}.focus-helper[data-side=left]:after{border-bottom:0;border-left:0;right:-6px}.focus-helper[data-side=bottom]{top:auto;left:50%;right:auto;bottom:max(1rem, env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch;pointer-events:auto;width:calc(100vw - 2rem);max-width:min(420px,100vw - 2rem);max-height:min(38vh,280px);overflow:hidden auto;transform:translate(-50%)}.focus-helper[data-side=bottom]:after{display:none}.focus-helper[data-side=top]{bottom:auto;left:50%;right:auto;top:max(3.5rem, calc(env(safe-area-inset-top) + 2.75rem));-webkit-overflow-scrolling:touch;pointer-events:auto;width:calc(100vw - 2rem);max-width:min(420px,100vw - 2rem);max-height:min(40vh,300px);overflow:hidden auto;transform:translate(-50%)}.focus-helper[data-side=top]:after{display:none}.focus-helper__title{letter-spacing:-.02em;margin:0;font-family:Fraunces,Georgia,serif;font-size:1.2rem;font-weight:600;line-height:1.15}.focus-helper__role{color:var(--hint);margin:.25rem 0 0;font-family:"Source Sans 3",system-ui,sans-serif;font-size:.82rem;font-weight:500}.focus-helper__role[hidden]{display:none}.focus-helper__blurb{color:var(--hint);margin:.4rem 0 0;font-family:"Source Sans 3",system-ui,sans-serif;font-size:.88rem;line-height:1.4}.focus-helper__facts{flex-direction:column;gap:.35rem;margin:.7rem 0 0;padding:0;list-style:none;display:flex}.focus-helper__facts[hidden]{display:none}.focus-helper__fact{flex-direction:column;gap:.05rem;font-family:"Source Sans 3",system-ui,sans-serif;display:flex}.focus-helper__fact-label{letter-spacing:.04em;text-transform:uppercase;color:var(--hint);font-size:.7rem;font-weight:600}.focus-helper__fact-value{color:var(--ink);font-size:.88rem}.focus-helper__link{pointer-events:auto;color:var(--ink);text-underline-offset:.15em;cursor:pointer;margin-top:.65rem;font-family:"Source Sans 3",system-ui,sans-serif;font-size:.85rem;font-weight:500;text-decoration:underline;display:inline-block}.focus-helper__link[hidden]{display:none}.focus-helper__link:hover{opacity:.7}.focus-helper__links{pointer-events:auto;flex-direction:column;gap:.45rem;margin-top:.75rem;display:flex}.focus-helper__links[hidden]{display:none}.focus-helper__credit{color:inherit;cursor:pointer;background:#1c24200a;border-radius:.65rem;flex-direction:column;gap:.1rem;padding:.45rem .55rem;text-decoration:none;transition:background .15s;display:flex}.focus-helper__credit:hover{background:#1c242017}.focus-helper__credit-title{letter-spacing:-.01em;font-family:Fraunces,Georgia,serif;font-size:.95rem;font-weight:600}.focus-helper__credit-meta{color:var(--hint);font-family:"Source Sans 3",system-ui,sans-serif;font-size:.78rem}.brand{font-optical-sizing:auto;letter-spacing:-.02em;font-family:Fraunces,Georgia,serif;font-size:clamp(1.75rem,4vw,2.5rem);font-weight:600;line-height:1.1}.hint{color:var(--hint);letter-spacing:.01em;margin-top:.4rem;font-family:"Source Sans 3",system-ui,sans-serif;font-size:.9rem;font-weight:400;transition:opacity .25s}.hud-actions{z-index:3;pointer-events:none;gap:.5rem;transition:opacity .35s;display:flex;position:fixed;top:clamp(1.25rem,3vw,2rem);right:clamp(1.25rem,3vw,2rem)}.hud.is-dimmed~.hud-actions{opacity:0;pointer-events:none}.hud-btn,.resume-link{appearance:none;color:var(--ink);letter-spacing:.16em;text-transform:uppercase;pointer-events:auto;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f5ecdee6;border:1px solid #5a443038;border-radius:2px;padding:.7rem 1.05rem;font-family:"Source Sans 3",system-ui,sans-serif;font-size:.72rem;font-weight:500;text-decoration:none;transition:background .2s,border-color .2s,box-shadow .2s,color .2s;box-shadow:inset 0 1px #fffaf2a6,0 8px 22px #46321e14}.hud-btn:hover,.resume-link:hover{color:#141a17;background:#fcf6ecf5;border-color:#5a443066;box-shadow:inset 0 1px #fffaf2cc,0 10px 26px #46321e1f}.loading-screen{z-index:20;color:var(--ink);opacity:1;background:radial-gradient(80% 55% at 50% 0,#ead8c0 0%,#0000 55%),radial-gradient(70% 50% at 85% 100%,#c9a88255 0%,#0000 50%),linear-gradient(165deg,#d8c8b4 0%,#c4b09a 100%);place-items:center;transition:opacity .55s;display:grid;position:fixed;inset:0}.loading-screen.is-done{opacity:0;pointer-events:none}.loading-screen__inner{text-align:center;max-width:22rem;padding:2rem}.loading-screen__brand{font-optical-sizing:auto;letter-spacing:-.035em;margin:0;font-family:Fraunces,Georgia,serif;font-size:clamp(2.6rem,8vw,4.25rem);font-weight:600;line-height:.95}.loading-screen__status{color:var(--hint);letter-spacing:.01em;margin:1.1rem 0 0;font-family:"Source Sans 3",system-ui,sans-serif;font-size:.92rem}.loading-screen__bar{background:#1c242024;width:min(10rem,42vw);height:1.5px;margin:1.75rem auto 0;overflow:hidden}.loading-screen__bar-fill{background:var(--ink);transform-origin:0;width:100%;height:100%;transition:transform .35s;display:block;transform:scaleX(.08)}.css3d-screen{pointer-events:none;-webkit-user-select:none;user-select:none;backface-visibility:hidden;font-family:"Source Sans 3",system-ui,sans-serif;overflow:hidden}.css3d-screen.is-interactive{pointer-events:auto;-webkit-user-select:auto;user-select:auto;cursor:default}.css3d-frame{flex-direction:column;width:100%;height:100%;display:flex;position:relative}.css3d-viewport{flex:1;width:100%;height:100%;min-height:0;position:relative}.css3d-placeholder{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;transition:opacity .3s;display:flex;position:absolute;inset:0}.css3d-screen.is-loaded .css3d-placeholder{opacity:0;pointer-events:none}.css3d-placeholder__kicker{letter-spacing:.14em;text-transform:uppercase;font-size:12px}.css3d-placeholder__copy{font-size:15px}.css3d-iframe{opacity:0;pointer-events:none;border:0;width:100%;height:100%;transition:opacity .35s;position:absolute;inset:0}.css3d-screen.is-loaded .css3d-iframe{opacity:1}.css3d-screen.is-interactive.is-loaded .css3d-iframe{pointer-events:auto}.portfolio-screen{background:var(--screen-bg);width:850px;height:480px;color:var(--screen-ink);border-radius:6px;box-shadow:inset 0 0 0 1px #ffffff0a}.portfolio-screen .css3d-viewport{background:var(--screen-bg)}.portfolio-screen .css3d-placeholder{background:linear-gradient(160deg,#1a2420 0%,#0f1412 55%,#182018 100%)}.portfolio-screen .css3d-placeholder__kicker{color:var(--screen-accent)}.portfolio-screen .css3d-placeholder__copy{color:var(--screen-muted)}.portfolio-screen .css3d-iframe{background:var(--screen-bg)}.mobile-sheet{z-index:4;left:50%;top:max(.75rem, env(safe-area-inset-top));bottom:max(.75rem, env(safe-area-inset-bottom));background:var(--screen-bg);pointer-events:auto;-webkit-overflow-scrolling:touch;border-radius:12px;width:min(720px,100vw - 1.5rem);position:fixed;overflow:hidden;transform:translate(-50%);box-shadow:0 18px 48px #0f141259,0 0 0 1px #1c24201f}.mobile-sheet[hidden]{display:none}.mobile-sheet__iframe{background:var(--screen-bg);touch-action:pan-x pan-y;border:0;width:100%;height:100%;display:block}.mobile-sheet--earworms,.mobile-sheet--earworms .mobile-sheet__iframe{background:#0c1018}.mobile-sheet--poopy,.mobile-sheet--poopy .mobile-sheet__iframe{background:#14181c}body.is-pointer canvas,body.is-pointer .css3d-layer{cursor:pointer}.earworms-screen{color:#e8eef4;background:#0c1018;border-radius:1px;width:800px;height:800px;overflow:hidden}.earworms-screen .css3d-viewport{background:#0c1018;overflow:hidden}.earworms-screen .css3d-placeholder{background:linear-gradient(160deg,#1a2838 0%,#0c1018 45%,#2a1a14 100%);gap:10px}.earworms-screen .css3d-placeholder:before{content:"";aspect-ratio:1;background:radial-gradient(circle,#c45a3a 0 18%,#1a1210 19% 22%,#0a0a0c 23% 70%,#222 71% 100%);border-radius:50%;width:42%;margin-bottom:8px;box-shadow:0 0 0 1px #ffffff0f}.earworms-screen .css3d-placeholder__kicker{color:#e8a05a}.earworms-screen .css3d-placeholder__copy{color:#e8eef48c;font-size:16px}.earworms-screen .css3d-iframe{background:#0c1018}.earworms-screen.is-loaded .css3d-iframe{transform-origin:0 0;width:1280px;height:1280px;inset:0 auto auto 0;transform:scale(.625)}.poopyhooch-screen{color:#e8eef4;background:#14181c;border-radius:2px;width:850px;height:1050px;box-shadow:inset 0 0 0 1px #ffffff0f}.poopyhooch-screen .css3d-viewport{background:#14181c}.poopyhooch-screen .css3d-placeholder{background:linear-gradient(165deg,#2a3238 0%,#14181c 50%,#1a2420 100%);gap:10px}.poopyhooch-screen .css3d-placeholder:before{content:"";aspect-ratio:1;background:radial-gradient(circle at 35% 30%,#ffffff40,#0000 45%),linear-gradient(145deg,#4a5560,#1a2228);border-radius:50%;width:36%;margin-bottom:8px;box-shadow:inset 0 0 0 2px #ffffff14}.poopyhooch-screen .css3d-placeholder__kicker{color:#8fbf9a}.poopyhooch-screen .css3d-placeholder__copy{color:#e8eef48c;font-size:16px}.poopyhooch-screen .css3d-iframe{background:#14181c}
