@import url('https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@400;500;700;800;900&display=swap');
:root{--blue:#1677c5;--deep:#0e438a;--ink:#153c69;--pink:#f8559b;--yellow:#ffd84f;--sky:#e8f9ff;--green:#72c34a}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:'M PLUS Rounded 1c',system-ui,'Noto Sans JP',sans-serif;background:#f0faff}button,input,select{font:inherit}a{color:inherit}h1,h2,p{margin-top:0}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ffbc35;outline-offset:3px}
.login-page{background:linear-gradient(180deg,#d5f4ff 0%,#effbff 53%,#fff9ea 100%);min-height:100vh;overflow-x:hidden;position:relative}.sky-decor{pointer-events:none;position:absolute;inset:0;background:radial-gradient(ellipse 200px 70px at 8% 17%,#fff 30%,transparent 72%),radial-gradient(ellipse 190px 60px at 87% 19%,#fff 35%,transparent 75%),radial-gradient(circle at 50% 65%,#fcffd6,transparent 50%);opacity:.75}.event-ribbon{position:relative;z-index:1;margin:16px auto 0;width:max-content;max-width:calc(100% - 30px);padding:8px 30px;background:#fa5a95;color:white;border-radius:99px;font-size:13px;font-weight:900;box-shadow:0 4px 0 #d22b72;letter-spacing:.03em}
.login-shell{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(335px,.8fr);gap:clamp(16px,3vw,55px);max-width:1450px;margin:auto;padding:24px clamp(22px,4vw,58px) 8px;min-height:610px;align-items:center}.login-hero{min-width:0;position:relative;align-self:stretch;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 15px}.brand{align-self:flex-start;display:flex;align-items:baseline;gap:11px;color:#0b4c99}.brand-kct{font-family:Arial,sans-serif;font-style:italic;font-size:37px;font-weight:1000;letter-spacing:-3px}.brand-sub{font-size:15px;font-weight:900}.eyebrow{font-size:11px;font-weight:900;letter-spacing:.12em;color:#1594c9}.login-hero>.eyebrow{margin-top:22px}.hero-heading{margin:7px 0 10px;line-height:1.12;filter:drop-shadow(0 5px 0 #fff);font-size:clamp(46px,5.3vw,83px);font-weight:900;letter-spacing:.025em}.hero-heading span{display:block;color:#ed4e89;-webkit-text-stroke:1px #fff;text-shadow:3px 4px #ffd15c}.hero-heading strong{display:block;color:#1477cb;-webkit-text-stroke:1px white;text-shadow:3px 5px #ffd35d}.hero-catch{font-size:clamp(16px,1.5vw,23px);font-weight:900;color:#263f56;background:#fff;border:3px solid #ffe08d;border-radius:30px;padding:9px 24px;box-shadow:0 5px 0 #f5cc60;transform:rotate(-2deg);position:relative;z-index:2}.hero-illustration{position:relative;flex:1;display:flex;justify-content:center;align-items:flex-end;width:100%;min-height:295px}.hero-duo{display:block;position:relative;width:min(100%,590px);max-height:350px;object-fit:contain;filter:drop-shadow(0 12px 0 #fff) drop-shadow(0 18px 15px #2774aa50)}.star{position:absolute;color:#ffca31;font-size:50px;text-shadow:0 3px #fff}.star-one{left:8%;top:12%}.star-two{right:5%;top:25%}.hero-speech{position:absolute;right:0;bottom:50%;padding:11px 16px;color:#e24e83;font-size:14px;font-weight:900;background:white;border:3px solid #ffb3ce;border-radius:28px;transform:rotate(9deg)}
.login-panel{display:flex;justify-content:center;align-items:center;padding:12px 0}.login-card{width:100%;max-width:510px;position:relative;background:#fff;padding:clamp(28px,3vw,46px);border:3px solid #a9def8;border-radius:32px;box-shadow:0 12px 0 #b6deee,0 22px 45px #1268ad1c}.login-icon{position:absolute;right:32px;top:28px;color:#ef4c93;background:#fff0f6;border-radius:18px;padding:9px 17px;font-size:27px}.login-card .eyebrow{margin-bottom:7px}.login-card h2{font-size:clamp(24px,2.6vw,35px);font-weight:900;margin-bottom:10px;color:#144c93}.login-card p{color:#5f7891;font-size:13px;font-weight:700}.login-card form{display:grid;gap:18px;margin-top:30px}.login-card label,.panel label{display:grid;gap:8px;color:#184e86;font-size:14px;font-weight:900}.login-card input,.panel input,.panel select{border:2px solid #c6e2f6;border-radius:13px;background:#fafdff;padding:14px 15px;width:100%;outline-color:#3a9bdf}.primary{border:0;border-radius:17px;background:linear-gradient(120deg,#229be3,#075caf);color:#fff;box-shadow:0 5px 0 #08467e;padding:17px 20px;font-size:16px;font-weight:900;cursor:pointer;text-align:center;text-decoration:none}.primary:hover{filter:brightness(1.06)}.primary:disabled{opacity:.6}.security-note{text-align:center;font-size:11px;color:#8099a9;margin-top:28px}.error{background:#fff0f3;color:#a92151;border:1px solid #ffc3d1;border-radius:13px;padding:12px 15px;margin:12px 0;font-size:13px;font-weight:800}
.howto-bar{position:relative;z-index:1;display:grid;grid-template-columns:140px repeat(4,minmax(0,1fr));gap:10px;align-items:center;max-width:1360px;margin:12px auto 0;padding:17px 25px;background:white;border:3px solid #c6e9fb;border-radius:28px;box-shadow:0 5px 0 #e0edf6}.howto-title{color:#175b9f;font-size:21px;font-weight:900}.howto-step{padding:6px 12px;border-left:1px dashed #bddded}.howto-step span{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;margin-right:5px;background:#ff559b;border-radius:50%;color:#fff;font-size:17px;font-weight:900}.howto-step:nth-child(3) span{background:#fa9e20}.howto-step:nth-child(4) span{background:#7abb41}.howto-step:nth-child(5) span{background:#1884d1}.howto-step strong{font-size:13px;font-weight:900}.howto-step small{display:block;margin:3px 0 0 36px;color:#7292aa;font-size:11px}.login-footer{text-align:center;padding:17px;font-size:11px;color:#527b9b}
.app-body{background:#ecf8ff}.top{background:#fff;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px clamp(16px,5vw,60px);border-bottom:3px solid #d8effc}.logo{text-decoration:none;font-size:26px;color:#126aa9;font-weight:1000}.logo span{font-size:17px;color:#22465e}.tag{border-radius:40px;background:#fff0cb;padding:8px 16px;font-size:13px;font-weight:800}.logout{border:1px solid #c6dbeb;border-radius:12px;padding:10px 15px;background:white;cursor:pointer}.workspace{max-width:1200px;margin:auto;padding:38px 20px 76px}.intro{background:radial-gradient(circle at 70% 10%,#94deff,transparent 36%),linear-gradient(125deg,#0d72bc,#2698de);color:#fff;border-radius:30px;min-height:330px;padding:40px 6%;display:flex;position:relative;overflow:hidden;align-items:center;border:4px solid #fff;box-shadow:0 10px 32px #1572aa1b}.intro:after{content:'✦   ✦   ✦';position:absolute;right:7%;top:7%;color:#ffd85d;font-size:26px}.intro>div{position:relative;z-index:1;flex:1}.intro .eyebrow{color:#ffe584}.intro h1{font-size:clamp(38px,4.5vw,64px);line-height:1.25;font-weight:900;margin:15px 0}.intro em{font-style:normal;color:#ffe780}.intro p{font-weight:700}.intro img{width:43%;max-height:310px;object-fit:contain;filter:drop-shadow(0 10px 0 white)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:26px}.panel{background:#fff;border:2px solid #cde9f7;border-radius:26px;padding:clamp(20px,3vw,32px);box-shadow:0 8px 24px #1768a012}.panel h2{font-size:22px;color:#154b8a}.step{display:inline-block;background:#fff0bf;color:#b66b00;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:900;letter-spacing:.08em;margin-bottom:12px}.pose-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.pose-grid a{border:2px solid #d7eaf7;border-radius:18px;padding:11px;display:flex;flex-direction:column;gap:8px;text-decoration:none;transition:transform .15s}.pose-grid a:hover{border-color:#f46ca2;transform:translateY(-3px)}.pose-grid img{width:100%;aspect-ratio:1/1.28;object-fit:contain;background:#fff}.pose-grid b{font-size:13px}.pose-grid span,.small{font-size:12px;color:#64839a}.panel form{display:grid;gap:17px;margin-top:23px}.preview{max-height:220px;max-width:100%;object-fit:contain}.card-result{display:grid;grid-template-columns:minmax(220px,380px) 1fr;gap:45px;align-items:center;background:#fff;border:2px solid #d2e9fa;border-radius:26px;padding:34px}.result-img{width:100%;border-radius:18px;box-shadow:0 12px 35px #144f7b32}.complete-mascot{max-width:225px;width:70%;display:block;margin:0 auto 15px}.link{display:block;margin:13px 0;text-decoration:none;padding:15px;border-radius:14px;text-align:center;font-weight:900}.secondary{background:#e2f3ff;color:#13578a;border:2px solid #a9d7f3}footer{text-align:center;color:#65869a;padding:25px 15px;font-size:12px}
@media(max-width:980px){.login-shell{grid-template-columns:1fr 1fr;padding:24px 18px;gap:20px}.howto-bar{grid-template-columns:repeat(4,1fr);margin:12px 18px}.howto-title{grid-column:1/-1;text-align:center}.hero-heading{font-size:50px}.hero-duo{max-height:270px}.hero-illustration{min-height:250px}.hero-speech{display:none}}@media(max-width:700px){.login-shell{display:flex;flex-direction:column;min-height:unset}.login-hero{width:100%;padding:0 0 10px}.login-hero>.eyebrow{margin:8px 0 0;font-size:9px}.hero-heading{font-size:clamp(43px,10vw,63px)}.hero-catch{font-size:14px}.hero-illustration{min-height:190px;max-height:245px}.hero-duo{max-height:240px}.login-panel{width:100%}.login-card{padding:25px}.howto-bar{grid-template-columns:1fr 1fr;gap:9px;padding:14px}.howto-title{grid-column:1/-1}.howto-step{border-left:none;padding:8px 3px}.howto-step strong{font-size:11px}.howto-step small{margin-left:0}.event-ribbon{font-size:10px;padding:8px 14px}.two-col,.card-result{grid-template-columns:1fr}.intro{padding:25px;min-height:245px}.intro h1{font-size:35px}.intro img{width:36%}.tag{display:none}}

/* KCT_EVENT_TITLE_V5 */
.event-ribbon{display:flex;flex-direction:column;align-items:center;gap:2px;margin:18px auto 0;width:min(920px,calc(100% - 40px));max-width:none;border-radius:26px;padding:13px 35px 15px;text-align:center;background:linear-gradient(110deg,#ed408e,#f45b94);box-shadow:0 6px 0 #bd2c69,0 14px 30px #ee6d9e35;line-height:1.35;letter-spacing:.02em}
.event-ribbon .event-host{font-size:clamp(16px,1.65vw,23px);font-weight:800}
.event-ribbon .event-main{font-size:clamp(23px,3.1vw,43px);font-weight:1000;letter-spacing:.015em}
@media(max-width:700px){.event-ribbon{width:calc(100% - 22px);padding:12px 13px;border-radius:18px}.event-ribbon .event-host{font-size:14px}.event-ribbon .event-main{font-size:clamp(20px,5.2vw,29px)}}

/* KCT_BRAND_V6 */
.brand{align-items:center!important;gap:16px!important;text-align:left!important}.brand-symbol{width:66px;height:66px;object-fit:contain;flex:none;filter:drop-shadow(0 3px 2px #287bad18)}.brand-sub{font-size:clamp(15px,1.25vw,21px)!important;letter-spacing:.035em;color:#153c69}.logo{display:inline-flex;align-items:center;gap:13px;line-height:1.12}.logo img{width:50px;height:50px;object-fit:contain}.logo span{font-size:14px!important;display:flex;flex-direction:column;font-weight:900;color:#1b4678!important}.logo small{font-size:21px;margin-top:5px;color:#116ab2;font-weight:900}
.event-ribbon{background:linear-gradient(105deg,#ef508c,#f875a0);box-shadow:0 5px 0 #d52f76,0 12px 35px #eb629538}.hero-heading{text-wrap:balance}.login-card{border-color:#a8ddf6}.intro{border-radius:30px}
@media(max-width:700px){.brand{align-self:center}.brand-symbol{width:48px;height:48px}.brand-sub{font-size:15px!important}.logo img{width:39px;height:39px}.logo small{font-size:15px}}
