:root{--paper:#f8f6f0;--ink:#273d35;--muted:#66716a;--green:#234d43;--light:#e7eee4;--line:#dddcd0;--gold:#bd934a;--white:#fffefa;--serif:'Yu Mincho','Hiragino Mincho ProN',serif;--sans:'Yu Gothic','Hiragino Kaku Gothic ProN',Meiryo,sans-serif;--shadow:0 12px 40px #283b2c09;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.8 var(--sans)}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:var(--green);text-underline-offset:4px}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #bd934a;outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.5}h1{font-size:clamp(29px,3.5vw,46px);letter-spacing:.08em}h2{font-size:25px;letter-spacing:.05em}h3{font-size:19px}p+p{margin-top:12px}small,.small{font-size:12px;color:var(--muted)}em{font-style:normal}img{max-width:100%}.skip{position:absolute;top:-60px;left:16px;z-index:10;background:white;padding:12px}.skip:focus{top:10px}.header{max-width:1440px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:25px 5%;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:25px;font-family:Georgia,serif;line-height:1.25}.brand em{font-style:italic;font-weight:400}.brand small{display:block;font:10px/2 var(--sans);letter-spacing:.11em}.header-actions{display:flex;align-items:center;gap:20px}.local-indicator{font-size:11px;color:var(--muted)}.local-indicator:before{content:'●';color:#56836c;margin-right:8px}.icon-button{width:44px;height:44px;border:1px solid var(--line);background:transparent;border-radius:50%;font-size:20px;color:var(--green)}.app-layout{max-width:1440px;margin:auto;display:grid;grid-template-columns:185px minmax(0,1fr);gap:40px;padding:36px 5% 64px}.navigation{display:flex;flex-direction:column;gap:12px;padding-top:18px}.navigation a{display:flex;align-items:center;gap:15px;padding:13px 18px;border-radius:10px;text-decoration:none;font-size:14px;letter-spacing:.1em}.navigation a span{font-size:22px;line-height:1}.navigation a.active{background:var(--green);color:white}.navigation a:hover:not(.active){background:var(--light)}.nav-caption{margin:65px 18px;font-family:var(--serif);color:#8d968a;font-size:18px;line-height:2.1;letter-spacing:.12em}main{min-width:0;outline:none}.eyebrow{font-size:10px;letter-spacing:.2em;color:#768072;font-weight:600;text-transform:uppercase}.page-top{display:flex;justify-content:space-between;gap:18px;align-items:center;margin:5px 0 25px}.page-top h1{font-size:32px}.subheading{color:var(--muted);margin-top:10px;font-size:13px}.hero{display:grid;grid-template-columns:1.25fr .75fr;min-height:348px;border-radius:18px;background:#e9eee2;border:1px solid #dce3d4;overflow:hidden}.hero-copy{padding:42px 0 38px 40px;z-index:1}.hero h1{margin:17px 0 15px}.hero p:not(.eyebrow){color:#5d6a5c;font-size:13px}.hero-art{position:relative;display:flex;align-items:center;justify-content:center;padding:30px}.hero-art:before{content:'';position:absolute;width:245px;height:245px;border-radius:50%;border:1px solid #cad4bb;outline:1px solid #d9dfcd;outline-offset:18px}.hero-art img{position:relative;height:260px;width:145px;object-fit:cover;border-radius:8px;box-shadow:5px 15px 25px #37432832;transform:rotate(8deg)}.hero-art .star{position:absolute;color:#a18a54;font-size:30px;right:18%;top:40px}.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:12px 22px;border-radius:8px;border:1px solid var(--green);background:var(--green);color:white;text-decoration:none;min-height:46px;font-size:13px;font-weight:600}.btn.secondary{background:transparent;color:var(--green);border-color:#b6c4b8}.btn.soft{background:var(--light);border-color:var(--light);color:var(--green)}.btn:hover{filter:brightness(.95)}.text-button{background:none;border:0;padding:10px 3px;text-decoration:underline;text-underline-offset:5px;color:var(--green);font-size:13px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:30px 0 16px}.section-heading h2{font-size:21px}.section-heading a{font-size:12px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:20px}.stat{padding:20px 23px;border:1px solid var(--line);border-radius:12px;background:var(--white)}.stat strong{font:32px Georgia,serif;margin-right:6px}.stat p{font-size:12px;color:var(--muted)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:22px}.panel{border:1px solid var(--line);background:var(--white);padding:25px;border-radius:12px;box-shadow:var(--shadow)}.panel+.panel{margin-top:18px}.two-col>.panel{margin-top:0}.panel h3+p{margin-top:12px}.empty{padding:27px 15px;text-align:center;color:var(--muted);font-size:13px}.empty strong{display:block;color:var(--ink);font-family:var(--serif);font-size:20px;margin-bottom:8px}.empty .glyph{font-size:30px;color:#97a88c}.week{display:flex;justify-content:space-between;margin:24px 0 15px;gap:6px}.day{text-align:center;font-size:10px;color:var(--muted)}.day i{display:flex;align-items:center;justify-content:center;width:29px;height:29px;background:#f0f1e9;border-radius:50%;font:12px var(--sans);font-style:normal;margin-bottom:4px}.day.done i{background:#6e8c71;color:white}.day.today i{outline:1px solid var(--green);outline-offset:3px}.row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:13px 0;border-bottom:1px solid #eeeee6}.row:last-child{border-bottom:0}.row p{font-size:13px}.pill{display:inline-block;border:1px solid #d4decf;border-radius:20px;padding:2px 10px;font-size:10px;color:var(--green);background:#eef2e8}.pill.gold{background:#f6eddc;color:#7f632d;border-color:#e5d6b9}.library-toolbar{display:flex;gap:12px;margin:22px 0}.library-toolbar input{flex:1;min-width:0}.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.deck-card{position:relative;text-align:left;padding:12px 12px 16px;background:var(--white);border:1px solid var(--line);border-radius:12px;color:var(--ink);transition:transform .15s}.deck-card:hover{transform:translateY(-3px);border-color:#96aa90}.deck-card img{display:block;aspect-ratio:768/1376;width:100%;object-fit:cover;border-radius:7px;margin-bottom:10px}.deck-card .name{font-family:var(--serif);font-size:18px}.deck-card .number{font:11px Georgia,serif;letter-spacing:.1em;color:var(--muted)}.deck-card .pill{margin-top:7px}.study-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:30px}.study-image{position:sticky;top:20px;align-self:start}.study-image img{width:100%;border-radius:11px;box-shadow:0 8px 24px #29382c20}.study-image p{text-align:center;margin-top:10px}.keyword{display:inline-block;border-bottom:1px solid #adbda5;padding:0 4px 4px;margin:6px 13px 6px 0;font-family:var(--serif);font-size:20px}.detail-block{margin-top:24px}.detail-block h3{font:600 12px var(--sans);color:var(--muted);margin-bottom:10px;letter-spacing:.08em}.detail-block p{font-size:14px}.callout{padding:18px 20px;border-left:3px solid #98ac88;background:#eef1e7;margin:18px 0;font-size:13px}.callout.warning{background:#faf0e3;border-color:#c9985a}.steps{display:flex;gap:14px;flex-wrap:wrap;margin:16px 0 27px;font-size:12px;color:#667568}.steps b{color:var(--green);border-bottom:2px solid var(--green)}label{display:block;font-size:13px;font-weight:600;margin-bottom:7px}input,select,textarea{width:100%;padding:12px;border:1px solid #cbcfc3;border-radius:7px;background:#fffefa;color:var(--ink);font-size:14px}textarea{resize:vertical;min-height:90px;line-height:1.8}input[type=checkbox]{width:18px;height:18px;accent-color:var(--green)}.field{margin-bottom:19px}.field small{display:block;margin-top:5px}.check{display:flex;gap:10px;align-items:flex-start;margin:13px 0;font-size:13px;font-weight:400}.check input{flex-shrink:0;margin-top:4px}.self-rating{display:flex;gap:9px;flex-wrap:wrap;margin-top:16px}.self-rating .btn{flex:1;white-space:nowrap}.notice{font-size:12px;color:var(--muted);padding:12px 0}.question{font-family:var(--serif);font-size:21px;margin:15px 0}.quiz-options{display:grid;gap:10px}.quiz-options button{text-align:left;padding:14px 18px;border:1px solid #ccd4c4;background:#fffefa;border-radius:8px;color:var(--ink)}.quiz-options button.chosen{border:2px solid var(--green);background:var(--light)}.quiz-result{font-size:13px;margin:16px 0}.quote{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;background:#f4f4ee;padding:16px;border-radius:7px}.note-summary{white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:var(--muted);font-size:13px;margin:12px 0}.note-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.note-title{font-family:var(--serif);font-size:20px}.appendix{border-left:2px solid #c1cdb9;padding:0 0 0 18px;margin:22px 0}.metadata{font-size:11px;color:var(--muted);margin:8px 0}.progress-track{height:7px;background:#e8ecdf;border-radius:6px;overflow:hidden;margin:10px 0}.progress-track progress{width:100%;height:100%;appearance:none;display:block}.progress-track progress::-webkit-progress-bar{background:#e8ecdf}.progress-track progress::-webkit-progress-value{background:#78936d;border-radius:6px}.footer{max-width:1440px;margin:auto;padding:20px 5%;border-top:1px solid var(--line);color:#838b7f;letter-spacing:.16em;font-size:9px;display:flex;justify-content:space-between}.footer span{letter-spacing:.05em}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;max-width:90vw;width:max-content;background:var(--green);color:white;padding:13px 23px;border-radius:9px;font-size:13px;z-index:20;box-shadow:0 4px 20px #0002;transition:.2s}.toast.visible{opacity:1;transform:translate(-50%,0)}.toast.error{background:#7e412b}dialog{width:min(660px,94vw);max-height:88vh;padding:30px;border:1px solid var(--line);border-radius:15px;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#132b2388;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.dialog-head button{border:0;background:none;font-size:25px;color:var(--green)}dialog h3{margin:25px 0 10px}dialog p{font-size:13px}dialog .actions{margin-top:12px}.file-input{max-width:100%;font-size:12px}details{margin:15px 0}summary{cursor:pointer;font-size:13px}details p,details li{font-size:12px;margin:12px 0}ul{padding-left:22px}.loading{padding:80px 0;text-align:center}.completion{max-width:610px;margin:40px auto;text-align:center}.completion .seal{display:inline-grid;place-items:center;width:68px;height:68px;border-radius:50%;background:var(--light);font-size:27px;color:#658252;margin-bottom:20px}.completion h1{font-size:30px}.completion .actions{justify-content:center}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.draft-status{font-size:11px;color:var(--muted)}.help-link{font-size:11px}.tag-list{display:flex;gap:7px;flex-wrap:wrap}.backup-prompt{padding:14px 18px;border:1px solid #e3d6bc;background:#f8f0de;border-radius:8px;margin:22px 0;font-size:12px}.filter-count{margin:10px 0;font-size:12px;color:var(--muted)}.activity-dot{color:#78936d}.note-card{margin-bottom:16px}.detail-block a{overflow-wrap:anywhere}.inline-error{color:#974326;font-size:13px}.mobile-only{display:none}[hidden]{display:none!important}
@media(min-width:1350px){.hero-art img{height:285px;width:159px}.hero{min-height:375px}}
@media(max-width:1050px){.app-layout{grid-template-columns:140px minmax(0,1fr);gap:24px;padding-left:4%;padding-right:4%}.hero-copy{padding-left:27px}.hero h1{font-size:34px}.card-grid{grid-template-columns:repeat(3,1fr)}.hero-art{padding:18px}.hero-art img{height:240px;width:134px}.hero-art:before{width:185px;height:185px}.study-layout{grid-template-columns:170px minmax(0,1fr);gap:22px}}
@media(max-width:720px){body{font-size:14px}.header{padding:18px 20px}.brand{font-size:23px}.brand small{font-size:9px}.header-actions{gap:8px}.local-indicator{display:none}.app-layout{display:block;padding:24px 20px 105px}.navigation{position:fixed;z-index:10;bottom:0;left:0;right:0;background:#fffefaf5;backdrop-filter:blur(12px);border-top:1px solid var(--line);flex-direction:row;justify-content:space-around;gap:0;padding:8px 8px calc(8px + env(safe-area-inset-bottom))}.navigation a{display:flex;flex-direction:column;gap:3px;width:22%;padding:7px 2px;font-size:10px;border-radius:9px}.navigation a span{font-size:21px}.nav-caption{display:none}.hero{grid-template-columns:1fr .57fr;min-height:300px}.hero-copy{padding:27px 0 27px 23px}.hero h1{font-size:28px;letter-spacing:.02em;margin-top:15px}.hero p:not(.eyebrow){font-size:12px}.hero .actions{gap:9px;flex-direction:column;align-items:flex-start;margin-top:18px}.hero .btn{padding:10px 15px;font-size:12px}.hero-art{padding:10px;overflow:hidden}.hero-art img{height:200px;width:112px;max-width:unset}.hero-art:before{width:130px;height:130px}.hero-art .star{font-size:20px;right:18px;top:28px}.stats{gap:8px}.stat{padding:15px 12px}.stat strong{font-size:27px}.stat p{font-size:10px}.two-col{grid-template-columns:1fr;gap:16px}.panel{padding:21px}.card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.deck-card{padding:7px 7px 11px;border-radius:9px}.deck-card .name{font-size:14px}.deck-card .number{font-size:9px}.deck-card .pill{font-size:9px;padding:1px 6px}.study-layout{grid-template-columns:1fr;gap:22px}.study-image{position:static;display:flex;justify-content:center;align-items:center;gap:22px}.study-image img{width:125px}.study-image p{max-width:130px}.page-top h1{font-size:27px}.page-top .btn{padding:9px 12px}.footer{display:none}.library-toolbar{flex-wrap:wrap}.library-toolbar select{width:130px}.toast{bottom:95px}.form-grid{grid-template-columns:1fr}.question{font-size:19px}.self-rating{flex-direction:column}.steps{gap:10px;font-size:11px}dialog{padding:23px}.nav-caption{display:none}.mobile-only{display:block}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.nav-caption{white-space:nowrap;font-size:16px;letter-spacing:.04em}
@media(max-width:720px){.hero{position:relative;display:block;min-height:340px}.hero-copy{padding:26px 23px}.hero h1{font-size:28px}.hero-copy>.eyebrow{font-size:9px;letter-spacing:.13em}.hero-copy>p:not(.eyebrow){max-width:185px}.hero-art{position:absolute;right:-8px;bottom:24px;width:120px;height:196px;pointer-events:none}.hero-art img{width:94px;height:168px;transform:rotate(8deg)}.hero-art:before{width:90px;height:90px;outline-offset:12px}.hero-art .star{right:14px;top:3px}.hero .actions{max-width:190px}.nav-caption{display:none}}
/* A learning planner: paper pages, margin, ruled writing, and bookmark tabs. */
body{background-color:#e9e8df;background-image:radial-gradient(#bcbba322 .6px,transparent .6px);background-size:6px 6px}
.header{border-bottom:0;padding-top:24px;padding-bottom:20px}
.app-layout{grid-template-columns:minmax(0,1fr) 122px;gap:0;padding-top:12px;align-items:start;max-width:1320px}
main{position:relative;order:1;min-height:760px;padding:34px 35px 60px 62px;background:#fffdf5;border:1px solid #d8d3c2;border-radius:5px 14px 14px 5px;box-shadow:3px 4px 0 #f4f1e6,4px 5px 0 #d4cfbd,7px 8px 0 #f6f3e9,8px 9px 0 #d4cfbd,0 20px 40px #3f443019}
main:before{content:'';position:absolute;left:17px;top:0;bottom:0;width:20px;border-right:1px solid #dfbcb27a;background-image:radial-gradient(ellipse 4px 5px at 5px 22px,#797865 0 40%,#e4dec9 48% 70%,transparent 80%);background-size:14px 52px;background-repeat:repeat-y;pointer-events:none}
main:after{content:'STARDUST NOTE  /  学びのページ';position:absolute;bottom:18px;right:34px;color:#92917e;font:9px var(--sans);letter-spacing:.15em}
.navigation{order:2;padding-top:45px;gap:9px;padding-left:7px}.navigation a{border:1px solid #d4d8c6;border-left:0;background:#e0e8d6;border-radius:0 10px 10px 0;padding:14px 12px;gap:9px;box-shadow:2px 3px 0 #a8af9920;font-size:13px}.navigation a:nth-child(2){background:#eee6cd}.navigation a:nth-child(3){background:#e8d9cd}.navigation a:nth-child(4){background:#dce6e1}.navigation a.active{background:var(--green);border-color:var(--green);color:white}.navigation a span{font-size:19px}.nav-caption{margin:40px 10px;font-size:13px;line-height:2.3;color:#7d8676}
.page-top{border-bottom:1px solid #e1dfd1;padding-bottom:20px;margin-bottom:24px}.page-top>.eyebrow{font-size:11px;letter-spacing:.12em}.hero{background:#f1f2e6;border:1px solid #dce0cd;border-radius:4px;min-height:320px}.hero-copy{padding:30px 0 30px 28px}.hero h1{font-size:36px}.hero-art:after{content:'';position:absolute;left:50%;top:24px;width:76px;height:22px;background:#d9be83a3;transform:translateX(-50%) rotate(-7deg);box-shadow:0 1px 2px #0001}.hero-art img{height:245px;width:137px}.hero-art:before{border-color:#d8ddc6;outline-color:#e1e5d3}.hero .eyebrow{letter-spacing:.15em}
.panel{border-radius:4px;box-shadow:none;background:#fffef8}.stats{gap:0;border-top:1px solid #dcdccb;border-bottom:1px solid #dcdccb;margin-top:25px}.stat{border:0;border-right:1px dashed #d3d6c6;border-radius:0;background:transparent;padding:18px 20px}.stat:last-child{border-right:0}.stat strong{font-style:italic}.section-heading{border-bottom:1px solid #e2e2d4;padding-bottom:10px}.quote{border-radius:2px;background:#f5f3e8;border-left:2px solid #c6ccb2;line-height:2}.note-card{border-top:3px solid #c8d2b6}.note-title{margin-top:12px}.metadata{letter-spacing:.02em}.btn{border-radius:5px}.card-grid .deck-card{border-radius:4px}.card-grid img{border-radius:3px}.form-grid{gap:18px}textarea{border:1px solid #d5d6c7;border-radius:3px;background-color:#fffef9;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,#dce2d6 31px,#dce2d6 32px);background-position:0 10px;line-height:32px;padding:10px 14px;min-height:128px}.field label{letter-spacing:.04em}.field input,.field select{border-radius:3px}.appendix{border-left-style:dashed}.footer{border-top:0}.steps{font-family:var(--serif)}.progress-track{border-radius:2px}
@media(min-width:1350px){.hero{min-height:352px}.hero-art img{height:275px;width:154px}}
@media(max-width:1050px) and (min-width:721px){.app-layout{grid-template-columns:minmax(0,1fr) 102px;padding-left:3%;padding-right:3%}main{padding-left:47px;padding-right:23px}.navigation a{padding:13px 7px;font-size:12px;gap:6px}.nav-caption{font-size:11px}.hero-copy{padding-left:22px}.hero h1{font-size:29px}.hero-art img{height:214px;width:120px}.hero-art:after{top:28px;width:65px}.hero-art:before{width:160px;height:160px}.stats .stat{padding:16px 10px}.two-col{gap:14px}.two-col .panel{padding:18px}.study-layout{grid-template-columns:140px minmax(0,1fr);gap:20px}}
@media(max-width:720px){.header{padding:18px 17px}.brand{font-size:23px}.brand small{font-size:8px}.app-layout{display:block;padding:5px 12px 110px}main{min-height:650px;padding:22px 17px 48px 28px;border-radius:3px 9px 9px 3px}main:before{left:5px;width:13px;background-size:11px 44px;background-image:radial-gradient(ellipse 3px 4px at 4px 22px,#797865 0 40%,#e4dec9 48% 70%,transparent 80%)}main:after{font-size:8px;right:16px;bottom:16px}.navigation{padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:#f7f5eaf8;gap:5px}.navigation a{border-radius:8px 8px 0 0;border:1px solid #d4d8c6;border-bottom:0;padding:7px 2px;font-size:10px;box-shadow:none;gap:3px}.navigation a span{font-size:19px}.page-top{padding-bottom:15px;margin-bottom:19px;gap:8px}.page-top>.eyebrow{font-size:9px}.page-top .pill{white-space:nowrap;font-size:9px}.hero{min-height:355px}.hero-copy{padding:23px 16px}.hero h1{font-size:25px;letter-spacing:0}.hero-copy>.eyebrow{font-size:8px;letter-spacing:.09em}.hero-copy>p:not(.eyebrow){max-width:159px;font-size:11px}.hero-art{right:-9px;bottom:29px;width:111px;height:179px}.hero-art img{width:84px;height:150px}.hero-art:after{width:44px;height:15px;top:6px}.hero-art .star{display:none}.hero-art:before{width:82px;height:82px}.hero .actions{max-width:164px}.hero .btn{font-size:11px;padding:10px 12px}.stats .stat{padding:14px 7px}.stat strong{font-size:26px}.stat p{font-size:9px}.stat small{font-size:9px}.two-col{gap:16px}.panel{padding:18px}.section-heading h2{font-size:17px}.section-heading a{font-size:10px}.study-layout{display:block}.study-image{margin-bottom:24px}.study-image img{width:115px}.card-grid{gap:7px}.deck-card .name{font-size:12px}.deck-card .number{font-size:8px;letter-spacing:0}.page-top h1{font-size:25px}.page-top .btn{font-size:11px;padding:8px 10px}.self-rating .btn{font-size:13px}.nav-caption{display:none}.question{font-size:18px}.completion{margin:15px 0}.completion h1{font-size:24px}}
/* Keep the search field readable after a suit filter is added. */
.library-toolbar{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;align-items:center}
.library-toolbar select{width:auto;max-width:230px}
@media(max-width:900px){.library-toolbar{grid-template-columns:1fr 1fr}.library-toolbar input{grid-column:1/-1}.library-toolbar select{width:100%;max-width:none;min-width:0}}
@media(max-width:560px){.library-toolbar{grid-template-columns:1fr}}
