:root{--ink:#254e57;--teal:#26746a;--paper:#fffdf6;--sand:#f6eedb;--line:#d8decc;--orange:#db7943;--c0:#e3e8d9;--c1:#c0dbaa;--c2:#81bd97;--c3:#459e8f;--c4:#216e70}*{box-sizing:border-box}body{margin:0;background:var(--sand);color:var(--ink);font-family:"UD デジタル 教科書体 N-R","BIZ UDPGothic","Noto Sans JP",system-ui,sans-serif;font-size:16px;line-height:1.65}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #b8c9b9;border-radius:12px;padding:.6em 1em;background:var(--paper);color:var(--ink);font-weight:700;min-height:44px}button:hover{background:#e5eedf}button:disabled{opacity:.6;cursor:wait}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--orange);outline-offset:3px}button.primary{background:var(--teal);border-color:var(--teal);color:white;box-shadow:0 4px 0 #19544b}button.primary:hover{background:#205f58}.danger{color:#a13226;border-color:#d79285}.quiet{border:0;background:transparent;padding:.4em .65em;box-shadow:none}input,select,textarea{display:block;width:100%;border:1.5px solid #a3b5ac;border-radius:10px;background:white;color:var(--ink);padding:.65em;min-height:46px}input[type=checkbox]{display:inline;width:auto;min-height:0}textarea{resize:vertical}label{display:block;font-weight:700;margin:1em 0 .5em}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(24px,2.6vw,36px);line-height:1.5;margin-bottom:.35em}h2{font-size:23px;margin-bottom:.5em}h3{font-size:23px;margin-bottom:.35em}p{margin-bottom:.6em}a{color:var(--teal)}.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px max(20px,calc((100vw - 1400px)/2));border-bottom:1px solid #d8d9c7;background:var(--paper)}.brand{text-decoration:none;color:var(--ink);font-weight:900;font-size:24px;line-height:1.3}.brand span{display:block;font-size:12px;font-weight:600;letter-spacing:.12em;margin-top:5px}.account{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px}main{max-width:1440px;margin:auto;padding:24px}.eyebrow{font-size:13px;letter-spacing:.18em;color:#587b68;font-weight:800}.intro{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.intro .primary{flex-shrink:0}.welcome{display:grid;grid-template-columns:1.25fr 1fr;gap:60px;max-width:1060px;margin:28px auto}.welcome-art h1{font-size:clamp(36px,4vw,52px)}.welcome-art{position:relative}.welcome-art>img{width:100%;max-height:230px;object-fit:contain}.ticket{margin-top:24px;background:#f5da9e;border:2px dashed #c4a35c;padding:12px 20px;border-radius:12px;font-weight:800;transform:rotate(-2deg)}.ticket span{display:block;font-size:13px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:0 5px 0 #dedcc933}.welcome form{align-self:center}.welcome button.primary{width:100%;margin-top:20px}.hint{font-size:13px;color:#536b62;line-height:1.7;margin-top:12px}.travel-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(350px,1fr);gap:22px;align-items:start}.map-panel{padding:20px;border:1px solid #cfdbd0;background:#f9faf0;border-radius:26px;background-image:radial-gradient(#dfe8dc 1px,transparent 1px);background-size:18px 18px}.map-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.map-heading h2{margin:0}.stamp{border:2px solid var(--teal);color:var(--teal);border-radius:9px;padding:2px 12px;font-weight:800;transform:rotate(4deg);white-space:nowrap}.map-tools{display:flex;gap:7px;align-items:center;margin-top:10px;font-size:12px}.map-tools button{padding:2px 12px}.map-stage{position:relative;margin-top:10px;overflow:hidden;border-radius:20px}.map-stage>svg{width:100%;height:auto;display:block;min-height:300px}.pref-shape{stroke:#fefdf6;stroke-width:1.2;stroke-linejoin:round;fill:var(--c0);cursor:pointer;vector-effect:non-scaling-stroke}.pref-shape:hover,.pref-shape:focus{stroke:#d57136;stroke-width:3;outline:none}.pref-shape.selected{stroke:#984b28;stroke-width:3}.compass{position:absolute;width:15%;right:6%;bottom:7%;pointer-events:none}.suitcase{position:absolute;width:17%;left:7%;top:17%;pointer-events:none}.map-note{position:absolute;left:8%;top:5%;font-size:clamp(12px,1.4vw,17px);transform:rotate(-8deg);font-weight:800;background:#f8e8b5;border-radius:15px;padding:10px 16px;pointer-events:none}.legend{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;font-size:13px;font-weight:700}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:15px;height:15px;border-radius:4px;display:inline-block}.c0{background:var(--c0)}.c1{background:var(--c1)}.c2{background:var(--c2)}.c3{background:var(--c3)}.c4{background:var(--c4)}.dictionary-head h2{margin-bottom:16px}.search-line{display:flex;gap:8px}.search-line input{min-width:0}.search-line button{white-space:nowrap}.search-line+select{margin-top:12px}.results-heading{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin:14px 0}.cards{display:grid;gap:15px}.word-card{background:white;border:1px solid #d5dfce;border-radius:16px;padding:19px;overflow-wrap:anywhere}.word-card .pref-tag{font-size:12px;color:#536b62;background:#edf3e6;border-radius:6px;padding:3px 7px;display:inline-block;margin-bottom:6px}.word-card .meaning{font-weight:700;margin:4px 0 12px}.word-card blockquote{margin:0;background:#f7f7ee;border-left:3px solid #e6c878;padding:8px 12px;font-size:14px;white-space:pre-wrap}.card-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:14px}.card-actions button{font-size:13px}.card-actions .found{background:#fff4d4;border-color:#dfc778}.card-actions .signed{background:#e6efe0}.word-card.hidden-card{border-style:dashed;background:#f0f0e9}.empty{padding:30px 10px;text-align:center;color:#617a68}.toolbar,.inline-form,.row{display:flex;gap:15px;align-items:center;flex-wrap:wrap}.toolbar h2{margin:auto auto auto 0}.inline-form label{flex:1;min-width:200px}.inline-form button{align-self:end;margin-bottom:8px}.admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.tabs .active{background:var(--teal);color:white}.row{padding:16px 0;border-bottom:1px solid var(--line)}.row strong{margin-right:auto}.report{padding:18px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere;white-space:pre-wrap}footer{max-width:1400px;margin:30px auto 0;padding:20px 24px;border-top:1px solid #d1d6c6;font-size:13px}footer>span{float:right}footer details{margin-top:15px}footer p{max-width:850px;margin-top:10px}dialog{border:1px solid #b9c9b8;border-radius:22px;max-width:560px;width:calc(100% - 32px);padding:28px;color:var(--ink);background:var(--paper);max-height:90dvh;overflow-y:auto}dialog::backdrop{background:#153c4680}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.dialog-error{color:#a32d23;margin-top:15px;font-weight:700;white-space:pre-wrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}#notice:empty{display:none}#notice{position:sticky;top:0;z-index:10;background:#fff0bd;padding:12px 24px;border-bottom:1px solid #e0c26f;font-weight:700}#notice.error{background:#ffe4db;color:#942d1e}[hidden]{display:none!important}@media(max-width:1000px){main{padding:18px}.travel-layout{grid-template-columns:minmax(0,1.2fr) minmax(320px,1fr);gap:14px}.panel{padding:20px}.map-panel{padding:16px}.map-tools span{display:none}.welcome{gap:28px}.intro{align-items:flex-start}}@media(max-width:750px){.top{padding:14px;align-items:flex-start}.brand{font-size:21px}.account{justify-content:flex-end;font-size:12px}.intro{display:block}.intro .primary{margin-top:14px;width:100%}.travel-layout,.welcome{grid-template-columns:1fr}.welcome{margin:8px auto}.welcome-art>img{height:140px}.welcome-art h1{font-size:36px}.welcome-art p br{display:none}.map-stage>svg{min-height:0}.map-stage{max-height:none}.dictionary{min-width:0}h1{font-size:25px}.admin-grid{grid-template-columns:1fr}.tabs button{font-size:14px}.inline-form{display:block}dialog{padding:20px}.map-note{font-size:14px}.card-actions button{flex:1}}

/* v1.0.1 — colorful storybook travel */
:root{--ink:#21466c;--teal:#148bc1;--paper:#fffefa;--sand:#fff5d7;--line:#bbdaec;--orange:#f07845;--c0:#ffffff;--c1:#ffcf3f;--c2:#68d76f;--c3:#32a5ec;--c4:#b56ae6}
body{background:radial-gradient(ellipse at 2% 10%,#ffe995 0,transparent 37%),radial-gradient(ellipse at 96% 38%,#d6f0ff 0,transparent 38%),#fff9e9}
.top{border-bottom:4px solid #6fcae8;background:#fffefa;box-shadow:0 5px 0 #fff1b6}
.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand-icon{width:56px;height:56px;border-radius:14px;box-shadow:0 3px 0 #d4e7f2}.brand-title{display:flex;align-items:baseline;gap:1px;font-size:30px;letter-spacing:.04em;line-height:1.2;white-space:nowrap}.brand .brand-title span{display:inline;margin:0;font-size:inherit;font-weight:900;letter-spacing:inherit}.brand .brand-title span:nth-child(1){color:#df523a}.brand .brand-title span:nth-child(2){color:#ef970b;font-size:.72em}.brand .brand-title span:nth-child(3){color:#147cc3}.brand .brand-title span:nth-child(4){color:#249748}.brand .brand-subtitle{font-size:11px;color:#58768a;letter-spacing:.09em}
.account #who{background:#dff4ff;border:1px solid #99d1e8;padding:4px 12px;border-radius:20px;font-weight:800}.account #who:empty{display:none}
.eyebrow{color:#187eac}.intro h1{color:#236793}.intro .primary{background:#f27c39;border-color:#ed722c;box-shadow:0 4px 0 #b95725}.intro .primary:hover{background:#df6221}
button{border-color:#97cce4}button:hover{background:#e0f4ff}button.primary{box-shadow:0 4px 0 #09648e}button.primary:hover{background:#057eb7}.panel{border:2px solid #b5d9e8;box-shadow:0 6px 0 #dcebf47a}.welcome form{border-top:8px solid #40b5db}.welcome-art h1{color:#e2603e}.welcome-art>img.welcome-journey{width:100%;height:auto;max-height:none;object-fit:contain;border-radius:28px;margin-top:20px;border:3px solid #fff;box-shadow:0 5px 16px #cbac6230}.ticket{background:#ffe188;border-color:#d59820;color:#754613}.ticket span{color:#815622}
.map-panel{padding:20px;background:#fffef4;background-image:none;border:3px solid #5bbbdc;box-shadow:0 7px 0 #bcdeea}.map-heading h2{color:#147eb2}.stamp{background:#ffe284;border-color:#eaa336;color:#835213;font-size:18px;border-radius:12px;transform:rotate(3deg)}.map-tools button{background:white;border:1px solid #8acbe8}.map-stage{background:radial-gradient(ellipse at 20% 10%,#eafbff,transparent 48%),linear-gradient(140deg,#c2ecff,#e7f7ff);border:1px solid #9dd3eb;isolation:isolate;box-shadow:inset 0 0 35px #70bddf20}.map-stage>svg{position:relative;z-index:2}.pref-shape{stroke:#5280a7;stroke-width:1.2;fill:var(--c0)}.pref-shape:hover,.pref-shape:focus{stroke:#ef692c;stroke-width:3.5}.pref-shape.selected{stroke:#cd4324;stroke-width:3.5}
.journey-postcard{position:absolute;z-index:3;left:3%;top:8%;width:32%;margin:0;background:#fffefa;border:5px solid #fffefa;border-radius:15px;box-shadow:0 4px 8px #398fc72a;transform:rotate(-5deg);pointer-events:none}.journey-postcard img{display:block;width:100%;height:auto;border-radius:10px}.journey-postcard figcaption{text-align:center;color:#945021;font-weight:800;font-size:clamp(9px,1vw,13px);padding:5px 0 2px}.map-note{z-index:3;left:auto;right:4%;top:auto;bottom:10%;background:#fffdf3;border:2px solid #f4b240;box-shadow:0 4px 0 #e1b94f30;color:#d36223;transform:rotate(5deg);font-size:clamp(12px,1.3vw,17px);line-height:1.6}.map-note:after{content:"";position:absolute;left:20px;bottom:-10px;width:14px;height:14px;background:#fffdf3;border-bottom:2px solid #f4b240;border-right:2px solid #f4b240;transform:rotate(45deg)}
.legend{gap:7px;background:#fffefb;border:1px solid #badbeb;border-radius:14px;padding:10px 6px;margin-top:10px}.legend span{padding:4px 8px;background:#f7fbfd;border-radius:10px;gap:7px;white-space:nowrap}.legend i{width:23px;height:23px;border:1px solid #5280a7;border-radius:6px;box-shadow:0 2px 0 #8bacc222}.hint{color:#4d687b}.dictionary{border-top:8px solid #f3b543}.dictionary-head .eyebrow{color:#c2781c}.dictionary-head h2{color:#bc6324}.word-card{border:2px solid #cce4ef;box-shadow:0 3px 0 #e7f2f9}.word-card:nth-child(3n+1){border-left:6px solid #ffbd45}.word-card:nth-child(3n+2){border-left:6px solid #5bcf9e}.word-card:nth-child(3n){border-left:6px solid #92a6ed}.word-card .pref-tag{background:#e2f3ff;color:#1f6c96}.word-card h3{color:#216b99}.word-card blockquote{background:#fff5d8;border-left:4px solid #f2b640}.card-actions .found{background:#fff0bf;border:1px solid #efbc43;color:#835821}.card-actions .signed{background:#e3f7d8;color:#447231}.word-card.hidden-card{background:#f3f5f8;border-left-color:#94a8b6}.tabs .active{background:#208abb}.dictionary .search-line button{background:#178dc4;border-color:#178dc4;color:white}#notice{border-bottom-color:#f1ba37}.top+.notice{background:#ffeda7}
@media(max-width:1100px){.brand-title{font-size:27px}.brand-icon{width:48px;height:48px}.journey-postcard{width:30%;border-width:3px}.map-note{right:3%;padding:7px 10px}.map-panel{padding:15px}.legend{font-size:12px}.legend span{padding:4px 5px}.legend i{width:20px;height:20px}}
@media(max-width:750px){.top{gap:10px}.brand{gap:8px;flex-shrink:1;min-width:0}.brand-title{font-size:clamp(18px,4.4vw,26px);letter-spacing:0}.brand-icon{width:40px;height:40px;flex-shrink:0;border-radius:10px}.brand .brand-subtitle{font-size:9px;letter-spacing:0}.account{gap:3px;max-width:110px;flex-shrink:0}.account .quiet{font-size:11px;min-height:36px}.account #who{font-size:11px;padding:2px 7px}.welcome-art>img.welcome-journey{height:auto;max-height:none}.journey-postcard figcaption{font-size:10px}.journey-postcard{width:31%;top:8%;left:3%}.map-note{font-size:12px;bottom:12%;right:4%;padding:6px 8px}.legend{justify-content:flex-start}.map-heading h2{font-size:20px}.stamp{font-size:16px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
