 
:root{--blue:#0057B0;--red:#D90F0F;--yel:#F9BE00;--bg:#E9F0FA;--grid:rgba(0,87,176,.07);--page:#fff;--ruled:rgba(0,87,176,.16);--ink:#22303F;--mut:#586677;--tint:#FFF6D1;--lite:#EEF3FA;--hd:#0057B0;
box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0D1520;--grid:rgba(255,255,255,.04);--page:#16212F;--ruled:rgba(125,182,255,.16);--ink:#E8EEF7;--mut:#9FB0C5;--tint:#2B2610;--lite:#0D1520;--hd:#7DB6FF;--red:#FF6B6B}}
:root[data-theme="dark"]{--bg:#0D1520;--grid:rgba(255,255,255,.04);--page:#16212F;--ruled:rgba(125,182,255,.16);--ink:#E8EEF7;--mut:#9FB0C5;--tint:#2B2610;--lite:#0D1520;--hd:#7DB6FF;--red:#FF6B6B}  
h1,h2,h3{ font-weight:600;margin:0}
.wrap{max-width:1000px;margin:0 auto;padding:28px 18px 0}

/* banner with scalloped edge */
.banner{background:var(--blue);color:#fff;padding:20px 30px 38px;position:relative;border-radius:22px 22px 0 0;
 -webkit-mask:radial-gradient(circle 16px at 16px 100%,#0000 98%,#000) 0 100%/32px 17px repeat-x,linear-gradient(#000 0 0) 0 0/100% calc(100% - 16px) no-repeat;
 mask:radial-gradient(circle 16px at 16px 100%,#0000 98%,#000) 0 100%/32px 17px repeat-x,linear-gradient(#000 0 0) 0 0/100% calc(100% - 16px) no-repeat}
.banner small{ opacity:.9;display:block;line-height:1.4}
.banner h1{font-size:clamp(20px,5.4vw,24px);line-height:1.32;margin-top:8px;max-width:35ch}
.pencil{position:absolute;right:30px;top:26px;width:150px;transform:rotate(-14deg)}
.intro{margin:28px 6px 6px;color:var(--mut);max-width:68ch;line-height:1.65}
.read{font:600 24px/1.3 ;margin:24px 6px 26px}
.read span{background:linear-gradient(transparent 82%,var(--yel) 82%);padding:0 4px}

/* journey rail */
.journey{position:relative;padding-left:86px}
.rail{position:absolute;left:35px;top:20px;bottom:40px;width:0;border-left:4px dashed var(--ruled)}
.rail i{position:absolute;left:-4px;top:0;width:4px;height:0;background:var(--red);border-radius:2px;display:block}
.walker{position:absolute;left:-13px;top:0;width:22px;height:22px;border-radius:50%;background:var(--yel);border:3px solid var(--red)}

/* notebook page card */
.card{position:relative;background-color:var(--page);border-radius:6px 18px 18px 6px;margin-bottom:34px;padding:30px 30px 30px 84px;
 display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:center;
 background-image:repeating-linear-gradient(transparent 0 31px,var(--ruled) 31px 32px);
 box-shadow:0 2px 0 rgba(0,0,0,.06),0 14px 28px -14px rgba(0,40,100,.35)}
.card::before{content:"";position:absolute;left:58px;top:0;bottom:0;width:2px;background:var(--red);opacity:.75}
.card::after{content:"";position:absolute;left:16px;top:26px;bottom:26px;width:16px;
 background:radial-gradient(circle 8px,var(--bg) 96%,transparent) 0 0/16px 58px repeat-y;border-radius:8px}
.num{position:absolute;left:-75px;top:26px;width:50px;height:50px;display:grid;place-items:center;font:600 30px 'Fredoka',sans-serif;
 color:#fff;background:var(--red);border-radius:50% 50% 50% 10px;border:4px solid var(--page);box-shadow:0 0 0 3px var(--red);margin-left:0}
.card h2{    color: var(--red);
    font-size: 18px;
    line-height: 24px;
    margin-bottom: 6px;
    text-transform: uppercase;
    font-weight: 700;}
.card p{margin:0 0 4px}
.big{font-size:15px;font-weight: 600; color:var(--hd)}
.note{font:600 24px/1.1 'Caveat',cursive;color:var(--blue);display:inline-block;transform:rotate(-3deg);background:var(--tint);padding:2px 12px;border-radius:6px;margin-top:8px}
:root[data-theme="dark"] .note{color:var(--yel)}
.sticker{position:relative;justify-self:center;width:100%;max-width:360px;background:#fff;border-radius:14px;padding:14px;transform:rotate(2deg);box-shadow:0 8px 18px -8px rgba(0,0,0,.35)}
.sticker::before{content:"";position:absolute;top:-12px;left:50%;width:90px;height:24px;margin-left:-45px;background:var(--yel);opacity:.9;transform:rotate(-3deg)}
.sticker svg{width:100%;height:auto;display:block}
.fb{fill:#0057B0}.fr{fill:#D90F0F}.fy{fill:#F9BE00}.fw{fill:#fff}.s{stroke:#22303F;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}

/* procedure */
.card.wide{grid-template-columns:1fr}
.top{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:center}
details{margin-top:10px}
summary{display:inline-block;list-style:none;cursor:pointer;background:var(--yel);color:#2B2000;font:600 17px/1.2 'Fredoka',sans-serif;border-radius:999px;padding:10px 24px;border:2px solid #2B2000}
summary::-webkit-details-marker{display:none}
details[open] summary{background:var(--page);color:var(--ink);border-color:var(--ink)}
summary:focus-visible,.btn:focus-visible,input:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.more{line-height:1.6;margin-top:10px}
.more h3{font-size:20px;color:var(--hd);margin:20px 0 8px}
.more ol{padding-left:22px;margin:0}.more li{margin-bottom:8px}
.files{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.files li{display:flex;justify-content:space-between;gap:12px;background:var(--lite);border-radius:10px;padding:8px 14px;margin:0}
.files b{color:var(--red);white-space:nowrap}
.warn{background:var(--tint);border-left:6px solid var(--red);border-radius:10px;padding:12px 16px;margin-top:12px;font-weight:600}

.apply{margin-top:12px;background:var(--lite);border:2px dashed var(--blue);border-radius:14px;padding:14px 16px;line-height:1.5}
.apply label{display:flex;gap:10px;align-items:flex-start;font-weight:700;cursor:pointer}
.apply input{width:22px;height:22px;accent-color:var(--blue);margin-top:2px;flex:none} 
.end{background:var(--yel);height:36px;border-radius:0 0 22px 22px;margin:-6px 0 0 86px}
.contact{color:var(--mut);font-size:15px;line-height:1.6;margin:18px 6px 40px 86px}
.contact a{color:var(--red);font-weight:700}

@media (max-width:760px){
 .journey{padding-left:50px}.rail{left:17px}
 .num{left:-50px;width:48px;height:48px;font-size:22px;border-width:3px;box-shadow:0 0 0 2px var(--red);top:22px}
 .card{padding:26px 18px 26px 54px;grid-template-columns:1fr}
 .top{grid-template-columns:1fr}
 .card::before{left:36px}.card::after{left:8px;width:14px}
 .pencil{width:90px;right:14px;top:14px}
 .banner{padding:30px 22px 56px}
 .end,.contact{margin-left:50px}
 .sticker{max-width:250px}
}
.rm{display: inline-block; margin-top: 10px; padding: 8px 20px;text-decoration: none;border-radius: 4px;}
.rm:hover{text-decoration:none}.rm:focus-visible,.back:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.back{display:inline-block;background:var(--page);color:var(--ink);font:600 16px/1.2 'Fredoka',sans-serif;border:2px solid var(--ink);border-radius:999px;padding:8px 20px;text-decoration:none}
.card.sheet{display:block}.card.sheet.two{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:center}
.card.sheet h2{font-size:24px}.card.sheet .files{margin-top:10px}
[hidden]{display:none!important}
@media (max-width:760px){.card.sheet.two{grid-template-columns:1fr}}