:root{color-scheme:dark;--bg:#07090c;--white:#e5ebf2;--muted:#929cab;--line:#e9efff1c;--rx:0deg;--ry:0deg}*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{margin:0;width:100%;overflow-x:hidden;background:var(--bg);color:var(--white);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:1rem;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,.scene:focus-visible{outline:2px solid #a9c6f0;outline-offset:5px}button{touch-action:manipulation}svg{display:block}.sprite{position:absolute;width:0;height:0;overflow:hidden}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.page{min-height:100svh;max-width:1440px;margin:auto;padding:0 24px max(24px,env(safe-area-inset-bottom));display:flex;flex-direction:column}.masthead{height:74px;display:flex;justify-content:space-between;align-items:center;flex:none;padding-top:env(safe-area-inset-top)}.home-link{padding:12px;margin-left:-12px;opacity:.8;transition:opacity .2s}.home-link svg{width:16px;height:27px;fill:#c6d2e3}.home-link:hover{opacity:1}.hello{min-height:44px;display:flex;align-items:center;font-size:.875rem;color:#b1bccb;position:relative}.hello:after{content:'';height:1px;position:absolute;bottom:10px;left:0;width:100%;background:#c8d4e8;transform:scaleX(0);transform-origin:left;transition:transform .25s}.hello:hover:after{transform:scaleX(1)}.gallery{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 0 20px;min-width:0}.scene{position:relative;overflow:hidden;width:min(100%,650px);height:clamp(250px,50svh,570px);outline:none;touch-action:pan-y;cursor:grab;isolation:isolate;transform:translateZ(0)}.scene:active{cursor:grabbing}.scene canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity .7s}.scene.ready canvas{opacity:1}.scene.ready .fallback{opacity:0;pointer-events:none}.ambient{position:absolute;inset:-12% -10%;z-index:-1;background:radial-gradient(ellipse at 50% 46%,#1e2c3b60,transparent 63%);pointer-events:none}.shadow{position:absolute;bottom:1%;left:50%;width:58%;height:7%;transform:translateX(-50%);background:radial-gradient(ellipse,#010204b0 5%,#01020450 45%,transparent 72%);pointer-events:none}.fallback{position:absolute;height:85%;width:auto;left:50%;top:5%;translate:-50% 0;transform:perspective(900px) rotateX(var(--rx)) rotateY(calc(-15deg + var(--ry))) rotateZ(-3deg);filter:drop-shadow(8px 18px 16px #0006);transition:opacity .4s,transform .4s}.scene-hint{margin:4px 0 0;padding:8px 0;font-size:.75rem;line-height:1.5;letter-spacing:.035em;color:#98a3b3;text-align:center}.scene-hint span{color:#6e7c91;margin-left:7px}.footer{width:100%;max-width:1040px;margin:0 auto;flex:none}.contacts{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}.contact{display:flex;flex-direction:column;gap:8px;padding:20px 10px 16px;min-height:80px;transition:background .25s,color .25s;min-width:0}.contact:hover{background:#ceddf805;color:#fff}.contact:focus-visible{outline-offset:-3px}.contact-label{font-size:.875rem;letter-spacing:.06em;color:#8c99ac}.contact-value{font-size:1rem;line-height:1.35;letter-spacing:-.015em;overflow-wrap:anywhere}.email-contact{display:flex;align-items:center;grid-column:1/-1;position:relative;border-bottom:1px solid var(--line)}.email-link{flex:1;min-width:0;padding-left:10px}.copy-email{background:none;border:none;min-height:48px;min-width:48px;display:grid;place-items:center;color:#8c9eb7;margin:0 4px}.copy-email:hover{color:#e5f0ff}.icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.x-contact{padding-left:20px;border-left:1px solid var(--line)}.x-note{font-size:.75rem;line-height:1.55;color:#8290a4;max-width:220px;margin-top:0}.toast{position:fixed;left:50%;bottom:max(22px,env(safe-area-inset-bottom));transform:translate(-50%,8px);opacity:0;pointer-events:none;border:1px solid #b8cbed30;background:#152030;color:#e2ecfc;border-radius:8px;max-width:calc(100% - 32px);padding:13px 19px;font-size:.875rem;text-align:center;box-shadow:0 8px 35px #0008;transition:opacity .2s,transform .2s;z-index:5}.toast.visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:700px){.page{padding:0 48px 36px}.masthead{height:100px}.home-link svg{width:20px;height:34px}.gallery{padding:0 0 36px}.scene{height:clamp(360px,58svh,640px);width:min(100%,750px)}.scene-hint{font-size:.8125rem;margin-top:12px}.contacts{grid-template-columns:1.4fr 1fr 1.25fr}.email-contact{grid-column:auto;border-bottom:0;align-items:start}.copy-email{align-self:center;margin-right:18px}.contact{min-height:116px;padding:24px 24px 12px}.email-link{padding-left:8px}.contact-value{font-size:1.125rem}.contacts>.contact{border-left:1px solid var(--line)}.x-note{max-width:250px}.hello{font-size:1rem}}
@media(max-width:359px){.page{padding-left:18px;padding-right:18px}.masthead{height:64px}.gallery{padding-bottom:12px}.scene{height:46svh;min-height:220px}.scene-hint{letter-spacing:0}.contact{padding-top:16px;padding-bottom:12px}.x-contact{padding-left:16px}.contact-value{font-size:1rem}.x-note{font-size:.75rem}.contact-label{letter-spacing:.06em}}
@media(orientation:landscape) and (max-height:600px){.page{min-height:100svh;padding-bottom:20px}.masthead{height:64px}.scene{height:300px;min-height:0}.contacts{grid-template-columns:1.4fr 1fr 1.25fr}.email-contact{grid-column:auto;border-bottom:0}.contact{padding:16px 12px}.contacts>.contact{border-left:1px solid var(--line)}.copy-email{margin-right:0}.contact-value{font-size:1rem}.gallery{padding-bottom:20px}.scene-hint{margin-top:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

@media(min-width:700px) and (max-width:979px){.contacts{grid-template-columns:1fr 1fr}.email-contact{grid-column:1/-1;border-bottom:1px solid var(--line)}.contacts>.contact{border-left:0}.contacts>.x-contact{border-left:1px solid var(--line)}}

