:root{--blackboard: #2D4A3E;--blackboard-dark: #1F3329;--chalk: #FAF6EC;--wood: #8B6F47;--wood-light: #C9A876;--wood-dark: #6B5535;--dragonfly: #5BA9C9;--dragonfly-deep: #3B7A95;--chick: #F4C842;--chick-deep: #D9A82E;--ink: #1A1614;--ink-soft: #4A4540;--line: #E5DBC4;--paper: #FBF7EC}*{box-sizing:border-box}body{margin:0;font-family:Noto Sans JP,Hiragino Sans,system-ui,sans-serif;color:var(--ink);background:var(--paper);line-height:1.7;font-size:16px}a{color:var(--dragonfly-deep);text-decoration:none}a:hover{text-decoration:underline}.site-header{background:repeating-linear-gradient(90deg,transparent 0px,transparent 219px,rgba(0,0,0,.28) 219px,rgba(0,0,0,.28) 220px,transparent 220px,transparent 222px),repeating-linear-gradient(0deg,rgba(0,0,0,.06) 0px,transparent 1px,transparent 3px,rgba(255,255,255,.04) 3px,transparent 4px,transparent 9px),radial-gradient(ellipse 60px 8px at 18% 50%,rgba(0,0,0,.18),transparent 70%),radial-gradient(ellipse 80px 10px at 72% 45%,rgba(0,0,0,.14),transparent 70%),radial-gradient(ellipse 40px 6px at 90% 60%,rgba(0,0,0,.12),transparent 70%),linear-gradient(180deg,var(--wood-light) 0%,var(--wood) 100%);border-bottom:4px solid var(--wood-dark);position:sticky;top:0;z-index:100;box-shadow:0 4px 14px #00000047,inset 0 1px #ffffff2e,inset 0 -1px #00000026}.header-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:24px;padding:12px 24px;position:relative}.logo{display:flex;align-items:center;gap:12px;text-decoration:none}.logo img{width:56px;height:56px;border-radius:50%;background:var(--chalk);border:3px solid var(--chalk);box-shadow:0 2px 6px #0000004d,inset 0 0 0 1px #00000014}.logo-text{color:var(--chalk);font-weight:700;font-size:20px;line-height:1.2;text-shadow:0 1px 0 rgba(0,0,0,.25);font-family:Kosugi Maru,"M PLUS Rounded 1c",Hiragino Sans,sans-serif}.logo-text small{display:block;font-size:12px;font-weight:400;opacity:.88;font-family:Noto Sans JP,sans-serif}.timetable-nav{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap}.timetable-nav a{background:var(--chalk);color:var(--ink);padding:8px 14px;border-radius:6px 6px 2px 2px;font-size:14px;font-weight:600;border-top:3px solid var(--chick);transition:transform .18s cubic-bezier(.22,.61,.36,1),box-shadow .18s,background .18s;box-shadow:0 1px 2px #0000002e;font-family:Kosugi Maru,Noto Sans JP,sans-serif}.timetable-nav a:hover,.timetable-nav a:focus-visible{transform:translateY(-4px);text-decoration:none;background:#fff;box-shadow:0 6px 12px #00000038;outline:none}.timetable-nav a.search{background:var(--blackboard);color:var(--chalk);border-top-color:var(--dragonfly)}.timetable-nav a.search:hover{background:#1f3329}.hero{background:radial-gradient(ellipse 80% 50% at 50% -10%,rgba(255,253,235,.55),transparent 70%),repeating-linear-gradient(90deg,transparent 0px,transparent 80px,rgba(0,0,0,.018) 80px,rgba(0,0,0,.018) 81px),linear-gradient(180deg,#ecddc2,#e2d2b2 60%,#d6c49c);padding:28px 24px 0;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='w'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.32  0 0 0 0 0.25  0 0 0 0 0.16  0 0 0 0.06 0'/></filter><rect width='100%25' height='100%25' filter='url(%23w)'/></svg>");opacity:.7;mix-blend-mode:multiply;pointer-events:none}.hero:after{content:"";position:absolute;left:0;right:0;bottom:48px;height:28px;background:linear-gradient(180deg,transparent,rgba(0,0,0,.14));pointer-events:none}.hero-inner{max-width:1100px;margin:0 auto;position:relative;z-index:1}.board-stage{position:relative;padding-bottom:24px}.blackboard-wrap{position:relative;padding:16px;border-radius:10px;background:radial-gradient(ellipse 28px 5px at 12% 50%,rgba(0,0,0,.32),transparent 70%),radial-gradient(ellipse 18px 4px at 88% 50%,rgba(0,0,0,.28),transparent 70%),radial-gradient(ellipse 14px 4px at 50% 14%,rgba(0,0,0,.22),transparent 70%),radial-gradient(ellipse 20px 4px at 38% 88%,rgba(0,0,0,.22),transparent 70%),repeating-linear-gradient(0deg,#0000 0px 4px,#00000029 4px 5px,#0000 5px 9px,#ffffff0d 9px 10px),linear-gradient(90deg,var(--wood-dark) 0%,var(--wood) 10%,var(--wood) 90%,var(--wood-dark) 100%),linear-gradient(180deg,var(--wood) 0%,var(--wood-dark) 100%);box-shadow:0 22px 44px #0006,0 4px 8px #00000026,inset 0 0 0 2px #0000006b,inset 0 2px #ffffff1f}.blackboard-wrap:before{content:"";position:absolute;inset:12px;border-radius:4px;box-shadow:0 0 0 1px #0000008c,0 0 0 3px #0000002e,inset 0 2px 6px #0006;pointer-events:none;z-index:3}.blackboard{background-color:var(--blackboard);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='320' height='320'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.16 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>"),repeating-linear-gradient(90deg,transparent 0px,transparent 40px,rgba(255,255,255,.022) 40px,rgba(255,255,255,.022) 180px,transparent 180px,transparent 280px,rgba(255,255,255,.014) 280px,rgba(255,255,255,.014) 420px,transparent 420px,transparent 540px),repeating-linear-gradient(0deg,transparent 0px,transparent 38px,rgba(255,255,255,.014) 38px,rgba(255,255,255,.014) 110px),linear-gradient(180deg,transparent 60%,rgba(255,255,255,.05) 95%,rgba(255,255,255,.08) 100%);background-size:320px 320px,auto,auto,auto;border-radius:3px;box-shadow:inset 0 0 70px #00000080,inset 0 0 14px #0006,inset 0 2px #00000073;padding:36px 320px 36px 40px;position:relative;min-height:240px;overflow:hidden}.blackboard:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 35% at 18% 96%,rgba(255,255,255,.07),transparent 70%),radial-gradient(ellipse 40% 25% at 88% 92%,rgba(255,255,255,.04),transparent 70%);pointer-events:none}.blackboard:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.22) 100%);pointer-events:none}.chalk-text{color:var(--chalk);font-family:Yomogi,Kosugi Maru,"M PLUS Rounded 1c",Hiragino Sans,sans-serif;position:relative;z-index:2}.chalk-text .label{display:inline-block;font-size:14px;padding:4px 14px;border:1.5px dashed rgba(250,246,236,.65);border-radius:4px;margin-bottom:12px;letter-spacing:.12em;text-shadow:0 0 1px rgba(250,246,236,.7)}.chalk-text h1{font-family:Yomogi,Kosugi Maru,Hiragino Sans,sans-serif;font-size:36px;margin:0 0 14px;line-height:1.35;font-weight:400;letter-spacing:.02em;text-shadow:0 0 1px rgba(255,255,255,.75),0 0 6px rgba(250,246,236,.22),0 0 14px rgba(250,246,236,.12),1px 1px 0 rgba(0,0,0,.18)}.chalk-text .subtitle{font-family:Kosugi Maru,Hiragino Sans,sans-serif;font-size:17px;opacity:.95;margin-bottom:18px;text-shadow:0 0 1px rgba(255,255,255,.4),0 0 6px rgba(250,246,236,.12)}.chalk-list{list-style:none;padding:0;margin:0;display:flex;gap:12px;flex-wrap:wrap}.chalk-list li{font-size:14px;padding:6px 14px;background:#faf6ec14;border:1px solid rgba(250,246,236,.32);border-radius:999px;text-shadow:0 0 1px rgba(255,255,255,.4);font-family:Kosugi Maru,sans-serif}.chalk-tray{position:relative;margin:-2px 10px 0;height:26px;border-radius:0 0 6px 6px;background:repeating-linear-gradient(0deg,#0000,#0000002e,#0000 3px),linear-gradient(180deg,#6b5535,#4a3a23);box-shadow:inset 0 4px 5px #0000008c,inset 0 -1px #ffffff14,0 6px 10px #0000002e;display:flex;align-items:center;gap:12px;padding:0 24px;z-index:2}.chalk-tray:before{content:"";position:absolute;left:26%;right:22%;bottom:4px;height:5px;background:radial-gradient(ellipse 50% 100% at 30% 50%,rgba(255,255,255,.6),transparent 70%),radial-gradient(ellipse 40% 100% at 75% 50%,rgba(255,255,255,.4),transparent 70%);filter:blur(1.5px);pointer-events:none}.chalk-tray:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:#00000080}.chalk-piece{width:38px;height:8px;border-radius:2px;background:linear-gradient(180deg,#fff,#f1ecda);box-shadow:0 1px 2px #000000a6,inset 0 -1px #0000001a,inset 0 1px #ffffffb3;transform:rotate(-1deg)}.chalk-piece.yellow{background:linear-gradient(180deg,#ffe680,#e8c547)}.chalk-piece.short{width:22px;transform:rotate(2deg)}.eraser{position:relative;width:64px;height:16px;background:linear-gradient(180deg,#8b6f47,#5d4a2e);border-radius:2px;box-shadow:0 2px 3px #0000008c,inset 0 1px #ffffff1f,inset 0 -1px #0000004d;transform:rotate(-2deg) translateY(-2px)}.eraser:before{content:"";position:absolute;left:1px;right:1px;bottom:100%;height:7px;background:linear-gradient(180deg,#faf6ec,#e5dbc4);border-radius:2px 2px 0 0;box-shadow:inset 0 1px #ffffffd9,0 -1px 2px #ffffff4d}.eraser:after{content:"";position:absolute;left:-4px;right:-4px;top:-10px;height:4px;background:radial-gradient(ellipse,rgba(255,255,255,.55),transparent 70%);filter:blur(2px)}.teacher-figure{position:absolute;right:-8px;bottom:0;width:290px;z-index:4;pointer-events:none}.teacher-figure img{width:100%;display:block;filter:drop-shadow(0 10px 16px rgba(0,0,0,.45))}.teacher-speech{position:absolute;top:-28px;left:-28px;background:var(--chalk);color:var(--ink);padding:10px 18px;border-radius:22px;font-size:14px;font-weight:700;font-family:Kosugi Maru,sans-serif;box-shadow:0 6px 14px #00000047,inset 0 1px #fff9;white-space:nowrap;z-index:5;animation:speech-bob 3.4s ease-in-out infinite}.teacher-speech:after{content:"";position:absolute;bottom:-10px;right:28px;border:10px solid transparent;border-top-color:var(--chalk);border-bottom:0;filter:drop-shadow(0 2px 1px rgba(0,0,0,.15))}@keyframes speech-bob{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-3px) rotate(1deg)}}.podium{background:repeating-linear-gradient(90deg,transparent 0px,transparent 179px,rgba(0,0,0,.4) 179px,rgba(0,0,0,.4) 180px,transparent 180px,transparent 182px),repeating-linear-gradient(0deg,#0000 0px 3px,#00000024 3px 4px,#0000 4px 8px,#ffffff0d 8px 9px),radial-gradient(ellipse 24px 4px at 25% 50%,rgba(0,0,0,.25),transparent 70%),radial-gradient(ellipse 18px 3px at 75% 50%,rgba(0,0,0,.2),transparent 70%),linear-gradient(180deg,var(--wood) 0%,var(--wood-dark) 100%);height:32px;margin:0 -24px;position:relative;box-shadow:inset 0 5px 10px #00000059,inset 0 -3px #0006,0 -3px 8px #0000002e}.podium:before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:linear-gradient(180deg,rgba(0,0,0,.45),transparent)}.podium:after{content:"";position:absolute;top:6px;left:0;right:0;height:1px;background:#ffffff2e}.section{max-width:1100px;margin:0 auto;padding:36px 24px}.section-title{font-family:Kosugi Maru,"M PLUS Rounded 1c",sans-serif;font-size:28px;font-weight:700;color:var(--ink);margin:0 0 8px;display:flex;align-items:center;gap:12px}.section-title:before{content:"📝";font-size:28px}.section-subtitle{color:var(--ink-soft);font-size:14px;margin:0 0 32px;padding-left:40px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.card-link{display:block;text-decoration:none;color:inherit}.card-link:hover{text-decoration:none}.card{position:relative;background-color:var(--paper);background-image:radial-gradient(circle 6.5px at 18px 32px,#1a1614 0%,#1a1614 55%,rgba(0,0,0,.45) 60%,rgba(0,0,0,.18) 75%,transparent 88%),radial-gradient(circle 6.5px at 18px 50%,#1a1614 0%,#1a1614 55%,rgba(0,0,0,.45) 60%,rgba(0,0,0,.18) 75%,transparent 88%),radial-gradient(circle 6.5px at 18px calc(100% - 32px),#1a1614 0%,#1a1614 55%,rgba(0,0,0,.45) 60%,rgba(0,0,0,.18) 75%,transparent 88%),linear-gradient(90deg,transparent 0,transparent 38px,rgba(214,98,98,.55) 38px,rgba(214,98,98,.55) 39.5px,transparent 39.5px),repeating-linear-gradient(0deg,transparent 0,transparent 30px,rgba(91,169,201,.22) 30px,rgba(91,169,201,.22) 31px,transparent 31px,transparent 32px),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='p'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.35  0 0 0 0 0.28  0 0 0 0 0.18  0 0 0 0.05 0'/></filter><rect width='100%25' height='100%25' filter='url(%23p)'/></svg>"),linear-gradient(180deg,#fcf8ed,#f7f1e0);background-size:auto,auto,auto,auto,auto,220px 220px,auto;border:1px solid var(--line);border-radius:5px;padding:24px 22px 22px 50px;box-shadow:0 2px 4px #0000000f,0 8px 14px #0000000a,inset 0 0 0 1px #fff6;transition:transform .28s cubic-bezier(.22,.61,.36,1),box-shadow .28s,background-position .28s}.card:hover{transform:translateY(-6px) rotate(-.5deg);box-shadow:0 4px 8px #00000014,0 18px 30px #0000001f,inset 0 0 0 1px #ffffff80}.cards .card:nth-child(2):hover{transform:translateY(-6px) rotate(.4deg)}.cards .card:nth-child(3):hover{transform:translateY(-6px) rotate(-.3deg)}.card:before{content:"";position:absolute;left:32px;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,rgba(0,0,0,.06) 20%,rgba(0,0,0,.06) 80%,transparent);pointer-events:none}.card:after{content:"";position:absolute;bottom:0;right:0;width:22px;height:22px;background:linear-gradient(135deg,transparent 50%,rgba(0,0,0,.06) 50%,rgba(255,255,255,.6) 70%,var(--paper) 100%);border-radius:0 0 5px;pointer-events:none}.card-tag{display:inline-block;background:var(--chick);color:var(--ink);font-size:11px;font-weight:700;padding:4px 11px;border-radius:3px;margin-bottom:14px;letter-spacing:.05em;box-shadow:0 1px 2px #0000001f,inset 0 -1px #00000014;font-family:Kosugi Maru,sans-serif;position:relative;z-index:1}.card-tag.tag-2{background:var(--dragonfly);color:var(--chalk)}.card-tag.tag-3{background:#e08a8a;color:var(--chalk)}.card-illust{position:relative;width:100%;height:124px;background:#fff;border:1px solid #d8cfb8;display:flex;align-items:center;justify-content:center;margin-bottom:18px;overflow:visible;box-shadow:0 1px #fff9 inset,0 4px 10px #0000001a,0 1px 2px #0000000f;transform:rotate(-1deg);transition:transform .3s}.card-illust:before{content:"";position:absolute;top:-9px;left:16px;width:54px;height:16px;background:repeating-linear-gradient(90deg,#fff0 0 6px,#ffffff40 6px 7px),linear-gradient(180deg,#f4c842b3,#d9a82eb3);border-left:1px dashed rgba(0,0,0,.1);border-right:1px dashed rgba(0,0,0,.1);transform:rotate(-4deg);box-shadow:0 2px 3px #0000001f}.card-illust:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#f7edd1,#e8dbc2);z-index:0}.card-illust img{position:relative;z-index:1;height:100%;width:auto;object-fit:contain;filter:drop-shadow(0 1px 1px rgba(0,0,0,.1))}.card:hover .card-illust{transform:rotate(-1.6deg) translateY(-2px)}.card-title{font-family:Kosugi Maru,Hiragino Sans,sans-serif;font-size:17px;font-weight:700;margin:0 0 10px;color:var(--ink);line-height:1.55;position:relative;z-index:1}.card-excerpt{font-size:13px;color:var(--ink-soft);margin:0 0 14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;position:relative;z-index:1}.card-meta{font-size:12px;color:var(--ink-soft);display:flex;gap:14px;border-top:1px dashed var(--line);padding-top:10px;position:relative;z-index:1}.timetable{background:var(--chalk);border-radius:12px;padding:32px;box-shadow:0 4px 12px #0000000f;border:1px solid var(--line)}.timetable-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.subject{text-align:center;padding:24px 16px;border-radius:8px;border:2px solid var(--line);background:var(--paper);transition:all .2s;cursor:pointer;text-decoration:none;color:inherit;display:block}.subject:hover{border-color:var(--dragonfly);transform:translateY(-2px);text-decoration:none;box-shadow:0 6px 14px #5ba9c926}.subject-icon{width:80px;height:80px;margin:0 auto 12px;border-radius:50%;background:var(--chalk);display:flex;align-items:center;justify-content:center;overflow:hidden;border:3px solid var(--chick)}.subject-icon img{width:100%;height:100%;object-fit:cover}.subject-period{font-size:11px;color:var(--dragonfly-deep);font-weight:700;letter-spacing:.1em;margin-bottom:4px}.subject-name{font-size:16px;font-weight:700;margin:0 0 6px}.subject-desc{font-size:12px;color:var(--ink-soft);margin:0;line-height:1.5}.teacher-intro{background:linear-gradient(135deg,#F7EDD1 0%,var(--paper) 100%);border-radius:12px;padding:40px;display:grid;grid-template-columns:220px 1fr;gap:32px;align-items:center;border:1px solid var(--line)}.teacher-intro img{width:100%;filter:drop-shadow(0 6px 14px rgba(0,0,0,.15))}.teacher-intro h3{font-family:Kosugi Maru,sans-serif;font-size:22px;margin:0 0 12px}.teacher-intro p{color:var(--ink-soft);margin:0 0 16px;font-size:14px}.btn{display:inline-block;background:var(--chick);color:var(--ink);font-weight:700;padding:10px 24px;border-radius:999px;text-decoration:none;border:2px solid var(--chick-deep);transition:all .15s}.btn:hover{background:var(--chick-deep);text-decoration:none;transform:translateY(-1px)}.insight{background:var(--blackboard);color:var(--chalk);border-radius:12px;padding:40px;display:grid;grid-template-columns:200px 1fr;gap:32px;align-items:center;box-shadow:0 8px 24px #00000026;border:8px solid var(--wood-dark)}.insight img{width:100%;filter:drop-shadow(0 4px 10px rgba(0,0,0,.3))}.insight h3{font-family:Kosugi Maru,sans-serif;font-size:24px;margin:0 0 12px;color:var(--chick)}.insight p{margin:0 0 16px;opacity:.95}.site-footer{background:var(--wood-dark);color:var(--chalk);margin-top:80px;padding:48px 24px 24px}.footer-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:32px}.footer-brand{font-size:18px;font-weight:700;margin-bottom:8px}.footer-brand small{display:block;font-size:12px;opacity:.7;font-weight:400}.footer-col h4{font-size:14px;margin:0 0 12px;color:var(--chick)}.footer-col ul{list-style:none;padding:0;margin:0}.footer-col li{margin-bottom:6px;font-size:13px}.footer-col a{color:var(--chalk);opacity:.85}.footer-bottom{max-width:1100px;margin:32px auto 0;padding-top:16px;border-top:1px solid rgba(250,246,236,.2);font-size:12px;opacity:.6;text-align:center}@media(max-width:900px){.blackboard{padding:48px 32px 220px}.teacher-figure{width:200px;right:50%;transform:translate(50%);bottom:-20px}.teacher-speech{left:auto;right:50%;transform:translate(50%);white-space:nowrap}.board-stage{padding-bottom:100px}.chalk-text h1{font-size:34px}}@media(max-width:768px){.header-inner{flex-wrap:wrap;padding:12px 16px}.timetable-nav{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.timetable-nav a{white-space:nowrap;flex-shrink:0}.chalk-text h1{font-size:28px}.chalk-text .subtitle{font-size:15px}.chalk-tray{padding:0 14px;gap:8px}.chalk-tray .eraser{width:48px}.cards{grid-template-columns:1fr}.timetable-grid{grid-template-columns:repeat(2,1fr)}.teacher-intro,.insight{grid-template-columns:1fr;text-align:center}.footer-inner{grid-template-columns:1fr}}
