:root{--ground:#e8e1d5;--surface:#f1ece3;--ink:#293630;--dim:#536057;--line:#bbb9aa;--accent:#315c4d;--on-accent:#f6f1e8}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ground);color:var(--ink);font:500 17px/1.7 'Noto Sans JP',sans-serif}h1,h2,h3,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--ink);outline-offset:4px}.wrap{width:min(1120px,calc(100% - 64px));margin:auto}.skip{position:absolute;top:-100px;left:16px;background:var(--ink);color:var(--ground);padding:12px;z-index:10}.skip:focus{top:10px}.masthead{padding:24px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-weight:700;font-size:16px}.course{font-size:14px;font-weight:500}.intro{padding:42px 0 30px}.eyebrow{font:700 12px/1.5 'Montserrat',sans-serif;letter-spacing:.13em;margin-bottom:14px}h1{font-size:clamp(30px,3.6vw,46px);font-weight:900;letter-spacing:.01em;line-height:1.4}.intro-text{margin-top:19px;color:var(--dim);line-height:1.8}.preview-note{margin-top:15px;font-size:14px;border-left:3px solid var(--ink);padding-left:12px}.progress{padding:22px 28px 26px;background:var(--surface);border:1px solid var(--line);margin-bottom:36px}#progress-text{font-size:19px;font-weight:700}#progress-text strong{color:var(--accent);margin-left:12px;font-family:'Montserrat',sans-serif;font-size:27px}.progress-map{list-style:none;display:flex;padding:0;margin:20px 0 0;justify-content:space-between;gap:8px}.progress-map li{position:relative;flex:1;text-align:center}.progress-map li:not(:last-child)::after{position:absolute;content:'';height:1px;background:var(--line);left:calc(50% + 24px);right:calc(-50% + 24px);top:19px}.dot{position:relative;z-index:1;display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;margin:auto;color:var(--dim);background:var(--surface);font:700 15px 'Montserrat',sans-serif}.dot.lit{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.map-date{display:block;font:500 12px/1.6 'Montserrat',sans-serif;margin-top:7px}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin-bottom:20px}.section-heading h2{font-size:24px;font-weight:900}.section-heading p{font-size:14px;color:var(--dim)}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.gallery-card{background:var(--surface);border:1px solid var(--line);min-width:0;display:flex;flex-direction:column}.cover{width:100%;height:auto;aspect-ratio:16/9;display:block;object-fit:cover}.card-body{padding:20px;display:flex;flex-direction:column;flex:1}.card-number{font:700 12px/1.5 'Montserrat',sans-serif;letter-spacing:.1em;margin-bottom:8px;color:var(--dim)}.card-title{font-size:21px;font-weight:900;line-height:1.5}.card-note{font-size:13px;margin-top:5px}.card-description{font-size:16px;line-height:1.8;margin-top:10px;margin-bottom:20px}.open-button{margin-top:auto;display:flex;justify-content:space-between;align-items:center;min-height:52px;padding:12px 18px;background:var(--accent);color:var(--on-accent);text-decoration:none;font-weight:700}.open-button:hover{filter:brightness(.9)}.lock-cover{aspect-ratio:16/9;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#d9d5c9;gap:9px;color:#39473e}.lock-cover svg{width:34px;height:38px}.lock-date{font-size:15px;font-weight:700}.lock-left{font-size:14px}.locked .card-body{padding-bottom:24px}.locked .card-description{margin-bottom:12px}.locked-message{font-size:14px;border-top:1px solid var(--line);padding-top:12px;margin-top:auto;color:var(--dim)}.fresh{animation:unseal .65s ease-out both}@keyframes unseal{from{opacity:.25;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.brand-section{margin-top:56px;padding:32px;background:var(--surface);border-top:3px solid var(--ink)}.brand-heading h2{font-size:28px;font-weight:900}.brand-heading>p:last-child{margin-top:12px;color:var(--dim);font-size:16px}.form-grid{margin-top:26px;display:grid;grid-template-columns:1fr 1fr;gap:22px 24px}.form-grid>label{display:block;font-weight:700;font-size:16px;min-width:0}.wide{grid-column:1/-1}.limit{font-size:13px;font-weight:500;color:var(--dim);margin-left:6px}input:not([type=color],[type=checkbox]),textarea,select{display:block;border:1px solid #969d91;border-radius:0;background:#f9f4ec;width:100%;min-width:0;min-height:50px;padding:11px 13px;margin-top:8px;font-size:17px;font-weight:500}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#737b71;font-size:16px}.counter{display:block;text-align:right;color:var(--dim);font-size:13px;font-weight:500;margin-top:5px}fieldset{margin:0;padding:0;border:0;min-width:0}legend{padding:0;font-weight:700;margin-bottom:9px;font-size:16px}.colors{display:grid;grid-template-columns:1fr 1fr;gap:24px}.colors label{font-size:15px}.color-row{display:flex;align-items:center;gap:14px;margin-top:7px}input[type=color]{width:60px;height:50px;min-width:60px;padding:4px;border:1px solid #969d91;background:#f9f4ec;cursor:pointer}output{font:500 15px 'Montserrat',sans-serif}.contact-options{display:flex;gap:12px;flex-wrap:wrap}.contact-options label{display:flex;align-items:center;gap:9px;min-height:50px;padding:8px 16px;border:1px solid #969d91;cursor:pointer;font-size:16px}input[type=checkbox]{appearance:none;width:22px;height:22px;flex:0 0 22px;border:1px solid var(--ink);margin:0;display:grid;place-items:center}input[type=checkbox]:checked::after{content:'✓';font-size:20px;font-weight:900;color:var(--ink);line-height:1}.brand-actions{margin-top:26px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}.brand-actions button{background:var(--ink);color:var(--surface);border:0;padding:14px 22px;min-height:52px;cursor:pointer;font-size:16px;font-weight:700}#save-status,#copy-status{font-size:14px;color:var(--dim)}#copy-status:not(:empty){margin-top:12px}details{margin-top:18px}summary{font-size:15px;cursor:pointer;min-height:44px;padding:10px 0}#brand-text{font-size:15px;line-height:1.8}footer{display:flex;align-items:baseline;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:48px;padding:24px 0 32px;font-size:14px}footer p{font-weight:700}footer span{font-size:13px;color:var(--dim)}[hidden]{display:none!important}
@media(max-width:1000px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-heading{display:block}.section-heading p{margin-top:7px}.card-title{font-size:22px}}
@media(max-width:600px){.wrap{width:calc(100% - 36px)}.masthead{display:block;padding:18px 0}.course{display:block;font-size:12px;margin-top:4px}.intro{padding:28px 0 24px}h1{font-size:29px;line-height:1.5}.intro-text{font-size:16px;margin-top:16px}.progress{padding:18px 12px;margin-bottom:26px}#progress-text{font-size:16px}#progress-text strong{font-size:24px;margin-left:7px}.progress-map{gap:3px;margin-top:16px}.dot{width:32px;height:32px;font-size:13px}.progress-map li:not(:last-child)::after{top:15px;left:calc(50% + 18px);right:calc(-50% + 18px)}.map-date{font-size:11px}.section-heading h2{font-size:22px}.section-heading p{font-size:13px}.gallery-grid{grid-template-columns:1fr;gap:20px}.card-body{padding:20px}.card-title{font-size:23px}.lock-date{font-size:16px}.brand-section{margin-top:38px;padding:24px 18px}.brand-heading h2{font-size:24px}.brand-heading>p:last-child{font-size:15px}.form-grid{grid-template-columns:1fr;gap:20px}.wide{grid-column:auto}.colors{gap:10px}.color-row{gap:6px}output{font-size:12px}.contact-options{gap:7px}.contact-options label{padding:8px 10px}.brand-actions{gap:12px}.brand-actions button{width:100%}footer{display:block;margin-top:32px}footer span{display:block;margin-top:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.fresh{animation:none}}
