@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400;1,500&family=DM+Sans:wght@400;500;600;700;800&family=Noto+Sans+JP:wght@400;500;600;700;800&family=Noto+Serif+JP:wght@400;500;600&display=swap');
:root{--ink:#171c1d;--paper:#f2f3ed;--lime:#a6fa11;--line:#c9cec5;font-family:'DM Sans','Noto Sans JP',sans-serif;color:var(--ink);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--paper)}body.dialog-open{overflow:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}[hidden]{display:none!important}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
.sample{height:25px;display:flex;justify-content:center;align-items:center;gap:9px;background:#0a0c0d;color:#ccc;font-size:9px;letter-spacing:.13em}.sample span{color:var(--lime)}
.header{height:90px;background:var(--ink);color:#fff;display:flex;align-items:center;gap:45px;padding:0 clamp(24px,5vw,78px);position:relative;z-index:10;border-bottom:1px solid #ffffff31}.brand{font-size:35px;letter-spacing:-.065em;line-height:.83;font-weight:800}.brand-dot{color:var(--lime)}.brand small{display:block;font-weight:500;font-size:8px;letter-spacing:.21em;line-height:1.2;margin-top:8px}.nav{display:flex;gap:clamp(18px,2.7vw,43px);align-items:center;margin-left:auto}.nav a{font-size:10px;font-weight:600;letter-spacing:.15em}.nav a:hover{color:var(--lime)}.header-cta{border:1px solid var(--lime);background:var(--lime);color:var(--ink);font-size:11px;font-weight:800;letter-spacing:.03em;padding:16px 20px;display:flex;gap:25px}.header-cta:hover{background:transparent;color:var(--lime)}.menu{display:none}.mobile-nav{display:none}
.hero{height:min(800px,calc(100svh - 115px));min-height:650px;color:#fff;position:relative;overflow:hidden;background:var(--ink)}.hero-split{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr}.hero-panel{overflow:hidden}.hero-panel img{width:100%;height:100%;max-width:none;object-fit:cover;object-position:center 52%}.hero-panel:first-child img{object-position:center 60%}.hero-panel:last-child img{object-position:56% 38%}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#05090829,#09100a16 45%,#090c104b),linear-gradient(0deg,#0a1012cc,transparent 29%,transparent 65%,#080a0b4d)}.hero-index{position:absolute;left:clamp(27px,5vw,78px);top:30px;margin:0;font-size:10px;font-weight:700;letter-spacing:.18em;z-index:2}.hero-message{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);z-index:2;text-align:center;width:min(1110px,94%)}.hero-overline{font-size:11px;letter-spacing:.27em;font-weight:600}.hero h1{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;letter-spacing:-.045em;line-height:.82;font-size:clamp(87px,9.3vw,158px);margin:30px 0 35px;text-shadow:0 2px 30px #0006}.hero h1 em{font-weight:400}.hero-message p{font-family:'Noto Serif JP',serif;font-size:clamp(19px,2vw,28px);letter-spacing:.16em;margin:0;text-shadow:0 1px 16px #0008}.hero-bottom{position:absolute;z-index:2;left:clamp(27px,5vw,78px);right:clamp(27px,5vw,78px);bottom:35px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:25px}.hero-bottom>span{font-size:12px;letter-spacing:.08em}.hero-bottom button{border:0;background:var(--lime);padding:19px 26px;min-width:240px;display:flex;justify-content:space-between;gap:15px;color:var(--ink);font-size:12px;font-weight:800}.hero-bottom button:hover{background:#fff}.hero-bottom a{text-align:right;font-size:9px;font-weight:700;letter-spacing:.15em}
.ticker{display:flex;justify-content:space-around;align-items:center;gap:20px;padding:18px 35px;background:var(--lime);white-space:nowrap;overflow:hidden;font-size:12px;font-weight:800;letter-spacing:.1em}.ticker b{font-size:16px}
.section{padding:clamp(75px,8vw,130px) clamp(24px,6vw,100px)}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.24em;margin:0 0 35px}.philosophy{background:var(--paper)}.philosophy-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:10vw;align-items:end}.philosophy h2,.flow h2,.contact h2{font-family:'Noto Serif JP',serif;font-size:clamp(40px,5vw,78px);line-height:1.32;letter-spacing:.01em;font-weight:400;margin:0}.philosophy h2 i,.contact h2 em{font-weight:400;font-style:normal;color:#5a6b55}.hairline{display:block;width:140px;height:2px;background:var(--ink);margin-top:58px}.philosophy-copy p{font-size:15px;line-height:2.2;margin:0 0 20px}.philosophy-copy .demo-note{color:#777e79;font-size:11px;line-height:1.8;margin-top:40px}
.focus{height:min(750px,60vw);min-height:540px;position:relative;overflow:hidden;background:#ddd}.focus>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.focus-content{position:absolute;left:clamp(24px,6vw,100px);top:50%;transform:translateY(-50%);z-index:2}.focus-content>p{font-size:10px;letter-spacing:.2em;font-weight:800;margin:0 0 30px}.focus h2{font-size:clamp(95px,11.2vw,200px);line-height:.77;letter-spacing:-.085em;color:var(--lime);font-weight:800;margin:24px 0;text-shadow:0 1px 1px #2222}.focus-content>span{font-size:15px;font-weight:700;line-height:1.8;display:inline-block;background:#f3f4edcc;padding:8px 16px}.focus-side{position:absolute;right:33px;top:30px;font-size:10px;letter-spacing:.17em;font-weight:700;writing-mode:vertical-rl}
.program{background:#f7f8f3}.section-heading{display:grid;grid-template-columns:1.2fr .8fr;align-items:end;gap:40px;margin-bottom:56px}.section-heading .eyebrow{grid-column:1/-1;margin-bottom:0}.section-heading h2{font-family:'Noto Serif JP',serif;font-weight:400;font-size:clamp(36px,4.3vw,68px);line-height:1.4;margin:0}.section-heading h2 em{font-style:normal;color:#71845a}.section-heading>p:last-child{font-size:14px;line-height:2;max-width:370px}.program-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.program-grid article{border:1px solid #bfc6bb;min-height:340px;padding:28px;display:flex;flex-direction:column;background:#fff}.number{font-size:10px;font-weight:800;letter-spacing:.14em}.program-icon{font-size:70px;line-height:1;margin:auto 0 23px;font-weight:400;color:#829283}.program-grid h3{font-size:23px;margin:0 0 16px;letter-spacing:-.03em}.program-grid p{font-size:13px;line-height:1.9;margin:0}.program-note{font-size:11px;color:#737d75;margin:23px 0 0}
.statement{text-align:center;background:var(--ink);color:#fff;padding:105px 25px 110px}.statement>p{font-family:'Cormorant Garamond',serif;color:var(--lime);font-style:italic;font-size:clamp(29px,3.8vw,60px);margin:0 0 18px}.statement h2{font-family:'Noto Serif JP',serif;font-size:clamp(30px,3.3vw,51px);font-weight:400;line-height:1.7;letter-spacing:.08em;margin:0 0 42px}.statement a{display:inline-flex;gap:60px;border-bottom:1px solid var(--lime);padding:0 4px 12px;color:var(--lime);font-size:11px;letter-spacing:.18em;font-weight:700}
.flow{background:#e6e8e2}.flow-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw}.flow ol{padding:0;margin:0;list-style:none;border-top:1px solid #87938a}.flow li{display:grid;grid-template-columns:55px 1fr;gap:20px;border-bottom:1px solid #aeb7ad;padding:26px 0}.flow li>span{font-family:'Cormorant Garamond',serif;font-size:30px;color:#687b67}.flow h3{font-size:23px;margin:0 0 8px}.flow li p{font-size:13px;line-height:1.9;margin:0}
.contact{background:var(--ink);color:#fff}.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:8vw}.contact h2 em{color:var(--lime)}.contact-lead>p:not(.eyebrow){font-size:14px;line-height:2.1;margin:25px 0 35px;max-width:440px}.contact-actions{display:flex;flex-direction:column;gap:11px}.contact-actions button,.contact-actions a{border:1px solid #7b8381;background:transparent;color:#fff;padding:18px 20px;display:flex;justify-content:space-between;text-align:left;font-size:12px;font-weight:700;letter-spacing:.05em}.contact-actions button:hover,.contact-actions a:hover{background:var(--lime);border-color:var(--lime);color:var(--ink)}.contact-form{background:#f7f8f3;color:var(--ink);padding:clamp(26px,4vw,55px);box-shadow:12px 12px 0 var(--lime)}.contact-form h3{font-family:'Noto Serif JP',serif;font-size:27px;font-weight:500;margin:0 0 9px}.form-note{font-size:11px;line-height:1.8;color:#667068;margin:0 0 25px}.contact-form label{display:block;font-size:12px;font-weight:700;margin:17px 0}.contact-form label b{font-size:10px;color:#697d4b;margin-left:7px}.contact-form input,.contact-form select,.contact-form textarea{display:block;width:100%;border:1px solid #bfc8bd;background:#fff;border-radius:0;color:var(--ink);font-size:14px;padding:12px 14px;margin-top:9px;min-height:46px}.contact-form textarea{resize:vertical}.submit{border:0;background:var(--ink);color:#fff;width:100%;margin-top:8px;padding:17px 20px;display:flex;justify-content:space-between;text-align:left;font-size:12px;font-weight:800}.submit:hover{background:#41513e}.result{background:#ecf8d6;border-left:4px solid #6f9c20;padding:13px;margin-top:17px;font-size:12px;line-height:1.8;font-weight:600}
.footer{background:#0b0e0f;color:#fff;padding:58px clamp(24px,6vw,100px) 25px}.footer strong{font-size:40px;line-height:1;font-weight:800;letter-spacing:-.07em}.footer strong span{color:var(--lime)}.footer small{display:block;font-size:8px;letter-spacing:.18em;margin-top:5px}.footer p{font-size:11px;line-height:1.8;color:#b7bdbc;margin:25px 0 0}.footer-end{border-top:1px solid #5a6261;margin-top:60px;padding-top:18px;display:flex;justify-content:space-between;gap:20px;color:#8c9694;font-size:10px;letter-spacing:.08em}.float-bot{position:fixed;right:20px;bottom:20px;z-index:30;border:1px solid #fff;background:var(--lime);color:var(--ink);padding:15px 20px;font-size:12px;font-weight:800;box-shadow:0 8px 30px #0004}
.overlay{position:fixed;inset:0;z-index:40;background:#070b0cc9}.dialog{position:fixed;z-index:41;background:#fff;color:var(--ink);box-shadow:0 20px 70px #0006}.chat{right:18px;bottom:18px;width:min(420px,calc(100vw - 28px));height:min(610px,calc(100vh - 36px));display:flex;flex-direction:column;overflow:hidden}.chat-head{background:var(--ink);color:#fff;padding:20px;display:flex;justify-content:space-between;align-items:start}.chat-head span{font-size:10px;color:var(--lime);font-weight:800;letter-spacing:.13em}.chat-head h2{font-size:19px;margin:6px 0 0}.close{background:none;border:0;color:inherit;font-size:29px;padding:0;line-height:1}.messages{background:#f2f4ee;flex:1;padding:20px;overflow:auto;display:flex;flex-direction:column;gap:11px}.message{border:1px solid #e1e5dc;background:#fff;padding:13px 15px;font-size:13px;line-height:1.8;max-width:90%;font-weight:600;white-space:pre-wrap}.message.assistant{align-self:start}.message.user{align-self:end;background:var(--lime);border-color:var(--lime)}.choices{padding:15px;display:flex;flex-wrap:wrap;gap:8px}.choices button{border:1px solid #82956d;background:#fff;color:#3b5130;font-size:12px;font-weight:700;padding:9px 12px}.choices button:hover{background:var(--lime);color:var(--ink)}.chat-foot{padding:0 16px 12px;font-size:10px;color:#68736b;margin:0}.line-dialog{width:min(450px,calc(100vw - 32px));top:50%;left:50%;transform:translate(-50%,-50%);padding:45px;border-top:8px solid var(--lime)}.line-dialog .close{position:absolute;right:18px;top:13px}.line-logo{background:#25c374;color:#fff;border-radius:9px;padding:8px 13px;display:inline-block;font-weight:900;margin-bottom:28px}.line-dialog h2{font-family:'Noto Serif JP',serif;font-weight:400;font-size:30px;line-height:1.5;margin:0 0 17px}.line-dialog p{font-size:13px;line-height:1.9}.dialog-action{border:0;background:var(--ink);color:#fff;padding:14px 20px;margin-top:17px;font-size:12px;font-weight:700}.line-dialog>a{display:block;margin-top:18px;color:#4b653d;font-size:13px;font-weight:700}
@media(max-width:900px){.nav{gap:16px}.header-cta{display:none}.hero h1{font-size:clamp(80px,11vw,114px)}.hero-bottom{grid-template-columns:1fr auto}.hero-bottom>a{display:none}.philosophy-grid{gap:5vw}.focus h2{font-size:clamp(85px,13vw,140px)}}
@media(max-width:700px){.sample{font-size:8px}.header{height:70px;padding:0 22px}.brand{font-size:29px}.brand small{font-size:7px}.nav{display:none}.menu{margin-left:auto;display:flex;flex-direction:column;justify-content:center;gap:6px;border:0;background:transparent;width:38px;height:40px}.menu span{width:100%;height:2px;background:#fff}.mobile-nav:not([hidden]){display:flex}.mobile-nav{position:absolute;top:95px;left:0;right:0;z-index:12;background:var(--ink);color:#fff;padding:15px 24px 24px;flex-direction:column;box-shadow:0 12px 20px #0005}.mobile-nav a,.mobile-nav button{border:0;border-bottom:1px solid #ffffff3a;background:transparent;color:#fff;padding:15px 0;text-align:left;font-size:14px}.hero{height:790px;min-height:790px}.hero-split{grid-template-columns:37% 63%}.hero-panel:first-child img{object-position:38% center}.hero-panel:last-child img{object-position:60% center}.hero-shade{background:linear-gradient(0deg,#050809e8 0%,#05080968 35%,transparent 62%,#05080942)}.hero-index{left:23px;top:22px;font-size:8px}.hero-message{top:47%;width:94%}.hero-overline{font-size:9px}.hero h1{font-size:clamp(62px,14vw,91px);margin:20px 0 27px;line-height:.88}.hero-message p{font-size:17px}.hero-bottom{left:23px;right:23px;bottom:35px;display:flex;flex-direction:column;align-items:stretch;gap:15px}.hero-bottom>span{font-size:11px}.hero-bottom button{min-width:0;width:100%}.ticker{justify-content:start;gap:22px;font-size:10px;padding:14px 20px}.ticker span:nth-of-type(n+3),.ticker b:nth-of-type(n+3){display:none}.section{padding:76px 24px}.philosophy-grid,.section-heading,.flow-grid,.contact-grid{grid-template-columns:1fr;gap:30px}.philosophy h2,.flow h2,.contact h2{font-size:clamp(39px,9vw,57px)}.hairline{margin-top:30px}.philosophy-copy p{font-size:13px}.focus{height:690px;min-height:690px}.focus>img{object-position:57% center}.focus-content{top:32%;left:23px}.focus h2{font-size:clamp(78px,21vw,120px)}.focus-content>span{font-size:12px}.focus-side{display:none}.section-heading .eyebrow{grid-column:auto}.section-heading h2{font-size:clamp(32px,8vw,47px)}.section-heading>p:last-child{font-size:12px}.program-grid{grid-template-columns:1fr}.program-grid article{min-height:235px}.program-icon{font-size:45px}.statement{padding:80px 22px}.statement h2{font-size:clamp(25px,6vw,36px)}.flow li{grid-template-columns:40px 1fr}.contact-form{box-shadow:7px 7px 0 var(--lime)}.footer-end{flex-wrap:wrap}.line-dialog{padding:30px 25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

