body{margin:0;padding:0;font-family:sans-serif}:root{--site-font:"Sawarabi Gothic", "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;--site-text:#111827;--site-muted:#4b5563;--site-line:#ffffffb8;--site-glass:#ffffff9e;--site-dark-glass:#11182794;--site-accent:#7f1d1d;--site-radius:8px}.classmatch-background{z-index:-2;pointer-events:none;background:#f4f5f7;position:fixed;inset:0;overflow:hidden}.classmatch-background picture,.classmatch-background img{width:100%;height:100%;display:block}.classmatch-background img{object-fit:cover}.radius{border-radius:25px}.filter{-webkit-backdrop-filter:blur(10px);background:#ffffff4d;border:1px solid #fff;transition:transform .3s ease-in-out,box-shadow .3s ease-in-out;box-shadow:0 4px 8px #0000005e}.filterhover:hover{transition:transform .3s ease-in-out,box-shadow .3s ease-in-out;transform:scale(1.02);box-shadow:0 8px 16px #0000005e}.filterhover:active{transition:all .3s ease-in-out;transform:scale(.98);box-shadow:inset 0 4px 8px #0000005e}.header{z-index:100;background:#fff9;width:100dvw;height:6dvh;position:fixed}.header .header-title{text-align:center;margin-top:3dvh;font-family:Sawarabi Gothic,sans-serif;font-size:1.5dvw;font-weight:400;transform:translateY(-50%)}.commu-popup{opacity:0;z-index:-1;width:60dvw;transition:top 1.2s ease-in-out,opacity 1.2s ease-in-out;position:fixed;top:5dvh;left:20dvw}.commu-popup.send{opacity:1;z-index:100;padding-left:5vw;font-size:1.25vw;transition:top 1.2s ease-in-out,opacity 1.2s ease-in-out;top:10dvh}.commu-popup{box-sizing:border-box;min-height:54px;color:var(--site-text);padding:14px 18px}.commu-popup.success{background:#dcfce7c7;border-color:#22c55e7a}.commu-popup.error{background:#fee2e2d1;border-color:#dc262680}.commu-popup.warning{background:#fef3c7d1;border-color:#f59e0b80}.commu-popup.info{background:#ffffffc7}.site-page{min-height:100dvh;color:var(--site-text);font-family:var(--site-font);background:#f4f5f7}.site-page:before{content:"";z-index:-1;background:linear-gradient(90deg,#f4f5f7f0,#f4f5f7c7 42%,#f4f5f78f),linear-gradient(#ffffff24,#11182733);position:fixed;inset:0}.site-page .filter{border-radius:var(--site-radius);background:var(--site-glass);border:1px solid var(--site-line);-webkit-backdrop-filter:blur(14px);box-shadow:0 10px 28px #11182721}.site-page .filterhover:hover{transform:translateY(-2px);box-shadow:0 14px 34px #1118272e}.site-header{box-sizing:border-box;-webkit-backdrop-filter:blur(14px);background:#ffffffbd;border-bottom:1px solid #ffffffbf;align-items:center;gap:24px;height:68px;padding:0 5dvw;display:flex}.site-logo{color:var(--site-text);letter-spacing:0;font-size:21px;font-weight:700;text-decoration:none}.site-nav{gap:18px;margin-left:auto;display:flex}.site-nav a,.form-link{color:var(--site-muted);border-bottom:1px solid #0000;font-size:14px;text-decoration:none;transition:color .2s,border-color .2s}.site-nav a:hover,.form-link:hover{color:var(--site-accent);border-color:var(--site-accent)}.site-button,.site-action,.site-primary,.site-secondary{box-sizing:border-box;min-height:42px;color:var(--site-text);font-family:var(--site-font);border-radius:var(--site-radius);cursor:pointer;border:0;justify-content:center;align-items:center;padding:0 18px;font-size:14px;font-weight:700;line-height:1;text-decoration:none;transition:transform .3s ease-in-out,box-shadow .3s ease-in-out;display:inline-flex;box-shadow:0 10px 28px #11182721}.site-primary{color:#fff;background:#7f1d1de0;border-color:#7f1d1df2}.site-secondary{color:var(--site-text)}.site-main{padding-top:68px}.site-section{box-sizing:border-box;width:min(1120px,100% - 40px);margin:0 auto}.site-label{color:var(--site-accent);letter-spacing:.04em;margin:0 0 14px;font-size:13px;font-weight:700}.form-panel{box-sizing:border-box;border-radius:var(--site-radius);-webkit-backdrop-filter:blur(14px);text-align:left;background:#ffffffe0;border:1px solid #ffffffc7;padding:34px 28px 28px;box-shadow:0 18px 48px #11182738}.form-title{color:var(--site-text);margin:0 0 18px;font-size:22px;font-weight:700}.form-input{box-sizing:border-box;width:100%;color:var(--site-text);font-family:var(--site-font);border:1px solid #11182724;margin:10px 0 0;padding:13px 14px;font-size:15px}.form-input:focus{border-color:#7f1d1da6;outline:2px solid #7f1d1d38}.form-submit{border-radius:var(--site-radius);color:#fff;width:100%;font-family:var(--site-font);cursor:pointer;background:#7f1d1de6;border:0;margin-top:8px;padding:13px;font-size:15px;font-weight:700;transition:transform .3s ease-in-out,box-shadow .3s ease-in-out;box-shadow:0 10px 28px #11182721}.site-page .form-submit,.site-page .site-primary{color:#fff;background:#7f1d1de6}.form-link{margin-top:14px;display:inline-flex}.password-wrap{align-items:stretch;gap:8px;margin-top:10px;display:flex}.password-wrap .form-input{margin:0}.visible{min-width:58px;color:var(--site-muted);font-family:var(--site-font);cursor:pointer;background:#ffffffb8;border:1px solid #11182724;border-radius:6px}.errormessage{min-height:20px;color:var(--site-accent);margin:10px 0 0;font-size:13px;font-weight:700}@media (width<=820px){.site-header{flex-wrap:wrap;gap:10px;height:auto;min-height:64px;padding:12px 20px}.site-nav{order:3;width:100%;margin-left:0}.site-action{margin-left:auto;padding:0 12px}.site-main{padding-top:104px}.site-section{width:min(100% - 28px,1120px)}}@media (prefers-reduced-motion:reduce){.site-page .filter,.site-page .filterhover,.site-page .form-panel{transition:none;animation:none}}.login-main{min-height:calc(100dvh - 68px)}.login-layout{grid-template-columns:minmax(0,1fr) minmax(320px,430px);align-items:center;gap:56px;min-height:calc(100dvh - 68px);padding:72px 0;display:grid}.login-copy{max-width:620px;animation:.72s both loginFadeUp}.login-copy h1{color:var(--site-text);letter-spacing:0;margin:0;font-size:clamp(38px,5.6vw,70px);line-height:1.08}.login-copy p:not(.site-label){max-width:560px;color:var(--site-muted);margin:24px 0 0;font-size:17px;line-height:2}.input-box{width:100%;animation:.72s .12s both loginFadeUp}.label{text-align:left}#submit-btn{margin-top:16px}@keyframes loginFadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (width<=820px){.login-main{min-height:auto}.login-layout{min-height:auto;padding:58px 0;display:block}.login-copy h1{font-size:clamp(36px,11vw,54px)}.input-box{margin-top:34px}}@media (prefers-reduced-motion:reduce){.login-copy,.input-box{animation:none}}
