@font-face{font-family:"Cinzel";font-style:normal;font-weight:600;src:url(/fonts/cinzel-600.67197a73.woff2) format("woff2");font-display:swap} @font-face{font-family:"Cormorant";font-style:italic;font-weight:400;src:url(/fonts/cormorant-italic-400.0a1c7530.woff2) format("woff2");font-display:swap} @font-face{font-family:"Cormorant";font-style:normal;font-weight:500;src:url(/fonts/cormorant-500.65523b71.woff2) format("woff2");font-display:swap} :root{--night:#08182b;--blue:#162f4f;--blue2:#23476d;--sky:#7ea2bd;--stone:#efe8d7;--stone2:#d8cbb2;--gold:#c59d54;--gold-num:#976c19;--gold2:#f0d891;--leaf:#6a7f5c;--ink:#18212b;--muted:#5f5c53;--white:#fffaf0;--paper:#fbf6e9;--line:rgba(197,157,84,.32);--serif:"Hiragino Mincho ProN","Hiragino Mincho Pro","YuMincho","Yu Mincho","Noto Serif JP","Noto Serif CJK JP",serif;--latin:"Cinzel",serif;--display:"Cormorant","Hiragino Mincho ProN",serif;--sans:"Inter","Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;--shadow:0 30px 80px rgba(8,24,43,.18)} *{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--stone);color:var(--ink);font-family:var(--serif);line-height:1.9;letter-spacing:.025em;-webkit-font-smoothing:antialiased} a{color:inherit;text-decoration:none} img{max-width:100%;height:auto;display:block} .skip{position:absolute;left:-999px;top:0;background:#fff;color:#000;padding:10px;z-index:100} .skip:focus{left:10px} .wrap{max-width:1180px;margin:0 auto} .nav{position:fixed;z-index:50;inset:0 0 auto 0;height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 4.6vw;background:rgba(8,24,43,.86);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:var(--white);border-bottom:1px solid rgba(240,216,145,.22)} .brand{display:flex;align-items:center;gap:13px;font-family:var(--latin);letter-spacing:.22em;font-weight:600;font-size:19px;color:var(--white)} .brand-mark{width:30px;height:48px;border:1px solid var(--gold);border-radius:16px 16px 3px 3px;position:relative;flex:none} .brand-mark:before{content:"";position:absolute;left:50%;top:7px;width:12px;height:27px;transform:translateX(-50%);border:1px solid rgba(240,216,145,.82);border-radius:8px 8px 2px 2px} .brand small{display:block;font-family:var(--sans);letter-spacing:.16em;font-size:8.5px;font-weight:500;color:rgba(255,250,240,.62);margin-top:2px} .nav-links{display:flex;align-items:center;gap:24px;font-family:var(--sans);font-size:12px;letter-spacing:.11em;color:rgba(255,250,240,.8)} .nav-links a{padding:8px 0;border-bottom:1px solid transparent} .nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--gold2);border-color:var(--gold2)} .nav-cta{border:1px solid var(--gold);color:var(--gold2)!important;padding:9px 17px;border-radius:999px} .nav-cta:hover{background:var(--gold);color:var(--night)!important} .nav-toggle{display:none;background:none;border:0;color:var(--white);width:44px;height:44px;cursor:pointer} .nav-toggle span{display:block;width:24px;height:1.5px;background:currentColor;margin:5px auto;transition:.3s} .mnav{position:fixed;inset:78px 0 auto 0;background:rgba(8,24,43,.98);z-index:49;transform:translateY(-120%);visibility:hidden;transition:transform .34s ease,visibility 0s .34s;padding:14px 6vw 26px;border-bottom:1px solid rgba(240,216,145,.22)} .mnav.open{transform:none;visibility:visible;transition:transform .34s ease} .mnav a{display:block;color:rgba(255,250,240,.86);font-family:var(--sans);font-size:15px;letter-spacing:.08em;padding:14px 0;border-bottom:1px solid rgba(240,216,145,.14)} .mnav a:last-child{border-bottom:0} main{position:relative;z-index:2} .section{padding:104px 5vw} .section.tight{padding:78px 5vw} .label{font-family:var(--sans);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:#7d5a12;font-weight:700} .kicker{display:flex;align-items:center;gap:14px;margin-bottom:16px} .kicker:before{content:"";width:40px;height:1px;background:var(--gold)} .center{text-align:center} .center .kicker{justify-content:center} .center .kicker:before{display:none} h1,h2,h3,h4,p{margin-top:0} h2{font-size:clamp(27px,4vw,50px);line-height:1.34;font-weight:600;letter-spacing:.04em;margin-bottom:20px;color:var(--blue)} h3{font-size:22px;line-height:1.5;color:var(--blue);margin-bottom:11px} .lead{font-size:clamp(17px,1.8vw,22px);line-height:1.85;color:#2b3540} .muted{color:var(--muted)} .btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;border-radius:2px;font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.09em;border:1px solid var(--gold);transition:transform .25s,box-shadow .25s,background .25s;background:0 0;cursor:pointer} .btn.primary{background:var(--gold);color:var(--night)} .btn.dark{background:var(--blue);color:var(--white);border-color:var(--blue)} .btn.light{color:var(--gold2)} .btn:hover{transform:translateY(-3px);box-shadow:0 18px 38px rgba(8,24,43,.2)} .actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px} .hero{position:relative;min-height:88vh;padding:132px 5vw 78px;display:grid;grid-template-columns:1.05fr .8fr;gap:52px;align-items:end;overflow:hidden;isolation:isolate} .hero>picture{position:absolute;inset:0;z-index:-2}.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 52%;z-index:-2} .hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(8,24,43,.92),rgba(8,24,43,.6) 42%,rgba(8,24,43,.28))} .hero-copy-wrap{color:rgba(255,250,240,.9)} .hero h1{font-size:clamp(40px,7vw,84px);line-height:1.08;letter-spacing:.05em;font-weight:500;color:var(--white);margin:0 0 22px} .hero h1 .sub{display:block;font-size:.36em;color:var(--gold2);font-family:var(--serif);letter-spacing:.14em;margin-top:16px;font-weight:400} .hero-copy{max-width:640px;font-size:16px;color:rgba(255,250,240,.86)} .visit-box{background:rgba(255,250,240,.94);border:1px solid rgba(240,216,145,.8);padding:22px 24px;border-radius:8px;color:var(--ink);box-shadow:var(--shadow)} .visit-box dl{display:grid;grid-template-columns:74px 1fr;gap:8px 14px;margin:0;font-size:14px} .visit-box dt{font-family:var(--sans);font-weight:700;color:var(--blue);letter-spacing:.06em} .visit-box dd{margin:0;color:var(--muted)} .hero-panel{align-self:stretch;display:grid;grid-template-rows:1fr auto;gap:18px} .pagehero{position:relative;padding:150px 5vw 74px;color:var(--white);overflow:hidden;isolation:isolate} .pagehero .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2} .pagehero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(8,24,43,.72),rgba(8,24,43,.82))} .pagehero.plain{background:linear-gradient(135deg,var(--night),var(--blue2));padding-top:150px} .pagehero .wrap{position:relative} .pagehero h1{font-size:clamp(31px,5vw,58px);line-height:1.24;color:var(--white);margin:8px 0 14px;letter-spacing:.045em;font-weight:600} .pagehero p{color:rgba(255,250,240,.82);max-width:760px;font-size:16px;margin:0} .crumbs{font-family:var(--sans);font-size:11.5px;letter-spacing:.08em;color:rgba(255,250,240,.62);margin-bottom:4px} .crumbs a{color:rgba(255,250,240,.78)}.crumbs a:hover{color:var(--gold2)} .info-strip{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper)} .info-item{padding:28px 4vw;border-right:1px solid var(--line)} .info-item:last-child{border-right:0} .info-item .num{font-family:var(--display);font-size:34px;color:var(--gold-num);line-height:1;font-style:italic} .info-item b{display:block;font-size:15px;color:var(--blue);margin:8px 0 3px} .info-item span{display:block;font-size:12.5px;color:var(--muted);line-height:1.6} .arch-section{background:linear-gradient(180deg,var(--stone),#f8f0dd)} .intro{display:grid;grid-template-columns:.82fr 1.18fr;gap:60px;align-items:start;max-width:1180px;margin:0 auto} .intro .quote{position:sticky;top:110px;border-left:2px solid var(--gold);padding-left:26px} .quote .large{font-size:clamp(30px,3.6vw,50px);line-height:1.34;color:var(--blue);font-weight:600} .columns{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px} .pillar{background:rgba(255,250,240,.72);border:1px solid var(--line);padding:32px 26px;border-radius:110px 110px 4px 4px;min-height:300px;position:relative} .pillar:before{content:"";position:absolute;left:18px;right:18px;top:18px;height:104px;border:1px solid rgba(197,157,84,.28);border-bottom:0;border-radius:96px 96px 0 0} .pillar .roman{font-family:var(--latin);font-size:32px;color:var(--gold-num);margin-bottom:26px;text-align:center} .pillar p{font-size:14.5px;color:var(--muted)} .service{background:var(--night);color:var(--white);position:relative;overflow:hidden} .service:before{content:"";position:absolute;inset:0;opacity:.14;background:radial-gradient(circle at 10% 10%,var(--gold),transparent 22%),radial-gradient(circle at 88% 16%,#7ea2bd,transparent 26%)} .service .inner{position:relative;z-index:2;max-width:1180px;margin:0 auto} .service h2{color:var(--white)} .service .muted{color:rgba(255,250,240,.72)} .service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:50px} .svc-card{background:rgba(255,250,240,.07);border:1px solid rgba(240,216,145,.32);border-radius:4px;overflow:hidden;display:flex;flex-direction:column;transition:transform .3s,border-color .3s} .svc-card:hover{transform:translateY(-6px);border-color:rgba(240,216,145,.6)} .svc-img{aspect-ratio:3/2;position:relative;overflow:hidden} .svc-img img{width:100%;height:100%;object-fit:cover} .svc-img:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,24,43,.02),rgba(8,24,43,.5))} .svc-body{padding:26px 26px 28px;display:flex;flex-direction:column;flex:1} .svc-body .latin{font-family:var(--display);font-size:20px;color:var(--gold2);font-style:italic} .svc-body h3{color:var(--white);margin:4px 0 10px} .svc-body p{color:rgba(255,250,240,.74);font-size:14px;flex:1} .svc-tags{display:flex;flex-wrap:wrap;gap:7px;margin:6px 0 16px} .svc-tags span{font-family:var(--sans);font-size:10.5px;letter-spacing:.06em;color:var(--gold2);border:1px solid rgba(240,216,145,.34);border-radius:999px;padding:4px 10px} .link-arrow{font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.11em;color:var(--gold2);border-bottom:1px solid var(--gold2);padding-bottom:5px;align-self:flex-start} .link-arrow:after{content:" →"} .prose{max-width:820px;margin:0 auto;font-size:16.5px;color:#33404c} .prose h2{margin-top:52px} .prose h3{margin-top:38px} .prose p{margin:0 0 20px} .prose ul{margin:0 0 22px;padding-left:0;list-style:none} .prose ul li{position:relative;padding-left:22px;margin:9px 0} .prose ul li:before{content:"";position:absolute;left:2px;top:13px;width:8px;height:8px;border:1px solid var(--gold);transform:rotate(45deg)} .prose .figure{margin:34px 0;border:1px solid var(--line);border-radius:6px;overflow:hidden} .grid2{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;max-width:1180px;margin:0 auto} .grid2 img{border-radius:6px;box-shadow:var(--shadow)} .card-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px} .mini{background:#fffaf0;border:1px solid var(--line);border-radius:8px;padding:30px 26px} .mini .n{font-family:var(--display);font-style:italic;font-size:30px;color:var(--gold-num)} .mini h3{margin:8px 0 8px;font-size:19px} .mini p{font-size:14px;color:var(--muted);margin:0} .gateway{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:1180px;margin:0 auto} .gw{position:relative;border-radius:8px;overflow:hidden;min-height:340px;display:flex;align-items:flex-end;isolation:isolate;color:var(--white)} .gw img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2} .gw:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(8,24,43,.15),rgba(8,24,43,.82))} .gw-body{padding:32px 30px;width:100%} .gw-body .latin{font-family:var(--display);font-style:italic;color:var(--gold2);font-size:20px} .gw-body h3{color:var(--white);font-size:25px;margin:4px 0 10px} .gw-body p{color:rgba(255,250,240,.82);font-size:14px;margin:0 0 18px} .profile{background:linear-gradient(180deg,#f8f0dd,var(--paper));position:relative;overflow:hidden} .profile-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:.8fr 1.2fr;gap:52px;align-items:start} .profile-card{background:var(--night);color:var(--white);border:1px solid rgba(197,157,84,.44);border-radius:170px 170px 8px 8px;padding:40px 30px 34px;text-align:center;box-shadow:var(--shadow);position:sticky;top:110px} .profile-card .pfp{width:150px;height:150px;margin:0 auto 22px;border-radius:50%;border:2px solid var(--gold);object-fit:cover;object-position:50% 30%} .profile-card .role{font-family:var(--sans);font-size:11px;letter-spacing:.16em;color:var(--gold2);text-transform:uppercase} .profile-card h3{color:var(--white);font-size:26px;margin:8px 0 4px} .profile-card p{color:rgba(255,250,240,.72);font-size:13px;margin:0} .profile-copy{background:rgba(255,250,240,.78);border:1px solid var(--line);padding:40px;border-radius:8px} .profile-copy .headline{font-size:clamp(24px,3vw,38px);line-height:1.45;color:var(--blue);font-weight:600;margin-bottom:20px} .profile-copy p{color:var(--muted);margin-bottom:16px} .profile-copy .message{font-size:19px;color:var(--blue);font-weight:600;border-left:2px solid var(--gold);padding-left:20px;margin:26px 0} .signature{margin-top:26px;text-align:right;color:var(--blue);font-weight:600} .ig{background:linear-gradient(180deg,var(--stone),#f2ead8)} .ig-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;max-width:1180px;margin:40px auto 0} .ig-grid a{aspect-ratio:1;overflow:hidden;border-radius:4px;position:relative;border:1px solid var(--line)} .ig-grid img{width:100%;height:100%;object-fit:cover;transition:transform .5s} .ig-grid a:hover img{transform:scale(1.06)} .ig-follow{display:inline-flex;align-items:center;gap:9px;margin-top:26px;font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.06em;color:var(--blue)} .ig-follow:hover{color:var(--gold)} .news-list{max-width:980px;margin:40px auto 0;border-top:1px solid var(--line)} .news-item{display:grid;grid-template-columns:150px 1fr auto;gap:20px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line);transition:.25s} .news-item:hover{transform:translateX(7px)} .news-date{font-family:var(--sans);font-weight:700;color:#7d5a12;font-size:12px;letter-spacing:.06em} .news-item h3{margin:0;font-size:18px} .tag{font-family:var(--sans);font-size:10.5px;letter-spacing:.1em;border:1px solid var(--line);padding:6px 10px;color:var(--blue);white-space:nowrap} .faq{background:var(--night);color:var(--white)} .faq h2{color:var(--white)} .faq .muted{color:rgba(255,250,240,.72)} .faq-list{max-width:980px;margin:42px auto 0} .faq details{border-top:1px solid rgba(240,216,145,.26);padding:20px 0} .faq details:last-child{border-bottom:1px solid rgba(240,216,145,.26)} .faq summary{cursor:pointer;font-size:18px;color:var(--gold2);font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center} .faq summary::-webkit-details-marker{display:none} .faq summary:after{content:"＋";flex:none} .faq details[open] summary:after{content:"−"} .faq details p{color:rgba(255,250,240,.78);max-width:800px;margin:14px 0 0} .access-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;max-width:1180px;margin:0 auto;align-items:start} .info-table{width:100%;border-collapse:collapse;font-size:15px} .info-table th{text-align:left;font-family:var(--sans);font-weight:700;color:var(--blue);letter-spacing:.06em;padding:14px 16px 14px 0;vertical-align:top;white-space:nowrap;border-bottom:1px solid var(--line);width:118px} .info-table td{padding:14px 0;color:#3a4650;border-bottom:1px solid var(--line)} .mapframe{border:1px solid var(--line);border-radius:8px;overflow:hidden;aspect-ratio:4/3} .mapframe iframe{width:100%;height:100%;border:0} .contact{position:relative;overflow:hidden;background:var(--night);color:var(--white);isolation:isolate} .contact .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2} .contact:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(8,24,43,.88),rgba(8,24,43,.5))} .contact h2{color:var(--white)} .contact-box{max-width:900px;margin:0 auto;text-align:center} .contact .muted{color:rgba(255,250,240,.78)} .footer{background:#06111f;color:rgba(255,250,240,.62);padding:52px 5vw 34px;font-family:var(--sans);font-size:12.5px;letter-spacing:.06em} .footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px;max-width:1180px;margin:0 auto} .footer-grid h4{font-family:var(--latin);letter-spacing:.18em;font-size:15px;color:var(--white);margin:0 0 14px} .footer-col a{display:block;color:rgba(255,250,240,.72);padding:5px 0} .footer-col a:hover{color:var(--gold2)} .footer address{font-style:normal;line-height:2;color:rgba(255,250,240,.66)} .footer-bottom{max-width:1180px;margin:36px auto 0;padding-top:22px;border-top:1px solid rgba(240,216,145,.18);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap} .footer-bottom a{color:rgba(255,250,240,.7);text-decoration:underline;text-underline-offset:3px} .doc{max-width:900px;margin:0 auto} .doc h2{font-size:24px;margin:40px 0 12px} .doc p{color:var(--muted);font-size:14.5px;line-height:2.2} .doc ul{color:var(--muted);font-size:14.5px} .toc{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:24px 28px;margin:0 auto 40px;max-width:820px} .toc b{font-family:var(--sans);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-num)} .toc ol{margin:12px 0 0;padding-left:20px;color:var(--blue)} .toc a{border-bottom:1px solid transparent}.toc a:hover{border-color:var(--gold)} .relbox{max-width:820px;margin:48px auto 0;padding-top:28px;border-top:1px solid var(--line)} .relbox .label{color:var(--blue)} .relbox a{display:inline-block;margin:6px 12px 6px 0;color:var(--blue);border-bottom:1px solid var(--gold)} .reveal.anim{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease} .reveal.anim.in{opacity:1;transform:none} @media (prefers-reduced-motion:reduce){.reveal.anim{opacity:1!important;transform:none!important;transition:none}.news-item:hover,.svc-card:hover,.gw:hover{transform:none}html{scroll-behavior:auto}} @media(max-width:980px){ .nav-links{display:none}.nav-toggle{display:block} .hero{grid-template-columns:1fr;min-height:auto;padding-top:118px} .hero-panel{margin-top:8px} .intro,.profile-inner,.grid2,.access-grid,.gateway{grid-template-columns:1fr;gap:34px} .columns,.service-grid,.card-row{grid-template-columns:1fr} .info-strip{grid-template-columns:1fr 1fr} .info-item:nth-child(odd){border-right:1px solid var(--line)} .intro .quote,.profile-card{position:relative;top:auto} .section{padding:74px 6vw} .ig-grid{grid-template-columns:repeat(3,1fr)} .news-item{grid-template-columns:1fr;gap:6px} .footer-grid{grid-template-columns:1fr 1fr} } @media(max-width:560px){ .info-strip{grid-template-columns:1fr}.info-item{border-right:0!important} .footer-grid{grid-template-columns:1fr} .hero h1{font-size:clamp(36px,10vw,52px)} } .footer-col .fh{font-family:var(--sans);letter-spacing:.1em;font-size:12px;color:var(--gold2);margin:0 0 12px} .footer-col .fh.big{font-family:var(--latin);letter-spacing:.18em;font-size:15px;color:var(--white)} .hero .label,.service .label,.faq .label,.contact .label{color:var(--gold2)}.tower-card{position:relative;min-height:440px;border:1px solid rgba(240,216,145,.42);border-radius:210px 210px 10px 10px;overflow:hidden;box-shadow:var(--shadow);isolation:isolate}.tower-card img,.tower-card .tower-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.tower-card:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(8,24,43,.12),rgba(8,24,43,.62))}.tower-card:after{content:'';position:absolute;inset:16px;border:1px solid rgba(240,216,145,.5);border-radius:200px 200px 6px 6px;pointer-events:none}.tower-label{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);font-family:var(--latin);font-size:38px;letter-spacing:.26em;color:rgba(255,250,240,.9);text-shadow:0 2px 14px rgba(0,0,0,.45)}@media(max-width:980px){.tower-card{min-height:300px;border-radius:150px 150px 8px 8px}}.mapframe{position:relative}.mapph{appearance:none;width:100%;height:100%;border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;background:linear-gradient(135deg,#eae2cf,#f6efdd);color:var(--blue);font-family:var(--serif)}.mapph:hover{background:linear-gradient(135deg,#e6ddc7,#f2ead6)}.mapph:focus-visible{outline:2px solid var(--gold);outline-offset:-4px}.mapph .mapph-title{display:block;font-family:var(--sans);font-weight:700;letter-spacing:.1em;font-size:14px;color:var(--blue);margin-bottom:8px}.mapph .mapph-title:before{content:'';display:block;width:30px;height:30px;margin:0 auto 12px;border:2px solid var(--gold);border-radius:50% 50% 50% 0;transform:rotate(-45deg)}.mapph .mapph-note{display:block;font-size:12px;color:var(--muted);line-height:1.7;max-width:280px}.mapph.loaded{padding:0;background:none;cursor:default}