*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}.sp-only{display:none}@media (max-width: 768px){.sp-only{display:inline}}html,body{width:100%;height:100%;background-color:#020202;color:#fff;font-family:Zen Old Mincho,serif;font-size:clamp(1rem,.77rem + .71vw,1.5rem);line-height:2;overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;cursor:none}@media (max-width: 768px){html,body{cursor:auto}}@media (hover: hover){*,*:before,*:after{cursor:none!important}}.noise-overlay{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:999;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")}.custom-cursor{position:fixed;top:0;left:0;pointer-events:none;z-index:9999;mix-blend-mode:screen;opacity:0;will-change:transform;transition:opacity .5s ease,transform .3s cubic-bezier(.23,1,.32,1)}.custom-cursor__aura{position:absolute;top:50%;left:50%;transform:translate(calc(-50% + 7px),calc(-50% - 7px));transition:transform .5s ease}.custom-cursor__aura-outer{position:absolute;top:50%;left:50%;width:288px;height:288px;transform:translate(-50%,-50%);background:#fb923c1a;border-radius:50%;filter:blur(80px);transition:all .5s ease}.custom-cursor__aura-middle{position:absolute;top:50%;left:50%;width:144px;height:144px;transform:translate(-50%,-50%);background:#fed7aa33;border-radius:50%;filter:blur(45px);transition:all .5s ease}.custom-cursor__aura-inner{position:absolute;top:50%;left:50%;width:64px;height:64px;transform:translate(-50%,-50%);background:#fff3;border-radius:50%;filter:blur(24px);transition:all .5s ease}.custom-cursor__icon{position:relative;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 0 15px rgba(255,255,255,.5))}.custom-cursor__icon svg{display:block}.custom-cursor.is-hovering .custom-cursor__aura-outer{width:400px;height:400px}.custom-cursor.is-hovering .custom-cursor__aura-middle{width:200px;height:200px}.custom-cursor.is-hovering .custom-cursor__aura-inner{width:90px;height:90px}.custom-cursor.is-clicking .custom-cursor__aura-outer{width:245px;height:245px;transition:all .1s ease}.custom-cursor.is-clicking .custom-cursor__aura-middle{width:122px;height:122px;transition:all .1s ease}.custom-cursor.is-clicking .custom-cursor__aura-inner{width:54px;height:54px;transition:all .1s ease}@media (max-width: 768px){.custom-cursor{display:none}}.reveal-canvas{position:fixed;top:0;left:0;pointer-events:none;z-index:500;opacity:0;transition:opacity .5s ease}@media (max-width: 768px){.hidden-sp{display:none}}.site-header{position:fixed;top:0;left:0;width:100%;padding:32px 40px;display:flex;justify-content:space-between;align-items:flex-start;z-index:1000;pointer-events:none;opacity:0;transition:opacity .5s ease}.site-header.visible{opacity:1;pointer-events:auto}@media (max-width: 768px){.site-header{padding:16px}}.nav-menu{display:flex;gap:32px}@media (max-width: 768px){.nav-menu{display:none}}.nav-item{position:relative;text-decoration:none;color:#fff9;font-family:Cormorant Garamond,serif;font-size:clamp(.875rem,.7rem + .54vw,1.25rem);letter-spacing:.1em;text-transform:uppercase;transition:color .3s ease;display:flex;flex-direction:column;cursor:pointer}.nav-item span{font-family:Zen Old Mincho,serif;font-size:clamp(.75rem,.65rem + .36vw,1rem);opacity:0;transform:translateY(-8px);transition:all .3s ease;margin-bottom:4px;color:#fff}@media (hover: hover){.nav-item:hover{color:#fff}.nav-item:hover span{opacity:.8;transform:translateY(0)}}.nav-item:after{content:"";position:absolute;bottom:-8px;left:0;width:0;height:1px;background-color:#fff;transition:width .3s ease}@media (hover: hover){.nav-item:hover:after{width:100%}}.logo-container{width:128px}@media (max-width: 768px){.logo-container{width:80px}}.logo-container img{width:100%;height:auto;display:block;filter:drop-shadow(0 0 16px rgba(255,255,255,.3))}.light-switch{position:fixed;top:160px;right:48px;display:flex!important;align-items:center;gap:8px;z-index:10001;pointer-events:auto;-webkit-tap-highlight-color:transparent}@media (max-width: 768px){.light-switch{top:auto;bottom:24px;right:16px;flex-direction:column;gap:4px;background:transparent;padding:8px;border:none}}.light-switch__toggle{position:relative;width:56px;height:28px;background:transparent;border:1px solid rgba(255,255,255,.3);padding:0;cursor:pointer;transition:border-color .3s ease}.light-switch__toggle:hover{border-color:#ffffff80}.light-switch__track{position:relative;width:100%;height:100%;display:flex;align-items:center}.light-switch__thumb{position:absolute;left:0;width:50%;height:100%;background:#ffffff4d;transition:all .3s ease}.light-switch__label{font-family:Cormorant Garamond,serif;font-size:clamp(.75rem,.65rem + .36vw,1rem);letter-spacing:.2em;color:#ffffff4d;transition:color .3s ease}.light-switch.is-on .light-switch__toggle{border-color:#fb923c}.light-switch.is-on .light-switch__thumb{left:50%;background:#fb923c}.light-switch.is-on .light-switch__label{color:#fb923c}.hamburger{position:fixed;top:16px;right:16px;z-index:10000;display:none;width:48px;height:48px;background:transparent;border:none;border-radius:4px;cursor:pointer;padding:0;transition:all .3s ease;-webkit-tap-highlight-color:transparent;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}@media (max-width: 768px){.hamburger{display:flex!important;visibility:visible!important;opacity:1!important;align-items:center;justify-content:center}}.hamburger__lines{position:relative;width:20px;height:14px}.hamburger__line{position:absolute;left:0;width:100%;height:2px;background:#fff;transition:all .4s cubic-bezier(.23,1,.32,1)}.hamburger__line:nth-child(1){top:0}.hamburger__line:nth-child(2){top:50%;transform:translateY(-50%)}.hamburger__line:nth-child(3){bottom:0}.hamburger.is-open{border-color:#fb923c}.hamburger.is-open .hamburger__line{background:#fb923c}.hamburger.is-open .hamburger__line:nth-child(1){top:50%;transform:translateY(-50%) rotate(45deg)}.hamburger.is-open .hamburger__line:nth-child(2){opacity:0;transform:translate(10px)}.hamburger.is-open .hamburger__line:nth-child(3){bottom:50%;transform:translateY(50%) rotate(-45deg)}.mobile-menu{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000f2;z-index:9999;display:none;opacity:0;pointer-events:none;transition:opacity .5s ease}@media (max-width: 768px){.mobile-menu{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:40px}}.mobile-menu.is-open{opacity:1;pointer-events:auto}.mobile-menu__item{display:flex;flex-direction:column;align-items:center;font-family:Cormorant Garamond,serif;font-size:clamp(1.5rem,1.04rem + 1.43vw,2.5rem);color:#fff9;text-decoration:none;letter-spacing:.2em;text-transform:uppercase;transition:all .3s ease;position:relative}.mobile-menu__item:after{content:"";position:absolute;bottom:-2px;left:50%;transform:translate(-50%);width:0;height:1px;background:#fb923c;transition:width .3s ease}.mobile-menu__item:hover,.mobile-menu__item:active{color:#fff}.mobile-menu__item:hover:after,.mobile-menu__item:active:after{width:100%}.mobile-menu__label{display:block;font-family:Zen Old Mincho,serif;font-size:clamp(.75rem,.65rem + .36vw,1rem);color:#fff6;text-transform:none;letter-spacing:.1em;margin-top:4px}body.light-mode .reveal-canvas{opacity:0!important;pointer-events:none}.main-scroller{width:100%;height:100%;position:absolute;top:0;left:0;transition:transform 1.2s cubic-bezier(.22,1,.36,1);will-change:transform}.section{position:relative;width:100%;height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden;transition:transform 1.2s cubic-bezier(.22,1,.36,1);background-color:#020202}.section--hero .hero-bg{position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at center,#4a4a4a,#111 50%,#000 90%);z-index:1;display:flex;align-items:center;justify-content:center}.section--hero .hero-text{position:relative;z-index:1;text-align:center;width:90%;opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease;text-shadow:0 4px 30px rgba(0,0,0,.5)}.section--hero .hero-text.visible{opacity:1;transform:translateY(0)}.section--hero .hero-text__title{font-size:clamp(2.5rem,2.04rem + 1.43vw,3.5rem);font-weight:500;margin-bottom:32px;letter-spacing:.1em;line-height:2}@media (max-width: 768px){.section--hero .hero-text__title{font-size:clamp(2rem,1.54rem + 1.43vw,3rem)}}.section--hero .hero-text__divider{width:4rem;height:1px;background:#fff;margin:0 auto 24px;opacity:.7}.section--hero .hero-text__subtitle{font-size:clamp(1.25rem,.91rem + 1.07vw,2rem);font-family:Cormorant Garamond,serif;font-weight:300;letter-spacing:.2em;opacity:.9}@media (max-width: 768px){.section--hero .hero-text__subtitle{font-size:clamp(1rem,.77rem + .71vw,1.5rem)}}.iris-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000;z-index:2;pointer-events:none;-webkit-mask-image:radial-gradient(circle at center,transparent 0px,black .5px);mask-image:radial-gradient(circle at center,transparent 0px,black .5px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-transition:-webkit-mask-image .1s ease-out;transition:-webkit-mask-image .1s ease-out,mask-image .1s ease-out}.scroll-hint{position:absolute;bottom:30px;left:50%;transform:translate(-50%);color:#fff;z-index:20;font-size:clamp(1rem,.77rem + .71vw,1.5rem);letter-spacing:.2em;text-align:center;animation:bounce 2s infinite;mix-blend-mode:difference;transition:opacity .5s ease}.scroll-hint .arrow{margin-top:8px}.section--concept .concept-sphere{position:absolute;top:45%;left:50%;transform:translate(-50%,-50%);width:50vh;height:50vh;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.95) 0%,rgba(255,255,255,.5) 20%,rgba(255,255,255,.05) 60%,transparent 70%);border-radius:50%;filter:blur(32px);opacity:0;z-index:1;pointer-events:none;box-shadow:0 0 104px #ffffff1a;transition:opacity 1.7s ease}.section--concept .fog-container{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none}.section--concept .fog-layer{position:absolute;width:100%;height:100%;background:radial-gradient(circle at 50% 50%,rgba(25,30,40,.4) 0%,transparent 70%);filter:blur(40px);opacity:0;transition:opacity 1.3s ease;z-index:2}.section--concept .concept-content{position:relative;z-index:10;max-width:880px;padding:0 32px;text-align:center}@media (max-width: 768px){.section--concept .concept-content{padding:0 16px;max-width:100%}}.section--concept .concept-title{font-size:clamp(2rem,1.54rem + 1.43vw,3rem);font-weight:500;margin-bottom:24px;letter-spacing:.1em;line-height:1.3;opacity:0}@media (max-width: 768px){.section--concept .concept-title{font-size:clamp(1.5rem,1.04rem + 1.43vw,2.5rem);letter-spacing:.02em}}.section--concept .concept-body{font-size:clamp(.875rem,.7rem + .54vw,1.25rem);line-height:1.8;color:#fffc;opacity:0}@media (max-width: 768px){.section--concept .concept-body{font-size:clamp(.875rem,.7rem + .54vw,1.25rem);line-height:2}}.section--concept.in-view .concept-title{animation:textGlowReveal 1.5s cubic-bezier(.16,1,.3,1) forwards .2s}.section--concept.in-view .concept-body{animation:simpleFadeUp 1.5s ease forwards .6s}.section--concept.in-view .concept-sphere,.section--concept.in-view .fog-layer{opacity:1}.section--service{padding:0 10vw;align-items:flex-start;border-top:1px solid rgba(255,255,255,.1);background-color:#050505}@media (max-width: 768px){.section--service{padding:0 24px;justify-content:center}}.section--service .service-bg{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0}.section--service .service-bg img{width:100%;height:100%;object-fit:cover}.section--service .service-bg .service-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,#000c,#0006 60%,#0003);z-index:1}.section--service .service-num{position:absolute;top:32px;left:48px;z-index:20;font-family:Cormorant Garamond,serif;font-size:clamp(6rem,15vw,12rem);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.4)}@media (max-width: 768px){.section--service .service-num{font-size:clamp(4rem,20vw,6rem);top:16px;left:16px}}.section--service .service-content{position:relative;z-index:10;max-width:1000px;opacity:0;transform:translateY(30px);transition:all 1.5s ease}.section--service.in-view .service-content{opacity:1;transform:translateY(0)}.section--service .service-title{font-size:clamp(2.5rem,2.04rem + 1.43vw,3.5rem);font-weight:500;margin-bottom:32px;letter-spacing:.1em;white-space:nowrap}@media (max-width: 768px){.section--service .service-title{font-size:clamp(1.5rem,1.04rem + 1.43vw,2.5rem);white-space:normal;word-break:keep-all;letter-spacing:.05em}}.section--service .service-desc{font-size:clamp(1rem,.77rem + .71vw,1.5rem);line-height:2;color:#fff}@media (max-width: 768px){.section--service .service-desc{max-width:280px}}.section--access .section-heading,.section--news .section-heading,.section--contact .section-heading{font-size:clamp(3rem,2.31rem + 2.14vw,4.5rem);font-family:Cormorant Garamond,serif;margin-bottom:40px;text-align:center;letter-spacing:.1em}@media (max-width: 768px){.section--access .section-heading,.section--news .section-heading,.section--contact .section-heading{font-size:clamp(2.5rem,2.04rem + 1.43vw,3.5rem);margin-bottom:16px}}.section--access .section-heading{text-align:left;width:80%;max-width:1200px;margin-left:auto;margin-right:auto}@media (max-width: 768px){.section--access .section-heading{text-align:center;width:90%}}.access-container{display:grid;grid-template-columns:1fr 1fr;gap:48px;width:80%;max-width:1200px;align-items:center}@media (max-width: 768px){.access-container{grid-template-columns:1fr;gap:16px;width:90%}}.access-info .access-details dt{font-family:Cormorant Garamond,serif;font-size:clamp(.75rem,.65rem + .36vw,1rem);color:#fff9;letter-spacing:.1em;margin-bottom:4px}@media (max-width: 768px){.access-info .access-details dt{margin-bottom:2px}}.access-info .access-details dd{font-size:clamp(.875rem,.7rem + .54vw,1.25rem);line-height:2;margin-bottom:24px}@media (max-width: 768px){.access-info .access-details dd{margin-bottom:8px}}.map-container{width:100%;height:50vh;background:#1a1a1a;border-radius:4px;overflow:hidden}@media (max-width: 768px){.map-container{height:240px}}.map-container iframe{width:100%;height:100%;border:0;filter:grayscale(100%) invert(92%);opacity:.7}.news-container{width:80%;max-width:1000px}@media (max-width: 768px){.news-container{width:90%;max-width:100%;overflow:hidden}}.news-list{list-style:none;border-bottom:1px solid rgba(255,255,255,.6)}.news-item{border-top:1px solid rgba(255,255,255,.6)}.news-link{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;padding:24px 16px;color:#fff;text-decoration:none;gap:16px 24px;transition:all .4s cubic-bezier(.16,1,.3,1)}@media (max-width: 768px){.news-link{grid-template-columns:auto auto 1fr;grid-template-rows:auto auto;gap:8px 16px;padding:24px 0}.news-link .news-date{grid-column:1}.news-link .news-cat{grid-column:2;justify-self:start}.news-link .news-title{grid-column:1/-1;grid-row:2;margin-top:8px;font-size:clamp(1rem,.77rem + .71vw,1.5rem);line-height:1.4}}@media (hover: hover){.news-link:hover{background-color:#fff;color:#020202}}.news-date{font-size:clamp(1rem,.77rem + .71vw,1.5rem)}@media (max-width: 768px){.news-date{font-size:clamp(.875rem,.7rem + .54vw,1.25rem);color:#fff9}}.news-cat{display:inline-block;font-size:clamp(.75rem,.65rem + .36vw,1rem);white-space:nowrap;background:#ffffff1a;padding:.2em .8em;border-radius:2px;text-align:center;min-width:4em}.section--contact{display:block;height:100vh;overflow-y:auto;-webkit-overflow-scrolling:touch;background-color:#050505}.section--contact .contact-inner{min-height:100vh;display:flex;flex-direction:column}.contact-cta-container{flex-grow:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:56px 32px;text-align:center;max-width:800px;margin:0 auto}.contact-cta-text{font-size:clamp(.75rem,.65rem + .36vw,1rem);line-height:2;color:#fffc;margin-bottom:32px}.btn{display:inline-block;padding:24px 48px;border:1px solid rgba(255,255,255,.3);font-family:Cormorant Garamond,serif;font-size:clamp(1.25rem,.91rem + 1.07vw,2rem);letter-spacing:.2em;color:#fff;text-decoration:none;background:transparent;cursor:pointer;transition:all .4s cubic-bezier(.16,1,.3,1)}@media (hover: hover){.btn:hover{background:#fff;color:#020202;border-color:#fff;transform:translateY(-4px)}}.btn--service{margin-top:24px;padding:8px 32px;font-size:clamp(.875rem,.7rem + .54vw,1.25rem)}@media (max-width: 768px){.btn--service{font-size:clamp(.75rem,.65rem + .36vw,1rem);padding:8px 24px}}.btn--contact{font-size:clamp(1rem,.77rem + .71vw,1.5rem)}@media (max-width: 768px){.btn--contact{font-size:clamp(.875rem,.7rem + .54vw,1.25rem);padding:16px 32px;width:100%;max-width:300px}}.btn--submit{align-self:center;margin-top:32px;padding:16px 48px;background:#fff;color:#020202;border-color:#fff}@media (hover: hover){.btn--submit:hover{background:transparent;color:#fff}}.contact-form-wrapper{width:100%;max-width:640px;max-height:0;overflow:hidden;transition:max-height .8s cubic-bezier(.16,1,.3,1),opacity .8s ease;opacity:0;margin-top:16px}.contact-form-wrapper.open{max-height:1000px;opacity:1;margin-top:40px}.contact-form{display:flex;flex-direction:column;gap:32px;text-align:left;padding-bottom:32px}.form-group{display:flex;flex-direction:column;gap:8px}.form-label{font-family:Cormorant Garamond,serif;font-size:clamp(1rem,.77rem + .71vw,1.5rem);color:#fff9;letter-spacing:.05em}.form-input,.form-textarea{width:100%;background:transparent;border:none;border-bottom:1px solid rgba(255,255,255,.3);padding:16px 0;color:#fff;font-family:Zen Old Mincho,serif;font-size:clamp(1rem,.77rem + .71vw,1.5rem);border-radius:0;transition:border-color .3s ease}.form-input:focus,.form-textarea:focus{outline:none;border-bottom-color:#fff}.form-input::placeholder,.form-textarea::placeholder{color:#fff6}.site-footer{width:100%;padding:32px 40px 24px;background:#020202;border-top:1px solid rgba(255,255,255,.1)}.site-footer .footer-grid{display:grid;grid-template-columns:2fr .8fr 1.2fr 2.5fr;gap:32px;max-width:1200px;margin:0 auto 24px;text-align:left}@media (max-width: 768px){.site-footer .footer-grid{grid-template-columns:1fr 1fr;gap:24px 16px}}@media (max-width: 768px){.site-footer .footer-col-logo,.site-footer .footer-col-office{grid-column:1/-1}}.site-footer .footer-logo{width:120px;margin-bottom:16px;filter:drop-shadow(0 0 8px rgba(255,255,255,.2))}.site-footer .footer-logo img{width:100%;display:block}.site-footer .footer-heading{font-family:Cormorant Garamond,serif;font-size:clamp(.75rem,.65rem + .36vw,1rem);letter-spacing:.1em;color:#fff;margin-bottom:8px}.site-footer .footer-info{font-size:.75rem;line-height:1.8;color:#fffc;margin-bottom:8px}.site-footer .footer-info .office-label{font-family:Cormorant Garamond,serif;font-size:.625rem;color:#fff9;letter-spacing:.1em}.site-footer .footer-links{list-style:none}.site-footer .footer-links li{margin-bottom:4px}.site-footer .footer-links a{color:#fff9;text-decoration:none;font-size:.75rem;white-space:nowrap;transition:color .3s ease}@media (hover: hover){.site-footer .footer-links a:hover{color:#fff}}@media (max-width: 768px){.site-footer .footer-links a{font-size:.875rem}}.site-footer .footer-bottom{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid rgba(255,255,255,.1);font-family:Cormorant Garamond,serif;font-size:clamp(.75rem,.65rem + .36vw,1rem);color:#fff6}@media (max-width: 768px){.site-footer .footer-bottom{flex-direction:column;gap:16px;text-align:center;font-size:clamp(.75rem,.65rem + .36vw,1rem)}}@keyframes textGlowReveal{0%{opacity:0;filter:blur(16px);text-shadow:0 0 40px rgba(255,255,255,.8);transform:scale(1.02)}40%{opacity:.5;text-shadow:0 0 20px rgba(255,255,255,.5)}to{opacity:1;filter:blur(0);text-shadow:0 0 0 transparent;transform:scale(1)}}@keyframes simpleFadeUp{0%{opacity:0;transform:translateY(30px);filter:blur(8px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translate(-50%) translateY(0)}40%{transform:translate(-50%) translateY(-10px)}60%{transform:translate(-50%) translateY(-5px)}}
