:root{--font-ovo: Ovo, serif;--font-mono: "IBM Plex Mono", monospace;--color-primary: #3d4a83;--color-muted: #a8b0d3;--color-soft: #536099;--color-bg: #faf9f8;--ease-out-quart: cubic-bezier(.25, 1, .5, 1)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%}body{min-width:320px;color:var(--color-primary);font-family:var(--font-ovo);background-color:var(--color-bg);background-image:radial-gradient(ellipse 90% 70% at 50% 0%,rgba(168,176,211,.28),transparent 55%),radial-gradient(ellipse 60% 50% at 85% 90%,rgba(61,74,131,.06),transparent 50%),radial-gradient(ellipse 50% 40% at 10% 80%,rgba(168,176,211,.18),transparent 45%);background-attachment:fixed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh;min-height:100dvh}a{color:inherit;text-decoration:none}.page{display:flex;flex-direction:column;align-items:center;min-height:100vh;min-height:100dvh;padding:clamp(3rem,18vh,8rem) 1.5rem 6rem}.intro{text-align:left;max-width:28rem}.name{margin:0;font-family:var(--font-ovo);font-size:clamp(2rem,5vw,2.75rem);font-weight:400;line-height:1.15;color:var(--color-primary)}.block{margin-top:2rem;text-align:left}.label{margin:0 0 .65rem;font-family:var(--font-mono);font-size:.72rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted)}.line{margin:0;font-family:var(--font-ovo);font-size:clamp(1rem,2vw,1.15rem);line-height:1.6;color:var(--color-soft)}.link{border-bottom:1px solid currentColor;padding-bottom:1px;transition:opacity .15s ease}@media (hover: hover) and (pointer: fine){.link:hover{opacity:.7}}.link:active{opacity:.55}.history{display:flex;flex-direction:column;gap:.15rem}.bubbles{position:relative;width:min(100%,64rem);height:60rem;margin-top:3.5rem}.bubble{position:absolute;left:min(var(--left),calc(100% - 22.2rem));top:var(--top);width:min(22rem,100%);height:200px;padding:0;border:none;background:none;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none}.bubble-inner{width:100%;height:100%;overflow:hidden;border-radius:4px;background:#eceae6;box-shadow:0 10px 28px #3d4a8329;animation:bubble-float var(--float-dur) ease-in-out var(--float-delay) infinite alternate;transition:box-shadow .18s ease}.bubble-video{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}@keyframes bubble-float{0%{transform:rotate(var(--r)) translateY(0)}to{transform:rotate(var(--r)) translateY(-14px)}}.bubble-tip{position:absolute;left:50%;top:calc(100% + 1.75rem);z-index:2;padding:.28rem .55rem;border-radius:4px;background:#fff;color:var(--color-primary);font-family:var(--font-ovo);font-size:.85rem;letter-spacing:0;line-height:1.3;white-space:nowrap;pointer-events:none;box-shadow:0 6px 18px #3d4a8324;opacity:0;transform:translate(-50%) translateY(-8px) scale(.96);transform-origin:top center;transition:opacity .18s var(--ease-out-quart),transform .18s var(--ease-out-quart)}.bubble-tip:before{content:"";position:absolute;left:50%;bottom:100%;width:0;height:1.75rem;border-left:.5px dashed var(--color-muted);transform:translate(-50%) scaleY(.4);transform-origin:bottom center;transition:transform .18s var(--ease-out-quart)}.bubble:focus-visible{z-index:4}.bubble:focus-visible .bubble-tip{opacity:1;transform:translate(-50%) translateY(0) scale(1)}.bubble:focus-visible .bubble-tip:before{transform:translate(-50%) scaleY(1)}@media (hover: hover) and (pointer: fine){.bubble:hover{z-index:4}.bubble:hover .bubble-inner{box-shadow:0 14px 32px #3d4a833d}.bubble:hover .bubble-tip{opacity:1;transform:translate(-50%) translateY(0) scale(1)}.bubble:hover .bubble-tip:before{transform:translate(-50%) scaleY(1)}}@media (max-width: 720px){.bubbles{display:flex;flex-direction:column;align-items:center;gap:1.5rem;height:auto;padding:.25rem 0 3.5rem}.bubble{position:relative;left:auto;top:auto}.bubble:nth-child(odd){align-self:flex-start}.bubble:nth-child(2n){align-self:flex-end;margin-top:.35rem}.bubble:last-child{align-self:center;margin-top:.2rem}}.bubble:focus-visible,.lightbox-close:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:#faf9f8db}.lightbox-frame{max-width:92vw;transform-origin:center;overflow:hidden;border-radius:16px;background:#eceae6;box-shadow:0 18px 48px #3d4a8338}.lightbox-video{display:block;width:auto;height:auto;max-width:92vw;max-height:min(75dvh,1000px)}.lightbox-close{position:absolute;top:1rem;right:1rem;z-index:1;min-width:44px;min-height:44px;padding:0 .7rem;border:none;background:none;cursor:pointer;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);transition:color .15s ease,opacity .15s ease}@media (hover: hover) and (pointer: fine){.lightbox-close:hover{color:var(--color-primary)}}.lightbox-close:active{opacity:.55}@media (prefers-reduced-motion: reduce){.bubble-inner{animation:none;transform:rotate(var(--r))}.bubble-tip,.bubble:hover .bubble-tip,.bubble:focus-visible .bubble-tip{transform:translate(-50%);transition:opacity .15s ease}.bubble-tip:before,.bubble:hover .bubble-tip:before,.bubble:focus-visible .bubble-tip:before{transform:translate(-50%) scaleY(1);transition:none}}
