/* SEMELIOR. CSP: no inline styles. */
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/jetbrains-mono-500.v4.woff2") format("woff2")}
@font-face{font-family:"Zen Kaku Gothic New";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/zen-kaku-gothic-new-400.v4.woff2") format("woff2")}
@font-face{font-family:"Zen Kaku Gothic New";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/zen-kaku-gothic-new-500.v4.woff2") format("woff2")}
@font-face{font-family:"Zen Kaku Gothic New";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/zen-kaku-gothic-new-700.v4.woff2") format("woff2")}
:root{--paper:#F3F0E8;--paper-deep:#E8E0D2;--card:#FBF9F4;--dawn:#F7E3C8;--ink:#1B1F21;--ink-weak:#53595C;--rule:#D6CDBE;--rule-deep:#C9BEAD;--teal:#0B7F7A;--teal-deep:#0A6E69;--amber:#D4823A;--amber-text:#8A5016;--amber-deep:#8A5016;--night:#E8E0D2;--night-face:#FBF9F4;--night-rule:#D6CDBE;--night-text:#1B1F21;--night-weak:#53595C;--night-teal:#0A6E69;--glow-amber:#8A5016;--white:#FFFFFF;--field:#7A776F;--mincho:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;--mono:"JetBrains Mono",ui-monospace,Consolas,monospace;--gothic:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;--ease:cubic-bezier(.25,1,.5,1);--e-s:cubic-bezier(.33,1,.68,1);--e-in:cubic-bezier(.25,1,.5,1);--e-loop:cubic-bezier(.45,0,.55,1);--header-h:76px;--gutter:64px;--sec-pad:152px}
@media (max-width:1023px){:root{--gutter:40px;--sec-pad:104px}}
@media (max-width:767px){:root{--header-h:60px;--gutter:20px;--sec-pad:72px}}
@media (max-width:360px){:root{--gutter:16px}}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
html.rm{scroll-behavior:auto}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--gothic);font-size:17px;line-height:2;letter-spacing:.04em;overflow-x:clip;-webkit-font-smoothing:antialiased;line-break:strict}
@media (max-width:767px){body{font-size:16px;line-height:1.9}}
img{max-width:100%;height:auto;display:block}
a{color:var(--teal-deep);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
a:hover{color:var(--ink)}
p{margin:0}
ul,ol{margin:0;padding:0}
h1,h2,h3{margin:0;font-weight:500}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:2px}
.vh{position:absolute !important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:fixed;left:16px;top:-100px;z-index:200;background:var(--ink);color:var(--paper);padding:12px 20px;border-radius:4px;font-weight:700;text-decoration:none}
.skip:focus{top:12px;color:var(--paper)}
.wrap{width:100%;max-width:calc(1200px + var(--gutter) * 2);margin:0 auto;padding:0 var(--gutter)}
.nw{display:inline-block}
.h2,.faq summary{word-break:auto-phrase}
.h2{font-family:var(--gothic);font-weight:700;font-size:40px;line-height:1.5;letter-spacing:.05em;font-feature-settings:"palt"}
@media (max-width:767px){.h2{font-size:26px}}
.body{max-width:34em}
.body + .body{margin-top:1em}
.note{font-size:14px;line-height:1.9;color:var(--ink-weak)}
.label-en{font-family:var(--mono);font-weight:500;font-size:12px;line-height:1.5;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-weak)}
.free-word{color:var(--amber-text);font-weight:700}
.amber-dot{width:8px;height:8px;border-radius:50%;background:var(--amber);flex:none;display:inline-block}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:56px;padding:0 32px;border-radius:999px;font-family:var(--gothic);font-weight:700;font-size:16px;line-height:1;letter-spacing:.08em;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color .2s ease,color .2s ease,border-color .2s ease}
.btn-primary{background:var(--teal);color:var(--white);border:1px solid var(--teal)}
.btn-primary:hover{background:var(--teal-deep);border-color:var(--teal-deep);color:var(--white)}
.btn-sm{min-height:44px;padding:0 22px;font-size:15px}
@media (max-width:767px){.btn{min-height:52px;max-width:100%;white-space:normal;line-height:1.4;text-align:center;padding-top:8px;padding-bottom:8px}
.btn-sm{min-height:44px;padding-top:0;padding-bottom:0}}
.arrow{display:inline-block;transition:transform .2s ease}
a:hover .arrow,.btn:hover .arrow{transform:translateX(4px)}
.tlink{display:inline-flex;align-items:center;min-height:44px;gap:.4em;font-weight:500}
.site-header{position:fixed;inset:0 0 auto 0;z-index:50;height:var(--header-h);background:rgba(245,247,247,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid transparent;transition:border-color .25s ease}
.site-header.is-scrolled{border-bottom-color:var(--rule)}
.site-header .wrap{height:100%;display:flex;align-items:center;gap:24px}
.brand{display:block;flex:none;padding:6px 0}
.brand img{height:34px;width:auto}
@media (max-width:767px){.brand{padding:9px 0}
.brand img{height:26px}}
.gnav{margin-left:auto}
.gnav ul{list-style:none;display:flex;gap:2px}
.gnav a{display:inline-flex;align-items:center;min-height:44px;padding:0 13px;color:var(--ink);text-decoration:none;font-size:15px;font-weight:500;letter-spacing:.06em;position:relative}
.gnav a::after{content:"";position:absolute;left:13px;right:13px;bottom:7px;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}
.gnav a:hover::after{transform:scaleX(1)}
.gnav a[aria-current="page"]::after{transform:scaleX(1);height:2px;background:var(--teal-deep)}
.header-cta{flex:none}
.menu-btn{display:none;flex:none;width:44px;height:44px;border:1px solid var(--rule);background:transparent;border-radius:999px;cursor:pointer;position:relative;padding:0}
.menu-btn span{position:absolute;left:13px;right:13px;height:1px;background:var(--ink);transition:transform .2s ease}
.menu-btn span:nth-child(1){top:18px}
.menu-btn span:nth-child(2){top:25px}
.menu-btn[aria-expanded="true"] span:nth-child(1){transform:translateY(3.5px) rotate(45deg)}
.menu-btn[aria-expanded="true"] span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg)}
@media (max-width:1100px){.gnav a{padding:0 9px;font-size:14.5px;letter-spacing:.04em}
.gnav a::after{left:9px;right:9px}
.site-header .wrap{gap:16px}}
@media (max-width:1023px){.gnav{display:none}
.header-cta{margin-left:auto}
.menu-btn{display:block}
.site-header .wrap{gap:10px}}
html:not(.js-ready) button.menu-btn{display:none}
@media (max-width:767px){.header-cta .long{display:none}}
@media (min-width:768px){.header-cta .short{display:none}}
.menu{position:fixed;inset:0;z-index:45;background:var(--paper);padding:calc(var(--header-h) + 24px) var(--gutter) 32px;display:flex;flex-direction:column;overflow-y:auto;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility 0s .25s}
.menu.is-open{opacity:1;visibility:visible;transition:opacity .25s ease}
.menu ul{list-style:none}
.menu li{border-bottom:1px solid var(--rule)}
.menu li a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px;font-family:var(--mincho);font-weight:700;font-size:24px;letter-spacing:.04em;color:var(--ink);text-decoration:none}
.menu li a[aria-current="page"]{color:var(--teal-deep)}
.menu li a small{font-family:var(--gothic);font-size:12px;letter-spacing:.18em;color:var(--ink-weak)}
.menu .menu-cta{margin-top:auto;padding-top:32px}
.menu .menu-cta .btn{width:100%}
.menu .menu-cta p{margin-top:12px;text-align:center;font-size:16px;color:var(--ink-weak)}
html.menu-open body{overflow:hidden}
.open-note{display:flex;align-items:center;gap:10px;font-size:15px;line-height:1.7}
.section{padding:var(--sec-pad) 0;position:relative}
.section.deep{background:var(--paper-deep)}
.sec-label{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding-bottom:16px;border-bottom:1px solid var(--rule);margin-bottom:48px}
.sec-label .ja{font-size:15px;color:var(--ink-weak);letter-spacing:.06em}
.deep .sec-label{border-bottom-color:var(--rule-deep)}
@media (max-width:767px){.sec-label{margin-bottom:24px}}
.faq{border-top:1px solid var(--rule-deep)}
.faq details{border-bottom:1px solid var(--rule-deep)}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:flex-start;gap:16px;padding:24px 0;min-height:44px;font-family:var(--mincho);font-weight:700;font-size:20px;line-height:1.6;letter-spacing:.04em}
.faq summary::-webkit-details-marker{display:none}
.faq .q{color:var(--teal-deep);flex:none}
.faq .qt{flex:1}
.faq .pm{flex:none;position:relative;width:22px;height:22px;margin-top:6px}
.faq .pm::before,.faq .pm::after{content:"";position:absolute;left:3px;right:3px;top:10.5px;height:1px;background:var(--ink);transition:transform .2s ease}
.faq .pm::after{transform:rotate(90deg)}
.faq details[open] .pm::after{transform:rotate(0deg)}
.faq .a{padding:0 38px 28px 38px}
.faq .a p{max-width:36em}
@media (max-width:767px){.faq summary{font-size:18px;gap:12px}
.faq .a{padding:0 0 24px 30px}}
.site-footer{padding:88px 0 40px;border-top:1px solid var(--rule)}
.footer-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:32px 40px;align-items:flex-start}
.footer-logo{display:block;padding:8px 0}
.footer-logo img{width:240px;height:auto}
.footer-tag{margin-top:12px;font-size:15px;color:var(--ink-weak);letter-spacing:.06em}
.fnav ul{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,auto));gap:0 40px}
.fnav a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);text-decoration:none;font-size:15px;font-weight:500}
.fnav a:hover{text-decoration:underline}
.footer-bottom{margin-top:48px;padding-top:18px;border-top:1px solid var(--rule);display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;align-items:center}
.footer-bottom .note{font-size:15px}
.to-top{display:inline-flex;align-items:center;min-height:44px;font-size:15px}
@media (max-width:767px){.site-footer{padding:64px 0 32px}
.footer-logo img{width:200px}
.fnav ul{gap:0 24px}}
@media (max-width:1023px){.note{font-size:15px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important;transition-delay:0s !important}
[data-reveal]{opacity:1 !important;transform:none !important;filter:none !important;clip-path:none !important}}
@media (max-width:389px){.fnav ul{grid-template-columns:1fr}}
.mono{font-family:var(--mono);font-weight:500;letter-spacing:.08em}
@property --angle{syntax:"<angle>";inherits:false;initial-value:0deg}
.h2{font-weight:500;letter-spacing:.04em}
.h2{font-size:40px}
@media (max-width:767px){.h2{font-size:26px}}
.site-header{background:rgba(243,240,232,.92);transition:height .3s var(--e-s),border-color .3s var(--e-s)}
@media (min-width:1024px){.site-header.is-compact{height:60px}}
.gnav ul{position:relative}
.gnav-ink{position:absolute;left:0;bottom:7px;height:2px;width:var(--iw,0);transform:translateX(var(--ix,0));background:var(--teal-deep);transition:transform .3s var(--e-s),width .3s var(--e-s),opacity .2s;pointer-events:none;opacity:0}
.gnav-ink.is-on{opacity:1}
html.js-ready .gnav.has-ink a::after{display:none}
.progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;display:none}
.progress span{display:block;height:100%;width:100%;background:var(--teal);transform-origin:left;transform:scaleX(var(--p,0))}
html.js-ready .progress{display:block}
.btn{position:relative;isolation:isolate;overflow:hidden}
.btn-primary::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1.5px;background:conic-gradient(from var(--angle),transparent 0 62%,#0B7F7A 72%,#D4823A 84%,#0B7F7A 94%,transparent 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;pointer-events:none}
.btn-primary:hover::before,.btn-primary:focus-visible::before{opacity:1;animation:edge-sweep 1.2s linear 1}
.btn .arrow{transition:none}
a.btn:hover .arrow,.btn:hover .arrow{transform:none;animation:arrow-loop .3s var(--e-s) 1}
.ripple{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:rgba(11,127,122,.22);pointer-events:none;z-index:-1}
.tlink{background:linear-gradient(currentColor,currentColor) left bottom / 0 1px no-repeat;transition:background-size .3s var(--e-s)}
.tlink:hover{background-size:100% 1px}
.sand{background-color:var(--paper-deep);position:relative;overflow-x:clip}
.sand .sec-label{border-color:var(--rule-deep)}
.arc{position:absolute;left:-12%;right:-12%;bottom:100%;height:calc(var(--arc,0) * 1px);border-radius:50% 50% 0 0 / 100% 100% 0 0;background:var(--paper-deep);pointer-events:none}
.sand .arc-dot{position:absolute;left:0;top:-4px;width:8px;height:8px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 2px var(--paper-deep);opacity:0;pointer-events:none}
.sand.is-lit .arc-dot{animation:run-x .9s var(--e-in) 1}
html.js-ready:not(.rm) [data-reveal]{opacity:0;transform:translateY(24px);filter:blur(4px)}
html.js-ready:not(.rm) [data-reveal].is-in{opacity:1;transform:none;filter:none;transition:opacity .6s var(--e-in),transform .6s var(--e-in),filter .6s var(--e-in);transition-delay:calc(var(--rd,0) * 60ms)}
html.js-ready:not(.rm) [data-reveal="clip"]{opacity:1;filter:none;clip-path:inset(100% 0 0 0);transform:translateY(12px)}
html.js-ready:not(.rm) [data-reveal="clip"].is-in{clip-path:inset(0 0 -.2em 0);transform:none;transition:clip-path .6s var(--e-in),transform .6s var(--e-in)}
html.js-ready:not(.rm) [data-reveal].rv-now{transition:none}
@media (min-width:1024px){.section .h2{translate:var(--hx,0px) 0}}
.btn-primary[aria-busy="true"],.btn-primary[aria-busy="true"]:hover{background:var(--paper-deep);border-color:var(--rule-deep);color:var(--ink);cursor:progress}
.btn-primary[aria-busy="true"]::before{display:none}
@keyframes edge-sweep{from{--angle:0deg}to{--angle:360deg}}
@keyframes arrow-loop{0%{transform:translateX(0);opacity:1}45%{transform:translateX(14px);opacity:0}46%{transform:translateX(-14px);opacity:0}100%{transform:translateX(0);opacity:1}}
@keyframes run-x{0%{opacity:1;transform:translateX(0)}90%{opacity:1}100%{opacity:0;transform:translateX(calc(100vw - 8px))}}

/* Official SNS profile links in the existing fixed header. */
.header-social{display:flex;align-items:center;gap:2px;flex:none}
.social-link,.footer-social-icon{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;flex:none;border:1px solid var(--rule);border-radius:999px;background:#fff;transition:border-color .2s ease,background-color .2s ease}
.social-link:hover,.footer-social:hover .footer-social-icon{border-color:var(--teal-deep);background:#fff}
.social-link img,.footer-social-icon img{width:16px;height:16px;object-fit:contain}
.social-link img.instagram-glyph,.footer-social-icon img.instagram-glyph{width:29px;height:29px}
.footer-social{display:inline-flex !important;align-items:center;gap:10px;text-decoration:none !important}
.footer-social:hover span:last-child{text-decoration:underline}
@media (max-width:1180px){.gnav{display:none}.menu-btn,.menu-d{display:block}.header-cta{margin-left:auto}.site-header .wrap{gap:10px}}
@media (min-width:1024px) and (max-width:1180px){.page-notfound .menu-d{display:block !important}}
@media (max-width:767px){.site-header .wrap{gap:5px}.header-social{gap:0}.header-cta{padding-inline:12px}}
@media (max-width:389px){.brand img{height:20px}.site-header .wrap{gap:3px}.header-cta{padding-inline:10px;font-size:14px}.menu-btn{width:44px;height:44px}}
