@keyframes chat-ai-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.pixel-room-page .chat-message-text{white-space:pre-wrap;overflow-wrap:anywhere}.pixel-room-page .chat-answer,.pixel-room-page .chat-articles{min-width:0;font-size:inherit;line-height:inherit;overflow-wrap:anywhere;word-break:normal;text-wrap:pretty}.pixel-room-page .chat-answer-block+.chat-answer-block{margin-top:16px}.pixel-room-page .chat-answer h3{font-size:inherit;margin:0 0 8px;font-weight:650}.pixel-room-page .chat-answer p{white-space:pre-wrap;margin:0}.pixel-room-page .chat-answer ul{margin:0;padding-left:18px;list-style:outside}.pixel-room-page .chat-answer li+li{margin-top:10px}.pixel-room-page .chat-articles{margin:0;padding-left:22px;list-style:decimal}.pixel-room-page .chat-articles li+li{margin-top:20px}.pixel-room-page .chat-articles li::marker{font-variant-numeric:tabular-nums;font-weight:600}.pixel-room-page .chat-articles a{text-underline-offset:3px;font-weight:650;text-decoration:underline}.pixel-room-page .chat-articles a:hover{text-decoration-thickness:2px}.pixel-room-page .chat-articles p{margin:6px 0 0}.pixel-room-page .chat-sources{margin-top:12px;font-size:12px;line-height:1.6}.pixel-room-page .chat-sources summary{cursor:pointer}.pixel-room-page .chat-sources a{text-underline-offset:3px;text-decoration:underline}.pixel-room-page .chat-sources p{opacity:.75;white-space:pre-wrap;margin:6px 0 12px}.pixel-room-page{--room-exterior:#ecedf0;--ink:#1f2328;--terracotta:#0969da;color:var(--ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.pixel-room-page a{text-decoration:none}.pixel-room-page button:focus-visible,.pixel-room-page a:focus-visible{outline-offset:4px;outline:2px solid #0969da}.pixel-room-page{isolation:isolate;background:var(--room-exterior);place-items:center;min-height:100dvh;display:grid;overflow:hidden}.pixel-room-page .room-shell{place-items:center;width:100%;min-height:100dvh;display:grid}.pixel-room-page .room-stage-wrap{place-items:center;width:100%;height:100dvh;display:grid}.pixel-room-page .room-stage{aspect-ratio:16/9;background:var(--room-exterior);width:min(520px,85vw,151.111dvh);position:relative;overflow:hidden}.pixel-room-page .scene-image{z-index:0;object-fit:contain;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.pixel-room-page .room-sprite{z-index:1;pointer-events:none;-webkit-user-select:none;user-select:none;image-rendering:pixelated;filter:drop-shadow(1px 3px 1px #0a192d4d);position:absolute}.pixel-room-page .room-fallback{z-index:2}.pixel-room-page .room-light{z-index:2;pointer-events:none;opacity:0;transition:opacity 2s;position:fixed;inset:0}.pixel-room-page .room-light--night{background:#0c193ab8}.pixel-room-page .room-light--dawn{background:#696b9b52}.pixel-room-page[data-room-time=night] .room-light--night,.pixel-room-page[data-room-time=dawn] .room-light--dawn{opacity:1}.pixel-room-page .room-lamp-glow{z-index:3;pointer-events:none;opacity:0;mix-blend-mode:screen;background:radial-gradient(4.3% 7.8% at 40.5% 20.5%,#ffe2a4e0 0%,#ffd07e85 65%,#0000 100%),radial-gradient(12% 18% at 40.5% 24%,#ffc5743d,#0000 100%),radial-gradient(20% 15% at 43% 68%,#ebaf5e2e,#0000 100%),radial-gradient(1.3% 1.8% at 61.5% 42%,#ffe2aee6,#0000 100%),radial-gradient(7% 9% at 60% 51%,#ffcd8933,#0000 100%),radial-gradient(8% 5% at 59% 58%,#ffdba36b,#0000 100%);transition:opacity 2s;position:absolute;inset:0}.pixel-room-page[data-room-time=night] .room-lamp-glow{opacity:1}.pixel-room-page[data-room-time=dawn] .room-lamp-glow{opacity:.45}.pixel-room-page .room-time-controls{z-index:4;right:max(88px, calc(env(safe-area-inset-right) + 72px));bottom:max(16px, env(safe-area-inset-bottom));background:#f6f8faeb;border:1px solid #1f232829;border-radius:6px;gap:2px;padding:3px;display:flex;position:fixed}.pixel-room-page .room-time-controls button{color:#59636e;cursor:pointer;background:0 0;border:0;border-radius:3px;min-width:36px;min-height:36px;padding:0 8px;font-size:11px}.pixel-room-page .room-time-controls button:hover{background:#e6eaef}.pixel-room-page .room-time-controls button[aria-pressed=true]{color:#f6f8fa;background:#1f2328}.pixel-room-page .room-time-controls button:active{transform:scale(.97)}.pixel-room-page .portfolio-chat{--hods-sys-typography-text-body-lg-font-size:var(--hods-sys-typography-text-body-md-font-size);--hods-sys-typography-text-body-lg-line-height:var(--hods-sys-typography-text-body-md-line-height);z-index:5;position:fixed;inset:auto 16px 16px auto}.pixel-room-page .portfolio-chat :is(.hods-chat-panel__title,.hods-message-bubble__surface,.hods-chat-composer__textarea,.hods-button,.chat-sources,.chat-model-status,.chat-model-error,.chat-diagnostics,.chat-diagnostics pre){font-size:var(--hods-sys-typography-text-body-md-font-size);line-height:var(--hods-sys-typography-text-body-md-line-height)}.pixel-room-page .portfolio-chat-trigger{--hods-fab-bg:var(--hods-sys-gradient-ai-highlight-magic);--hods-fab-bg-hover:var(--hods-sys-gradient-ai-highlight-magic);--hods-fab-bg-pressed:var(--hods-sys-gradient-ai-highlight-magic-pressed);margin-left:auto;display:flex}.pixel-room-page .portfolio-chat-panel .hods-chat-composer__send:not(:disabled),.pixel-room-page .portfolio-chat-panel .hods-chat-composer[data-state=loading] .hods-chat-composer__send{background-image:var(--hods-sys-gradient-ai-highlight-magic);color:var(--hods-sys-color-action-primary-fg-default)}.pixel-room-page .portfolio-chat-panel .hods-chat-composer__send:not(:disabled):active{background-image:var(--hods-sys-gradient-ai-highlight-magic-pressed)}.pixel-room-page .chat-model-status[role=status],.pixel-room-page .portfolio-chat-panel .hods-chat-composer[data-state=loading] .hods-chat-composer__control{background-image:var(--hods-sys-gradient-ai-glow-magic);position:relative;overflow:hidden}.pixel-room-page .chat-model-status[role=status]{padding:var(--hods-sys-dimension-spacing-12);border-radius:var(--hods-sys-dimension-radius-md)}.pixel-room-page .chat-model-status[role=status]:after,.pixel-room-page .portfolio-chat-panel .hods-chat-composer[data-state=loading] .hods-chat-composer__control:after{content:"";pointer-events:none;background-image:var(--hods-sys-gradient-ai-shimmer-magic);animation:chat-ai-shimmer var(--hods-sys-motion-ai-shimmer-duration) var(--hods-sys-motion-ai-shimmer-easing) infinite;position:absolute;inset:0}.pixel-room-page .portfolio-chat-panel .hods-chat-composer[data-reply-pending=true] .hods-chat-composer__send:not(.chat-stop-button){display:none}.pixel-room-page .portfolio-chat-panel .hods-chat-composer[data-reply-pending=true] .hods-chat-composer__actions[data-slot=trailing]{grid-area:1/4}.pixel-room-page .portfolio-chat-panel .hods-chat-composer__textarea,.pixel-room-page .portfolio-chat-panel .hods-chat-composer__actions{z-index:1;position:relative}.pixel-room-page .portfolio-chat-panel{width:min(400px,100vw - 32px);height:min(540px,100dvh - 112px);max-height:calc(100dvh - 112px);animation:.18s ease-out chat-enter;position:absolute;bottom:72px;right:0}.pixel-room-page .chat-suggestions{gap:var(--hods-sys-dimension-spacing-8);flex-wrap:wrap;display:flex}.pixel-room-page .chat-model-status{gap:var(--hods-sys-dimension-spacing-8);font-size:13px;line-height:1.6;display:grid}.pixel-room-page .chat-model-status progress{width:100%;accent-color:var(--hods-sys-color-fg-accent)}.pixel-room-page .chat-model-error{overflow-wrap:anywhere;font-size:12px}.pixel-room-page .chat-diagnostics{max-height:180px;font-size:11px;overflow:auto}.pixel-room-page .chat-diagnostics pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:10px}.pixel-room-page .hotspot{z-index:4;color:#0000;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:2px;justify-content:center;align-items:center;min-width:44px;min-height:44px;transition:transform .16s cubic-bezier(.23,1,.32,1),border-color .16s,background-color .16s,color .16s;display:flex;position:absolute}.pixel-room-page .hotspot:after{content:"";opacity:0;background:#2f2a2673;border:1px solid #fffaf0b8;width:8px;height:8px;transition:opacity .16s,transform .16s;position:absolute;transform:rotate(45deg)}.pixel-room-page .hotspot:hover,.pixel-room-page .hotspot:focus-visible{z-index:4;color:#fffaf0;background:#2f2a262e;border-color:#fffaf0bf;transform:translateY(-2px)scale(1.015)}.pixel-room-page .hotspot:hover:after,.pixel-room-page .hotspot:focus-visible:after{opacity:1;transform:rotate(45deg)scale(.7)}.pixel-room-page .hotspot span{letter-spacing:.1em;text-transform:uppercase;opacity:0;font-family:Geist Mono,monospace;font-size:clamp(9px,.75vw,12px);transition:opacity .16s,transform .16s;position:absolute;top:8px;left:10px;transform:translateY(3px)}.pixel-room-page .hotspot:hover span,.pixel-room-page .hotspot:focus-visible span{opacity:1;transform:translateY(0)}.pixel-room-page .hotspot--work{width:24%;height:21%;top:12%;left:48%}.pixel-room-page .hotspot--blog{width:17%;height:41%;top:23%;left:19%}.pixel-room-page .hotspot--about{width:33%;height:38%;top:35%;left:35%}@media (max-width:767px){.pixel-room-page .room-shell{padding:0 14px}.pixel-room-page .room-stage{width:100%}}@media (prefers-reduced-motion:reduce){.pixel-room-page,.pixel-room-page *,.pixel-room-page :before,.pixel-room-page :after{transition:none!important;animation:none!important}}
