@font-face{font-family:"Noto Sans JP";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/noto-sans-jp-400.woff") format("woff")}
@font-face{font-family:"Noto Sans JP";font-style:normal;font-weight:700;font-display:swap;src:url("/assets/fonts/noto-sans-jp-700.woff") format("woff")}
:root{font-family:"Noto Sans JP",sans-serif;color:#1e65ae;background:#e4f4ff;font-synthesis:none;color-scheme:light}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:#e4f4ff url("/assets/background.svg") center bottom/100% 100% no-repeat}button,input{font:inherit}button{cursor:pointer}a{color:inherit}
.viewport{position:relative;width:100%;height:100vh;min-height:540px;overflow:hidden}.stage{position:absolute;width:1920px;height:1080px;left:50%;top:50%;transform:translate(-50%,-50%) scale(var(--scale,1));transform-origin:center}
.title{position:absolute;left:466.7px;top:153.6px;width:986.6px;height:239.2px;margin:0;display:flex;align-items:center;justify-content:center;font-size:124px;line-height:1.4;font-weight:700;white-space:nowrap;letter-spacing:0}
.login-card{position:absolute;left:595px;top:418.6px;width:730px;height:490px;border:1px solid #1e65ae;border-radius:20px;background:#fff;box-shadow:0 12px 26px rgb(30 101 174 / 4%)}
.card-title{position:absolute;left:59px;top:32px;margin:0;font-size:36px;font-weight:700;line-height:1.5}
.field{position:absolute;left:59px;width:610px}.id-field{top:107px}.password-field{top:237.9px}
.field label{display:block;height:39.6px;font-size:24px;line-height:37.5px;font-weight:400;padding-left:3px}.password-field label{transform:translateY(2px)}
.field input{display:block;width:610px;height:65px;padding:9px 10px;border:1px solid #1e65ae;border-radius:8px;background:#fff;color:#1e65ae;font-size:24px;line-height:37.5px;outline:none}
.field input::placeholder{color:#94a4b3;opacity:1}.field input:focus-visible{box-shadow:0 0 0 3px rgb(30 101 174 / 20%);border-color:#174c83}
.field input[aria-invalid="true"]{border-color:#b33b46}
.submit{position:absolute;left:59px;top:375.6px;width:610px;height:74.5px;padding:0;border:0;border-radius:8px;background:#4c9ee8;color:#fff;font-size:36px;line-height:1.5;font-weight:700;transition:background-color .15s}
.submit:hover{background:#368bda}.submit:active{background:#2879c4}.submit:focus-visible,.logout:focus-visible{outline:3px solid #1e65ae;outline-offset:5px}.submit:disabled{cursor:wait;background:#6599c9}
.arrow{margin-left:16px}.error{position:absolute;left:59px;top:344px;width:610px;margin:0;font-size:17px;line-height:24px;color:#a52e3e}.error:empty{display:none}
.desktop-notice{display:none}
.home-page{background:#e8f2fe}.home-page .viewport{height:auto;min-height:100vh;overflow:visible}
.home-stage{position:relative;left:auto;top:auto;transform:none;width:100%;height:auto;min-height:100vh;display:flex;flex-direction:column;background:#e8f2fe}
.home-header{position:relative;width:100%;min-height:clamp(72px,5.7292vw,110px);padding:16px 2.5%;display:flex;align-items:center;justify-content:space-between;gap:24px;background:#7dc2f7;z-index:2}
.header-brand{margin:0;font-size:clamp(26px,2.6042vw,50px);line-height:1.5;font-weight:700;color:#fff;white-space:nowrap}
.account-menu{position:relative;flex:none;color:#fff}
.account-menu summary{display:flex;align-items:center;gap:clamp(9px,.6875vw,13.2px);list-style:none;cursor:pointer;border-radius:8px}
.account-menu summary::-webkit-details-marker{display:none}.account-icon{display:block;width:clamp(30px,2.276vw,43.7px);height:clamp(38px,2.8542vw,54.8px);object-fit:contain;flex:none}
.account-name{display:block;width:clamp(124px,10.3906vw,199.5px);font-size:clamp(18px,1.3021vw,25px);line-height:1.4;font-weight:700;text-align:center;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.account-menu summary:focus-visible{outline:3px solid #fff;outline-offset:5px}.account-menu summary:hover .account-name{text-decoration:underline;text-underline-offset:5px}
.account-panel{position:absolute;top:calc(100% + 12px);right:0;width:232px;padding:10px;background:#fff;border:1px solid #1e65ae;border-radius:12px;box-shadow:0 8px 24px rgb(30 101 174 / 15%);color:#1e65ae}
.logout{display:block;width:100%;margin:0;padding:14px 12px;border:0;border-radius:7px;background:#fff;color:#1e65ae;font-size:24px;font-weight:700;text-align:left}.logout:hover{background:#e8f2fe}.logout:disabled{cursor:wait;color:#94a4b3}
#logout-error{margin:0;font-size:18px;line-height:1.6;color:#a52e3e}#logout-error:empty{display:none}
.home-main{position:relative;flex:1;width:100%;padding:clamp(32px,4.037vh,43.6px) 4.6% clamp(36px,8vh,100px);display:flex;flex-direction:column;gap:clamp(24px,2.963vh,32px);background:#e8f2fe}
.home-title,.category-title{min-height:clamp(180px,22.15vh,239.2px);display:flex;flex-direction:column;justify-content:center;align-items:center;margin:0;font-weight:700;color:#1e65ae;text-align:center}
.home-brand{margin:0;font-size:clamp(56px,min(5.2083vw,9.2593vh),100px);line-height:1.4}.home-subtitle{margin:0;font-size:clamp(28px,min(2.8125vw,5vh),54px);line-height:1.5}
.category-title h1,.category-title p{margin:0}
.breadcrumbs{position:absolute;z-index:1;left:2%;top:clamp(16px,2.4074vh,26px);display:flex;align-items:center;gap:10px;font-size:clamp(18px,1.3021vw,25px);line-height:1.6;color:#1d64ae}.breadcrumbs a{text-decoration:none}.breadcrumbs a:hover{text-decoration:underline;text-underline-offset:4px}.breadcrumbs a:focus-visible{outline:3px solid #1e65ae;outline-offset:4px;border-radius:3px}
.tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(16px,1.1823vw,22.7px);row-gap:clamp(22px,3.1111vh,33.6px)}
.tool-card{display:flex;flex-direction:column;justify-content:space-between;position:relative;width:100%;min-height:clamp(148px,min(11.1979vw,19.9074vh),215px);padding:clamp(12px,min(.9375vw,1.6667vh),18px) clamp(14px,1.0417vw,20px) clamp(10px,min(.7292vw,1.2963vh),14px);gap:8px;border:1px solid #1e65ae;border-radius:clamp(16px,1.1458vw,22px);background:#fff;color:#1d64ae;text-align:center;text-decoration:none}
.tool-heading{display:block;font-size:clamp(30px,min(3.2292vw,5.7407vh),62px);line-height:1.3;font-weight:700}
.tool-description{display:block;font-size:clamp(17px,min(1.5104vw,2.6852vh),29px);line-height:1.5;font-weight:400}
.tool-arrow{position:absolute;right:4.5%;top:50%;transform:translateY(-50%);width:clamp(36px,3.125vw,60px);height:clamp(36px,3.125vw,60px);object-fit:contain}
.tool-card:hover{background:#f8fbff}.tool-card:focus-visible{outline:3px solid #1e65ae;outline-offset:5px}
.tool-status{margin:0;font-size:clamp(17px,1.25vw,24px);line-height:1.8;text-align:center;color:#1d64ae}.tool-status:empty{display:none}
.home-footer{width:100%;min-height:clamp(44px,3.3854vw,65px);padding:12px 1.4%;display:flex;align-items:center;background:#f8fbff}
.home-footer p{margin:0;font-size:clamp(17px,1.3021vw,25px);line-height:1.5;font-weight:400;color:#1d64ae}
@media(min-width:768px) and (max-width:1100px){.home-header{gap:12px;padding-inline:2%}.header-brand{font-size:clamp(21px,2.4vw,26px)}.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.category-title .home-subtitle{font-size:clamp(24px,2.7vw,30px)}}
@media(max-width:767px){.viewport,.home-page .viewport{display:none}.desktop-notice{display:flex;min-height:100vh;flex-direction:column;justify-content:center;padding:32px;max-width:540px;margin:auto}.desktop-notice h1{font-size:28px}.desktop-notice p{font-size:16px;line-height:1.9}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.legal-links{display:flex;gap:16px;margin-left:auto;padding-left:20px;flex-wrap:wrap;font-size:13px}.legal-content{width:min(1100px,94%);margin:32px auto;padding:28px;background:#fff;border:1px solid #c9dff5;border-radius:14px;line-height:1.9;color:#1e65ae}.legal-content h1{font-size:30px}.legal-content h2{font-size:22px;margin-top:28px}.legal-content pre{white-space:pre-wrap;overflow-wrap:anywhere;font-family:monospace;font-size:13px;color:#32445c}.home-footer{flex-wrap:wrap;gap:10px}
