:root{font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN",sans-serif;font-size:112.5%;line-height:1.8;line-break:strict;word-break:normal;color:#172a24;background:#f6f7f4;font-synthesis:none;color-scheme:light}
*{box-sizing:border-box;min-width:0}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}[hidden]{display:none!important}h1,h2,p{margin:0}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #62b2e6;outline-offset:5px}
/* OGPと同じ、地球→二行の名前→タグラインという順序。 */
.forest{position:fixed;inset:0;background:linear-gradient(90deg,rgba(3,17,12,.78),rgba(3,17,12,.4) 48%,rgba(3,17,12,.1)),linear-gradient(0deg,rgba(3,17,12,.35),transparent 65%),url('/guide-book/assets/forest-cover.webp') center/cover;z-index:-1;transition:opacity .7s}
.entrance{min-height:100svh;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;max-width:1280px;margin:auto;padding:48px 72px;color:#fffef6}
.brand{display:block;margin-bottom:34px;max-width:100%}.brand img{display:block;width:88px;height:88px;filter:brightness(0) invert(1);margin:0 0 24px}
.brand h1{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:clamp(1.85rem,13vw,4.5rem);font-weight:500;letter-spacing:-.035em;line-height:1.02;overflow-wrap:anywhere}
.brand h1 span{display:block}.brand-tagline{font-size:1.05rem;font-weight:400;letter-spacing:.015em;line-height:1.75;margin-top:20px;text-align:left}
.gate-form{width:100%;max-width:340px}.gate-form label{display:block;text-align:left;font-size:.94rem;margin-bottom:12px;font-weight:500}.phrase-field{display:flex;align-items:center;background:rgba(1,16,13,.57);border:1px solid rgba(255,255,255,.7);border-radius:14px;overflow:hidden;backdrop-filter:blur(14px)}.phrase-field:focus-within{outline:3px solid #b5def4;outline-offset:4px}.phrase-field input{color:#fff;background:none;border:0;outline:0!important;width:100%;height:60px;padding:12px 16px}.phrase-field button{color:#fff;background:none;border:0;padding:8px 14px;min-height:52px;flex:none;font-size:.9rem}
.primary{border:0;border-radius:14px;background:#203e34;color:#fff;width:100%;min-height:58px;padding:14px 20px;font-size:1rem;font-weight:600;display:flex;justify-content:space-between;align-items:center;gap:10px;transition:background .2s,transform .2s}.primary:hover{background:#2e5446}.primary:active{transform:scale(.985)}.primary.light{background:#f4f8f4;color:#203e34}.primary.light:hover{background:#fff}.primary span{font-size:1.4rem;line-height:1}
.error:empty{display:none}.error{font-size:.95rem;line-height:1.65;margin:16px 0;color:#9b2925}.gate-form .error{color:#fff;background:#6b252be6;border-radius:10px;padding:12px}.gate-form .primary{margin-top:20px}
.registration{max-width:640px;margin:0 auto;padding:48px 40px 80px;animation:arrive .65s both}.registration-brand{display:flex;align-items:center;gap:14px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:1.2rem;letter-spacing:-.035em;font-weight:550;line-height:1.2;margin-bottom:64px}.registration-brand img{flex:none}.registration-brand span{overflow-wrap:anywhere}.registration-layout{display:grid;grid-template-columns:1fr;gap:36px;align-items:start}.eyebrow{font-size:.9rem;font-weight:500;color:#536960;margin-bottom:12px}.registration h1{font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.5;letter-spacing:.02em;font-weight:600;margin-bottom:36px}.registration form label{display:block;font-weight:600;margin:24px 0 9px}.registration input{width:100%;min-height:60px;padding:12px 16px;border:1px solid #99aaa1;border-radius:12px;background:#fff;color:#172a24}.registration input::placeholder{color:#69786f;font-weight:400}.field-note{font-size:.9rem;line-height:1.8;margin:12px 0 28px;color:#4d6258;text-align:justify;text-justify:inter-character}.login-link{display:block;width:fit-content;min-height:44px;padding:14px 0;font-size:.9rem;text-underline-offset:5px;margin-top:12px}
.members-panel{margin-top:0;padding-top:24px;border-top:1px solid #bec9c1}.members-heading{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}.members-heading h2{font-size:1rem;font-weight:600}.members-heading span{font-size:.9rem;color:#506158}.members-panel ul{list-style:none;padding:0;margin:14px 0}.member{display:flex;align-items:center;gap:14px;padding:18px 0;border-bottom:1px solid #dde3de}.member-avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#e1e9e2;flex:none;font-size:1rem;font-weight:500}.member-name{font-weight:550;overflow-wrap:anywhere;line-height:1.5}.member-phone{font-size:.9rem;color:#536258;letter-spacing:.07em}.members-panel>p{font-size:.95rem;color:#536258;margin-top:24px}
body.registering .forest{opacity:0}
.welcome{position:fixed;inset:0;z-index:10;background:#03090f;color:#f1f7ff;overflow:auto;opacity:1;isolation:isolate}
.welcome:before{content:"";position:fixed;inset:0;background:radial-gradient(ellipse at 50% 52%,#14263988,transparent 65%);z-index:-1}
.welcome-inner{min-height:calc(100svh - 60px);display:flex;align-items:center;justify-content:center;flex-direction:column;padding:20px 18px 32px;overflow:hidden}
.welcome-heading{text-align:center;z-index:1;max-width:100%;transition:opacity .9s,transform 1.2s}
.welcome-heading>p{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:1rem;font-weight:500;letter-spacing:-.025em;color:#bac9d8;margin-bottom:16px}
.welcome h1{font-size:clamp(1.55rem,3.5vw,2.4rem);font-weight:500;line-height:1.65;overflow-wrap:anywhere}
.earth{width:min(49svh,540px,92vw);aspect-ratio:1;position:relative;flex:none;transform-origin:50% 50%;margin:0;transform:scale(1)}
.earth img,.earth canvas{position:absolute;inset:0;width:100%;height:100%}
.earth img{object-fit:contain;mix-blend-mode:screen;transition:opacity .6s}.earth canvas{opacity:0;transition:opacity .7s}.earth.is-ready canvas{opacity:1}.earth.is-ready img{opacity:0}
.welcome-footer{z-index:1;text-align:center;color:#c5d4e3;width:min(280px,100%);transition:opacity .8s;line-height:1.8}
.welcome-footer p{font-size:1rem;margin-bottom:18px}
.welcome-enter{display:block;width:100%;min-height:58px;border:1px solid #d5e9eb55;border-radius:999px;padding:14px 32px;background:#deefe8;color:#173b32;font-size:1rem;font-weight:600;line-height:1.6;box-shadow:0 0 40px #a6d1dc14;transition:background .2s,box-shadow .2s}
.welcome-enter span{margin-left:16px}.welcome-enter:hover{background:#f2fcf7;box-shadow:0 0 44px #a6d1dc2a}.welcome-enter:active{background:#c7e1d8}
.welcome-motion{position:relative;display:block;margin:16px 18px 0 auto;z-index:3;min-width:58px;min-height:44px;padding:8px 12px;border:1px solid #a2bbc044;border-radius:999px;background:#0b1b29aa;color:#ccdce6;font-size:.9rem}
.welcome.entering{overflow:hidden;pointer-events:none}.welcome.entering .earth{will-change:transform}.welcome.entering .welcome-heading{opacity:0;transform:translateY(-12px)}.welcome.entering :is(.welcome-footer,.welcome-motion){opacity:0}
.book-preview{position:fixed;inset:0;width:100%;height:100%;border:0;background:#f8f6ed;z-index:5;pointer-events:none}

@keyframes arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes earth-arrive{from{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}@keyframes breathe{50%{opacity:.3}}
@media(max-width:700px){.registration{padding:32px 24px 60px}.registration-brand{margin-bottom:44px;font-size:1.1rem}.registration-layout{grid-template-columns:1fr;gap:40px}.registration h1{margin-bottom:26px}.members-panel{margin-top:0}.entrance{padding:36px 24px}.brand{margin-bottom:30px}.brand img{width:72px;height:72px;margin-bottom:20px}.brand-tagline{font-size:1rem;margin-top:18px}.welcome-inner{padding-top:20px}.earth{width:min(90vw,46svh);margin:10px 0}.welcome-heading>p{margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){*,*:before{animation:none!important;transition-duration:.18s!important}.welcome.entering .earth{transform:none!important}.welcome.entering .welcome-heading{transform:none}}

@media(min-width:701px) and (max-height:760px){.entrance{padding-block:32px}.brand img{width:68px;height:68px;margin-bottom:16px}.brand h1{font-size:3rem}.brand-tagline{font-size:1rem;margin-top:16px}.brand{margin-bottom:26px}}

.primary .button-label{font:inherit;line-height:1.6;text-align:left}
.gate-login{display:inline-block;min-height:44px;margin-top:8px;padding:10px 0;font-size:.9rem;line-height:1.8;color:#fffef6;text-underline-offset:5px}
.gate-login span{display:inline-block;margin-left:6px}
.registration-links{display:flex;justify-content:space-between;gap:0 24px;flex-wrap:wrap}.registration-links .login-link{overflow-wrap:anywhere}

/* LINEへの移動と復帰。長いラベルも拡大時に枠内で折り返す。 */
#line-entry .primary{display:block;text-align:center;text-decoration:none;overflow-wrap:anywhere}
#line-entry #line-status{margin-bottom:24px;text-align:left;overflow-wrap:anywhere}
#line-actions{margin-bottom:24px}
#line-entry .registration-brand{margin-bottom:44px}

#welcome-title:focus,#registration-title:focus,#line-title:focus{outline:none}

/* 登録メッセージの送信窓へ案内。友だち追加が必要な場合も主操作は一つ。 */
.line-finish{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding-top:40px;padding-bottom:48px}
.line-finish h1{font-size:clamp(1.5rem,5vw,2rem);margin-bottom:18px;line-height:1.5;letter-spacing:0}
.line-finish .line-retry{border:0;background:transparent;color:#405d51;text-decoration:underline;text-underline-offset:5px;margin-top:0;padding:12px 0;text-align:left}
#line-entry.line-finish #line-actions{margin-bottom:4px}
.line-fallback{margin:0 0 12px;border-top:1px solid #bec9c1;color:#405d51}
.line-fallback summary{min-height:44px;padding:12px 0;font-size:.9rem;cursor:pointer;text-decoration:underline;text-underline-offset:5px}
.line-fallback .field-note{margin:8px 0 16px;text-align:left}
.line-fallback textarea{display:block;width:100%;min-height:180px;resize:vertical;padding:14px;border:1px solid #99aaa1;border-radius:12px;background:#fff;color:#172a24;font:inherit;font-size:.9rem;line-height:1.7;overflow-wrap:anywhere;word-break:break-all}
.line-fallback .line-copy{display:block;width:100%;min-height:48px;margin-top:12px;padding:10px 16px;border:1px solid #849c90;border-radius:12px;background:#edf2ed;color:#203e34;font:inherit;font-size:.9rem;font-weight:600}
.line-fallback :is(summary,textarea):focus-visible{outline:3px solid #62b2e6;outline-offset:4px}
#line-copy-status:empty{display:none}
.line-progress{width:30px;height:30px;border:2px solid #dbe5df;border-top-color:#315c4b;border-radius:50%;margin-bottom:24px;animation:line-progress 1.1s linear infinite}
@keyframes line-progress{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.line-progress{animation:none}}

/* PD開発室の入口。文字拡大時は自然に縦へ伸びる。 */
.studio-entry{background:#000;color:#f5f5f7;min-height:100svh;display:flex;flex-direction:column;font-size:1rem}
.studio-masthead{width:100%;max-width:1440px;padding:24px 40px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.studio-brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;font:600 1.12rem/1.25 Helvetica,Arial,sans-serif;letter-spacing:-.04em}.studio-brand img{filter:brightness(0) invert(1);flex:none}.studio-brand small{display:block;font:500 .6rem/1.5 Helvetica,Arial,sans-serif;letter-spacing:.16em;color:#b9bfc5;margin-top:5px}
.studio-back{color:#d2d5d9;display:block;padding:10px 0;text-decoration:none;font-size:.85rem;min-height:44px}.studio-back span{margin-left:10px}
.studio-door{position:relative;isolation:isolate;width:100%;max-width:1344px;flex:1;margin:0 auto;padding:28px 48px 48px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:24px;overflow:hidden}
.studio-invitation{position:relative;z-index:1}.studio-kicker{font-size:.8rem;letter-spacing:.16em;color:#bbc6d0;margin:0 0 20px}.studio-entry h1{font-size:clamp(2.2rem,4.4vw,3.8rem);line-height:1.4;letter-spacing:.035em;margin:0 0 20px;font-weight:600;max-width:none}.studio-entry .studio-lead{font-size:1rem;line-height:1.8;color:#c4cbd2;margin:0 0 36px;text-align:left}
.studio-login-panel{max-width:410px}.studio-entry #management-status{font-size:.85rem;color:#bfc7d0;line-height:1.7;margin:0 0 14px;text-align:left}.studio-entry #line-login{display:block;min-height:56px;padding:16px 18px;border-radius:15px;background:#f0f3f7;color:#151c24;text-decoration:none;text-align:center;font-size:.95rem;font-weight:600;border:1px solid #ffffff70;transition:background .2s}.studio-entry #line-login:hover{background:#fff}.studio-access-note{font-size:.75rem;color:#b9c1cb;margin:12px 0 0;text-align:center}
.studio-planet{position:relative;width:min(100%,65svh);aspect-ratio:1;justify-self:center;display:grid;place-items:center;isolation:isolate}.studio-planet img{width:100%;height:auto;filter:brightness(1.25)}.studio-orbit{position:absolute;inset:0;border:1px solid #9ab6d23b;border-radius:50%;transform:rotate(-28deg) scaleY(.78)}.studio-planet-caption{display:none}.studio-entry a:focus-visible{outline:3px solid #b4d5ff;outline-offset:5px}
@media(max-width:700px){.studio-masthead{padding:16px 22px;gap:6px 16px}.studio-brand{font-size:.95rem}.studio-brand img{width:36px;height:36px}.studio-back{font-size:.8rem}.studio-door{display:flex;align-items:center;padding:20px 26px 28px}.studio-invitation{width:100%}.studio-kicker{margin-bottom:16px}.studio-entry h1{font-size:2.1rem;line-height:1.4}.studio-entry .studio-lead{margin-bottom:clamp(32px,10svh,80px)}.studio-planet{position:absolute;right:-110px;top:18%;width:min(360px,65svh);opacity:.58;z-index:-1;pointer-events:none}.studio-login-panel{max-width:none;padding:20px;border:1px solid #ffffff26;border-radius:20px;background:#10151cdb;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.studio-entry #line-login{font-size:.9rem;padding:14px 10px}.studio-entry #management-status{font-size:.8rem}}
@media(max-height:650px) and (max-width:700px){.studio-masthead{padding-top:10px;padding-bottom:8px}.studio-door{padding-top:10px;padding-bottom:18px}.studio-kicker{margin-bottom:10px}.studio-entry h1{font-size:1.8rem;margin-bottom:12px}.studio-entry .studio-lead{margin-bottom:12px;font-size:.9rem}.studio-login-panel{padding:12px}.studio-access-note{margin-top:8px}}
@media(prefers-reduced-transparency:reduce){.studio-login-panel{background:#10151c}}
