.twin-stage{--paper:#f5f6f3;--paper-deep:#cdcec4;--ink:#4e4e4a;--ink-strong:#2f2f2c;--ink-soft:rgba(47,47,44,0.66);--ink-faint:rgba(47,47,44,0.42);--ink-line:rgba(47,47,44,0.13);--ink-line-soft:rgba(47,47,44,0.08);--glass-fill:rgba(255,255,255,0.14);--glass-fill-hi:rgba(255,255,255,0.26);--glass-edge-hi:rgba(255,255,255,0.92);--glass-edge-lo:rgba(255,255,255,0.28);--shadow-window:0 32px 64px -30px rgba(45,44,34,0.22);--shadow-window-hi:0 38px 76px -32px rgba(45,44,34,0.28);--r-window:26px;--ease-glass:cubic-bezier(0.22,1,0.36,1);--ease-soft:cubic-bezier(0.4,0,0.2,1);--dur-focus:300ms;--dur-enter:720ms;position:fixed;inset:0;overflow:hidden;background:var(--paper);color:var(--ink);font-family:var(--font-sans),system-ui,sans-serif}.twin-stage__canvas{position:fixed;inset:0;z-index:0;display:block;width:100%;height:100%}.twin-stage *{scrollbar-width:thin;scrollbar-color:rgba(47,47,44,.22) transparent}.twin-stage ::-webkit-scrollbar{width:6px;height:6px}.twin-stage ::-webkit-scrollbar-track{background:transparent}.twin-stage ::-webkit-scrollbar-thumb{background:rgba(47,47,44,.22);border-radius:999px}.twin-stage ::-webkit-scrollbar-thumb:hover{background:rgba(47,47,44,.34)}.stage-grade{position:fixed;inset:0;z-index:1;pointer-events:none}.stage-grade:before{content:"";position:absolute;inset:0;background:radial-gradient(130% 120% at 50% 8%,rgba(255,255,255,.4) 0,transparent 46%)}.stage-grade:after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/></filter><rect width='100%25' height='100%25' filter='url(%23g)'/></svg>");background-size:180px 180px;opacity:.035;mix-blend-mode:multiply}.twin-desktop{position:fixed;left:50%;bottom:clamp(14px,2.4vh,26px);transform:translateX(-50%);z-index:45;display:flex;align-items:flex-end;gap:12px;padding:10px 14px 20px;border-radius:24px;background:rgba(255,255,255,.4);border:1px solid rgba(255,255,255,.55);backdrop-filter:blur(22px) saturate(1.5);box-shadow:0 14px 36px -14px rgba(45,44,34,.34),0 2px 8px -4px rgba(45,44,34,.2)}.desk-icon{position:relative;display:flex;align-items:center;justify-content:center;padding:0;border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.desk-icon__tile{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;color:var(--ink);background:linear-gradient(160deg,rgba(255,255,255,.96),rgba(255,255,255,.62));box-shadow:0 1px 2px rgba(45,44,34,.16),0 4px 10px -4px rgba(45,44,34,.26);transition:transform .2s var(--ease-glass)}.desk-icon:hover .desk-icon__tile{transform:translateY(-7px) scale(1.1)}.desk-icon:active .desk-icon__tile{transform:translateY(-2px) scale(.98)}.desk-icon__glyph{width:23px;height:23px}.desk-icon__dot{position:absolute;bottom:-12px;width:4px;height:4px;border-radius:50%;background:var(--ink-soft);opacity:0;transition:opacity .2s}.desk-icon[data-open] .desk-icon__dot{opacity:1}.floating__resize{position:absolute;right:2px;bottom:2px;width:20px;height:20px;z-index:6;cursor:nwse-resize;touch-action:none;opacity:0;background:linear-gradient(135deg,transparent 0 54%,var(--ink-faint) 54% 62%,transparent 62% 70%,var(--ink-faint) 70% 78%,transparent 78%);transition:opacity .18s}.glass:hover .floating__resize,.glass[data-focused] .floating__resize{opacity:.45}.floating__resize:hover{opacity:.85}.glass{position:relative;isolation:isolate;border-radius:var(--r-window);background:rgba(255,255,255,.46);backdrop-filter:blur(7px);border:1px solid rgba(255,255,255,.5);color:var(--ink);box-shadow:var(--shadow-window);overflow:hidden;transition:box-shadow var(--dur-focus) var(--ease-glass),background var(--dur-focus) var(--ease-soft)}.glass[data-focused]{background:rgba(255,255,255,.56)}.glass__content{position:relative;z-index:4;display:flex;flex-direction:column;height:100%;min-height:0}.floating__glass{height:100%}.floating__body{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.floating__grabber,.sheet-switch{display:none}.glass[data-focused]{box-shadow:var(--shadow-window-hi)}.chrome{display:flex;align-items:center;gap:10px;height:46px;padding:0 20px;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex:0 0 auto;border-bottom:1px solid var(--ink-line-soft)}.chrome:active{cursor:grabbing}.chrome__dot{width:11px;height:11px;border-radius:50%;border:0;padding:0;background:rgba(26,26,24,.22);box-shadow:inset 0 0 0 1px rgba(255,255,255,.5);cursor:pointer;transition:background .16s var(--ease-soft)}.chrome__dot:hover{background:rgba(200,70,60,.85)}.chrome__title{font:500 12.5px/1 var(--font-sans),system-ui;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint)}.glass[data-focused] .chrome__title{color:var(--ink-soft)}.chrome__grip{margin-left:auto;width:24px;height:8px;background:radial-gradient(circle,var(--ink-faint) .8px,transparent 1.2px) 0 0 /6px 6px;opacity:.5}.floating{position:fixed;z-index:var(--z,20);transform:translate(-50%,-50%) translate(calc(var(--ax, 0px) + var(--dx, 0px) + var(--px, 0px)),calc(var(--ay, 0px) + var(--dy, 0px) + var(--py, 0px)));transition:filter var(--dur-focus) var(--ease-soft);will-change:transform}.floating[data-dragging]{transition:none}@keyframes assemble{0%{opacity:0;filter:blur(8px)}to{opacity:1;filter:blur(0)}}.floating[data-enter]{animation:assemble var(--dur-enter) var(--ease-glass) both;animation-delay:var(--enter-delay,0s)}@keyframes drift{0%,to{translate:0 0}50%{translate:0 var(--drift,-5px)}}.floating[data-drift] .glass{animation:drift var(--drift-dur,13s) ease-in-out infinite}.chat{flex-direction:column}.chat,.chat__log{display:flex;flex:1 1 auto;min-height:0}.chat__log{overflow-y:auto;padding:20px 22px;flex-direction:column;gap:12px;scrollbar-width:thin;scrollbar-color:var(--ink-faint) transparent}.chat__log::-webkit-scrollbar{width:7px}.chat__log::-webkit-scrollbar-thumb{background:rgba(26,26,24,.2);border-radius:99px}.chat__empty{margin:auto;text-align:center;display:flex;flex-direction:column;gap:16px;align-items:center;padding:24px 8px}.chat__empty p{font-size:13.5px;line-height:1.6;color:var(--ink-soft)}.chat__chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.chat__chip{border-radius:999px;border:1px solid var(--ink-line);background:rgba(255,255,255,.32);padding:7px 13px;font-size:12px;color:var(--ink-soft);cursor:pointer;transition:color .16s,background .16s,border-color .16s}.chat__chip:hover{color:var(--ink-strong);background:rgba(255,255,255,.55);border-color:var(--ink-faint)}.chat__row{display:flex}.chat__row[data-role=user]{justify-content:flex-end}.chat__bubble{max-width:82%;border-radius:16px;padding:9px 13px;font-size:13.5px;line-height:1.55}.chat__bubble[data-role=user]{background:var(--ink-strong);color:var(--paper);white-space:pre-wrap}.chat__bubble[data-role=assistant]{background:rgba(255,255,255,.5);color:var(--ink);border:1px solid rgba(255,255,255,.6)}.chat__bubble[data-role=assistant].chat__bubble--error{color:var(--ink-strong);border-color:var(--ink-soft)}.chat__bubble a{color:var(--ink-strong);text-decoration:underline;text-underline-offset:2px}.tline{display:flex;align-items:center;gap:9px;min-width:0;max-width:100%;min-height:24px;padding:1px 0 1px 11px;border-left:1px solid var(--ink-line-soft);font-size:12.5px;line-height:1.4;color:var(--ink-faint)}.tline__mark{flex:0 0 auto;width:12px;height:12px;display:grid;place-items:center}.tline__label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tline[data-phase=running] .tline__label{background:linear-gradient(100deg,var(--ink-faint) 0,var(--ink-faint) 38%,rgba(47,47,44,.52) 50%,var(--ink-faint) 62%,var(--ink-faint) 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:tline-shimmer 2.2s linear infinite}@supports not ((-webkit-background-clip:text) or (background-clip:text)){.tline[data-phase=running] .tline__label{-webkit-text-fill-color:var(--ink-faint);color:var(--ink-faint);animation:none}}.tline__dot{width:5px;height:5px;border-radius:50%;background:var(--ink-faint);animation:tline-breathe 1.6s ease-in-out infinite}@keyframes tline-shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}@keyframes tline-breathe{0%,to{opacity:.42;transform:scale(.82)}50%{opacity:1;transform:scale(1)}}.tline[data-phase=done]{border-left-color:var(--ink-line);color:var(--ink-soft);animation:tline-settle .24s var(--ease-glass) both}.tline__tick{width:11px;height:11px}.tline__tick path{stroke:var(--ink-soft);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:14;stroke-dashoffset:14;animation:tline-draw .26s var(--ease-glass) 40ms forwards}@keyframes tline-settle{0%{opacity:0;transform:translateY(2px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes tline-draw{to{stroke-dashoffset:0}}.tline[data-phase=error]{border-left-width:2px;border-left-color:var(--ink-soft);color:var(--ink-strong)}.tline[data-phase=error] .tline__label{font-weight:500}.tline__cross{width:10px;height:10px}.tline__cross path{stroke:var(--ink-strong);stroke-width:1.7;stroke-linecap:round}@media (prefers-reduced-motion:reduce){.tline[data-phase=running] .tline__label{animation:none;background:none;-webkit-text-fill-color:var(--ink-faint);color:var(--ink-faint)}.tline__dot{opacity:.6}.tline[data-phase=done],.tline__dot{animation:none}.tline__tick path{animation:none;stroke-dashoffset:0}}.chat__form{flex:0 0 auto;display:flex;align-items:flex-end;gap:8px;padding:14px 18px 18px;border-top:1px solid var(--ink-line-soft)}.chat__input{flex:1 1 auto;resize:none;max-height:132px;border-radius:13px;border:1px solid var(--ink-line);background:rgba(255,255,255,.45);color:var(--ink);padding:10px 12px;font-size:13.5px;line-height:1.5;font-family:inherit}.chat__input::-moz-placeholder{color:var(--ink-faint)}.chat__input::placeholder{color:var(--ink-faint)}.chat__input:focus{outline:none;border-color:var(--ink-faint);background:rgba(255,255,255,.6)}.chat__input{scrollbar-width:none}.chat__input::-webkit-scrollbar{width:0;height:0;display:none}.chat__send{flex:0 0 auto;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:11px;border:0;background:var(--ink-strong);color:var(--paper);cursor:pointer;transition:opacity .16s}.chat__send:disabled{opacity:.32;cursor:default}.typing-dots{display:inline-flex;align-items:center;gap:4px;padding:3px 0}.typing-dots span{width:6px;height:6px;border-radius:50%;background:var(--ink-faint);animation:typing 1.2s ease-in-out infinite}.typing-dots span:first-child{animation-delay:-.3s}.typing-dots span:nth-child(2){animation-delay:-.15s}@keyframes typing{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:.85}}.cal{flex-direction:column}.cal,.cal__body{display:flex;flex:1 1 auto;min-height:0}.cal__body{overflow-y:auto;padding:22px 22px 26px;flex-direction:column;justify-content:center;gap:14px;scrollbar-width:thin;scrollbar-color:var(--ink-faint) transparent}.cal__week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal__day{border-radius:10px;border:1px solid var(--ink-line);background:rgba(255,255,255,.26);padding:7px 2px 8px;display:flex;flex-direction:column;gap:3px;align-items:center}.cal__day[data-busy]{background:rgba(26,26,24,.07)}.cal__day[data-free]{border-color:var(--ink-faint);background:rgba(255,255,255,.5)}.cal__day[data-weekend]{opacity:.38}.cal__day-dow{font-size:9px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em}.cal__day-num{font-size:14px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.cal__list{display:flex;flex-direction:column;gap:6px}.cal__meeting{display:flex;align-items:center;gap:10px;border-radius:10px;border:1px solid var(--ink-line);background:rgba(255,255,255,.4);padding:9px 12px}.cal__meeting-time{font-size:11px;font-weight:600;color:var(--ink-soft);font-variant-numeric:tabular-nums;white-space:nowrap}.cal__meeting-title{font-size:12.5px;color:var(--ink-strong);flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal__meeting-link{flex:0 0 auto;display:inline-flex;color:var(--ink-soft)}.cal__meeting-link:hover{color:var(--ink-strong)}.notebook,.profile{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.notebook__body,.profile__body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:22px}.profile__body{display:flex;flex-direction:column;gap:17px;background:rgba(255,255,255,.18)}.profile-resume__header{display:flex;flex-direction:column;align-items:center;gap:7px;padding:3px 2px 15px;border-bottom:1px solid rgba(68,64,53,.28);text-align:center}.profile-resume__eyebrow{margin:0;color:var(--ink-faint);font-size:10px;font-weight:600;line-height:1;text-transform:uppercase}.profile-resume__header h2{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:0;color:var(--ink-strong);font-family:var(--font-display),var(--font-sans),system-ui;font-size:26px;font-weight:500;line-height:1.08}.profile-resume__header h2 span{color:var(--ink-soft);font-size:.76em;font-weight:500}.profile-resume__contacts{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 11px;max-width:100%;color:var(--ink-soft);font-size:11px;line-height:1.25}.profile-resume__contacts a{color:inherit;text-decoration:none;overflow-wrap:anywhere}.profile-resume__contacts a:hover{color:var(--ink-strong);text-decoration:underline;text-underline-offset:3px}.profile-access{display:grid;grid-template-columns:74px minmax(0,1fr);gap:12px;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--ink-line-soft);color:var(--ink-soft)}.profile-access>span,.resume-section h3{margin:0;color:var(--ink-faint);font-size:10px;font-weight:700;line-height:1.2;text-transform:uppercase}.profile-access div{display:flex;min-width:0;flex-wrap:wrap;gap:4px 9px}.profile-access strong{color:var(--ink-strong);font-size:12.5px;line-height:1.25}.profile-access small{color:var(--ink-soft);font-size:11px;line-height:1.35}.resume-section{display:grid;grid-template-columns:74px minmax(0,1fr);gap:12px;padding-top:1px}.resume-section__content{display:flex;min-width:0;flex-direction:column;gap:10px;padding-top:1px}.resume-compact-row,.resume-entry,.resume-skill-row{min-width:0}.resume-compact-row,.resume-entry__head{display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:12px;align-items:baseline}.resume-compact-row div,.resume-entry__head div{display:flex;min-width:0;flex-wrap:wrap;gap:4px 7px}.resume-compact-row strong,.resume-entry strong,.resume-skill-row strong{color:var(--ink-strong);font-size:12.5px;font-weight:700;line-height:1.32}.resume-compact-row span,.resume-entry span,.resume-skill-row span{color:var(--ink-soft);font-size:12px;line-height:1.35}.resume-compact-row time,.resume-entry time{color:var(--ink-faint);font-size:11px;line-height:1.25;text-align:right;white-space:nowrap}.resume-entry ul{margin:5px 0 0;padding-left:14px;color:var(--ink);font-size:11.5px;line-height:1.48}.resume-entry li+li{margin-top:3px}.resume-skills{display:flex;flex-direction:column;gap:6px}.resume-skill-row{display:grid;grid-template-columns:98px minmax(0,1fr);gap:10px;align-items:baseline}.notebook__body{display:flex;flex-direction:column;gap:12px}.notebook__entry{border:1px solid var(--ink-line);border-radius:12px;background:rgba(255,255,255,.38);padding:13px 14px}.notebook__entry-head{display:flex;justify-content:space-between;gap:10px;color:var(--ink-faint);font-size:10px;line-height:1.2;text-transform:uppercase;letter-spacing:.06em}.notebook__entry h2{margin:9px 0 6px;color:var(--ink-strong);font-size:16px;font-weight:600;line-height:1.2}.notebook__entry p{margin:0;color:var(--ink-soft);font-size:12.5px;line-height:1.5}.twin-stage .not-prose{background:rgba(255,255,255,.4)!important;border-color:var(--ink-line)!important;color:var(--ink)!important}@media (max-width:767px){.floating{left:0!important;right:0;bottom:0;top:auto!important;width:100%!important;height:var(--sheet-h,52vh)!important;transform:none!important;transition:height .36s var(--ease-glass)}html[data-sheet-dragging] .floating{transition:none}.floating:not([data-focused]){display:none}.glass,.glass[data-focused]{background:rgba(255,255,255,.74);border-radius:22px 22px 0 0}.floating__grabber{display:flex;align-items:center;justify-content:center;flex:0 0 auto;height:44px;border:0;background:none;cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent}.floating__grabber:active{cursor:grabbing}.floating__grabber-pill{width:36px;height:5px;border-radius:3px;background:var(--ink-faint)}.floating__grabber:focus-visible,.sheet-switch__cell:focus-visible{outline:2px solid var(--ink-strong);outline-offset:-3px}.chrome{cursor:default;height:30px;padding:0 18px;justify-content:center;border-bottom:0}.chrome__dot,.chrome__grip,.floating__resize,html[data-detent=peek] .chrome,html[data-detent=peek] .floating__body{display:none}html[data-detent=peek] .sheet-switch{margin-top:auto}.sheet-switch{display:flex;flex:0 0 auto;gap:2px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--ink-line-soft);background:rgba(255,255,255,.2)}.sheet-switch__cell{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 4px;border:0;border-radius:12px;background:none;color:var(--ink-faint);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .2s var(--ease-soft),color .2s var(--ease-soft)}.sheet-switch__cell[data-active]{background:rgba(255,255,255,.92);color:var(--ink-strong);box-shadow:0 1px 2px rgba(45,44,34,.12)}.sheet-switch__glyph{width:21px;height:21px}.sheet-switch__label{font-size:11px;letter-spacing:.02em;line-height:1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.twin-desktop{display:none}.twin-stage{touch-action:none}.cal__body,.chat__log,.notebook__body,.profile__body{touch-action:pan-y}.profile__body{gap:16px;padding:18px}.profile-resume__header h2{font-size:23px}.profile-access,.resume-section{grid-template-columns:1fr;gap:7px}.resume-compact-row,.resume-entry__head{grid-template-columns:1fr;gap:3px}.resume-compact-row time,.resume-entry time{text-align:left;white-space:normal}.resume-skill-row{grid-template-columns:1fr;gap:2px}}@media (prefers-reduced-motion:reduce){.floating[data-drift] .glass,.floating[data-enter]{animation:none!important}.floating{transition:none}}