*{margin:0;padding:0;box-sizing:border-box}:root{--bg-dark:#080706;--bg-elevated:#12100e;--bg-card:#141210;--text-light:#ede8e2;--text-dim:#7a726c;--accent-red:#a83244;--accent-red-soft:rgba(168,50,68,0.35);--accent-gold:#d4b14a;--border-subtle:#2e2823;--radius-lg:14px;--radius-md:10px}body{font-family:var(--font-noto-serif-jp),"Noto Serif JP",serif;background:radial-gradient(120% 80% at 50% -10%,rgba(168,50,68,.12),transparent 55%),radial-gradient(80% 50% at 100% 0,rgba(212,177,74,.06),transparent 45%),var(--bg-dark);color:var(--text-light);min-height:100vh;overflow-x:hidden}.font-zen{font-family:var(--font-zen-antique),"Zen Antique",serif}.wind-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden;z-index:1}.wind-particle{position:absolute;width:2px;height:2px;background:var(--text-dim);opacity:.3;animation:wind 8s linear infinite}@keyframes wind{0%{transform:translateX(-100px) translateY(0) rotate(45deg);opacity:0}10%{opacity:.3}90%{opacity:.3}to{transform:translateX(calc(100vw + 100px)) translateY(-50px) rotate(45deg);opacity:0}}.container{position:relative;z-index:2;max-width:1400px;margin:0 auto;padding:40px 20px}.header{text-align:center;margin-bottom:60px;position:relative}.header:after,.header:before{content:"";position:absolute;top:50%;width:120px;height:1px;background:linear-gradient(90deg,transparent,var(--accent-red),transparent)}.header:before{left:calc(50% - 250px)}.header:after{right:calc(50% - 250px)}.title-jp{font-size:4rem;letter-spacing:.5em;margin-bottom:10px;background:linear-gradient(180deg,var(--text-light) 0,var(--text-dim) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.title-en{font-size:.9rem;letter-spacing:.3em;color:var(--text-dim);text-transform:uppercase}.breadcrumb{display:flex;align-items:center;gap:15px;margin-bottom:40px;font-size:.85rem;color:var(--text-dim)}.breadcrumb-item{cursor:pointer;transition:color .3s ease;background:none;border:none;font:inherit;color:inherit;padding:0}.breadcrumb-item:hover{color:var(--text-light)}.breadcrumb-item--canada{display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:inherit}.breadcrumb-separator{color:var(--accent-red)}.breadcrumb-current{color:var(--text-light)}.categories{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:30px;gap:30px}.category-card{background:linear-gradient(165deg,var(--bg-card) 0,var(--bg-elevated) 100%);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:40px 30px;cursor:pointer;position:relative;overflow:hidden;transition:all .4s ease;box-shadow:0 12px 40px rgba(0,0,0,.35)}.category-card:before{content:"";position:absolute;top:0;left:0;width:3px;height:0;background:var(--accent-red);transition:height .4s ease}.category-card:hover{border-color:var(--accent-red-soft);box-shadow:0 18px 48px rgba(0,0,0,.45),0 0 0 1px var(--accent-red-soft);transform:translateY(-4px)}.category-card:hover:before{height:100%}.category-icon{width:60px;height:60px;margin-bottom:20px;opacity:.9}.category-name-jp{font-size:1.8rem;margin-bottom:8px}.category-name-en{font-size:.8rem;color:var(--text-dim);letter-spacing:.2em;text-transform:uppercase;margin-bottom:15px}.category-count{font-size:.75rem;color:var(--accent-gold)}.techniques{display:none}.techniques.active{display:block}.techniques-grid{column-count:3;column-gap:20px}@media (max-width:1200px){.techniques-grid{column-count:2}}@media (max-width:768px){.techniques-grid{column-count:1}}.technique-card{background:linear-gradient(165deg,var(--bg-card) 0,var(--bg-elevated) 100%);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:22px 20px 22px 22px;position:relative;transition:border-color .25s ease,box-shadow .25s ease,background .25s ease;display:flex;align-items:center;gap:18px;page-break-inside:avoid;break-inside:avoid;margin-bottom:20px;box-shadow:0 8px 28px rgba(0,0,0,.28)}.technique-card:hover{border-color:var(--accent-red-soft);box-shadow:0 12px 36px rgba(0,0,0,.38),0 0 0 1px var(--accent-red-soft)}.technique-card:focus-within{border-color:var(--accent-gold);outline:none}.technique-number{font-size:2rem;color:var(--text-dim);min-width:50px}.technique-info{flex:1 1}.technique-name{font-size:1.1rem;margin-bottom:3px;letter-spacing:.05em}.technique-translation{font-size:.75rem;color:var(--accent-gold);letter-spacing:.05em}.technique-card__play{flex-shrink:0;width:52px;height:52px;border-radius:50%;border:1px solid var(--border-subtle);background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.08),transparent 55%),var(--bg-elevated);color:var(--accent-gold);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:transform .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease;padding:0}.technique-card__play:hover{border-color:var(--accent-red);color:var(--text-light);box-shadow:0 0 0 3px var(--accent-red-soft);transform:scale(1.04)}.technique-card__play:focus-visible{outline:2px solid var(--accent-gold);outline-offset:3px}.technique-card__play svg{margin-left:2px}.video-modal-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(4,3,2,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:overlayIn .25s ease forwards}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.video-modal{width:min(960px,100%);max-height:min(90vh,900px);display:flex;flex-direction:column;gap:16px;background:linear-gradient(180deg,#1a1614,#100e0c);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-lg) + 4px);padding:20px 22px 24px;box-shadow:0 28px 80px rgba(0,0,0,.65),0 0 0 1px rgba(255,255,255,.04);animation:modalPop .3s ease forwards}@keyframes modalPop{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.video-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.video-modal__title{font-size:clamp(1.1rem,2.5vw,1.45rem);font-weight:400;letter-spacing:.04em;line-height:1.35;color:var(--text-light);padding-right:8px}.video-modal__close{flex-shrink:0;background:transparent;border:1px solid var(--border-subtle);color:var(--text-light);padding:10px 18px;cursor:pointer;font-family:inherit;font-size:.85rem;border-radius:8px;transition:border-color .2s ease,color .2s ease}.video-modal__close:hover{border-color:var(--accent-red);color:var(--accent-red)}.video-modal__frame-wrap{position:relative;width:100%;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:var(--radius-md);background:#000;border:1px solid var(--border-subtle)}.video-modal__iframe{position:absolute;inset:0;width:100%;height:100%;border:none}.video-modal__fallback{padding:28px 8px 12px;text-align:center}.video-modal__fallback-text{color:var(--text-dim);font-size:.95rem;line-height:1.55;margin-bottom:20px;max-width:42ch;margin-left:auto;margin-right:auto}.video-modal__external{display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;border-radius:999px;border:1px solid var(--accent-red);color:var(--text-light);text-decoration:none;font-size:.9rem;transition:background .2s ease,color .2s ease}.video-modal__external:hover{background:var(--accent-red);color:#fff}.back-btn{background:none;border:1px solid var(--border-subtle);color:var(--text-light);padding:12px 30px;cursor:pointer;font-family:inherit;font-size:.85rem;margin-bottom:30px;transition:all .3s ease;display:none;border-radius:999px}.back-btn.active{display:inline-block}.back-btn:hover{border-color:var(--accent-red)}.footer{text-align:center;margin-top:80px;padding-top:40px;border-top:1px solid var(--border-subtle);color:var(--text-dim);font-size:.75rem}.kamon{fill:none;stroke:var(--text-light);stroke-width:1.5}@media (max-width:768px){.title-jp{font-size:2.5rem;letter-spacing:.2em}.header:after,.header:before{display:none}.categories,.techniques-grid{grid-template-columns:1fr}}.fade-in{animation:fadeIn .5s ease forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.site-nav{position:-webkit-sticky;position:sticky;top:0;z-index:500;background:rgba(8,7,6,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border-subtle)}.site-nav__inner{max-width:1400px;margin:0 auto;padding:14px 20px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}.site-nav__brand{font-size:1.15rem;letter-spacing:.15em;color:var(--text-light);text-decoration:none}.site-nav__brand-sub{font-size:.7rem;letter-spacing:.12em;color:var(--text-dim);font-family:var(--font-noto-serif-jp),serif;margin-left:8px}.site-nav__links{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center}.site-nav__link{font-size:.85rem;color:var(--text-dim);text-decoration:none;transition:color .2s ease}.site-nav__link:hover{color:var(--accent-gold)}.site-nav__link--doc{border:1px solid var(--border-subtle);padding:6px 12px;border-radius:999px}.site-nav__link--canada{display:inline-flex;align-items:center;gap:6px}.canada-maple{display:block;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 1px 2px rgba(0,0,0,.45))}.canada-maple--sm{width:1rem;height:auto;max-height:1.1rem}.canada-maple--md{width:1.5rem;height:auto;max-height:1.65rem}.canada-maple--lg{width:clamp(1.75rem,4vw,2.35rem);height:auto;max-height:2.5rem}.grades-page{padding-top:28px}.grades-hero{margin-bottom:40px;max-width:72ch}.grades-hero__title{font-size:clamp(1.75rem,4vw,2.5rem);margin-bottom:12px;color:var(--text-light)}.grades-hero__title-row{display:inline-flex;align-items:center;gap:14px}.grades-hero__lead{color:var(--text-dim);line-height:1.65;font-size:.95rem}.grades-inline-link{color:var(--accent-gold);text-decoration:underline;text-underline-offset:3px}.grades-inline-link:hover{color:var(--text-light)}.grades-hub{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:18px;gap:18px;margin:0;padding:0}.grade-card{display:flex;flex-direction:column;gap:6px;padding:22px 20px 22px 22px;border-radius:var(--radius-lg);text-decoration:none;color:inherit;min-height:120px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;background:linear-gradient(165deg,var(--bg-card) 0,var(--bg-elevated) 100%);box-shadow:0 8px 28px rgba(0,0,0,.25);border:1px solid var(--border-subtle);border-left-width:5px}.grade-card:hover{transform:translateY(-3px);box-shadow:0 14px 40px rgba(0,0,0,.35)}.grade-card__label{font-size:1.35rem;letter-spacing:.06em}.grade-card__rank{font-size:.85rem;color:var(--text-dim)}.grade-card__section{font-size:.72rem;color:var(--accent-gold);text-transform:uppercase;letter-spacing:.08em;margin-top:auto}.belt-white{border-left-color:#e8e4df}.belt-yellow{border-left-color:#e6c82a}.belt-orange{border-left-color:#c96a2a}.belt-green{border-left-color:#3d8f5a}.belt-blue{border-left-color:#3a6ea5}.belt-brown{border-left-color:#6b4a32}.belt-black{border-left-color:#1a1a1a;background:linear-gradient(165deg,#1e1c1a,#0d0c0b)}.grades-breadcrumb{margin-bottom:28px}.grade-detail-header{padding:24px 22px 26px;border-radius:var(--radius-lg);margin-bottom:32px;border:1px solid var(--border-subtle);border-left-width:6px}.grade-detail-header__title{font-size:clamp(1.75rem,4vw,2.35rem);margin-bottom:6px}.grade-detail-header__rank{font-size:1rem;color:var(--text-dim);margin-bottom:8px}.grade-detail-header__section{font-size:.8rem;color:var(--accent-gold);letter-spacing:.06em;text-transform:uppercase;margin-bottom:14px}.grade-detail-header__note{font-size:.9rem;color:var(--text-dim);line-height:1.6;max-width:75ch;margin-bottom:12px}.grade-detail-header__pdf{font-size:.85rem}.grades-warning{padding:14px 18px;border-radius:var(--radius-md);border:1px solid rgba(212,177,74,.45);background:rgba(212,177,74,.08);color:var(--text-light);font-size:.88rem;margin-bottom:24px;max-width:75ch}.grades-list-heading{font-size:1rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);margin-bottom:20px}.grades-list-heading--spaced{margin-top:48px}.grades-ne-intro{font-size:.9rem;max-width:70ch;margin:-8px 0 20px}.grades-empty,.grades-ne-intro{color:var(--text-dim);line-height:1.55}.grades-empty{font-size:.95rem}.technique-meta{font-size:.72rem;color:var(--text-dim);margin-top:6px;letter-spacing:.04em}.techniques-grid--flat{column-count:1}.library-accordion-hint{text-align:center;color:var(--text-dim);font-size:.88rem;margin-bottom:28px;max-width:48ch;margin-left:auto;margin-right:auto;line-height:1.5}.technique-accordion{display:flex;flex-direction:column;gap:12px}.technique-accordion__item{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:linear-gradient(165deg,var(--bg-card) 0,var(--bg-elevated) 100%);overflow:hidden;box-shadow:0 8px 28px rgba(0,0,0,.22)}.technique-accordion__heading{margin:0;font-size:inherit;font-weight:inherit}.technique-accordion__trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border:none;background:transparent;color:var(--text-light);cursor:pointer;text-align:left;font:inherit;transition:background .2s ease}.technique-accordion__trigger:hover{background:rgba(168,50,68,.08)}.technique-accordion__trigger:focus-visible{outline:2px solid var(--accent-gold);outline-offset:-2px}.technique-accordion__trigger-main{display:flex;flex-direction:column;gap:4px;min-width:0}.technique-accordion__jp{font-size:1.35rem;letter-spacing:.12em;line-height:1.2}.technique-accordion__en{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim)}.technique-accordion__romaji{font-size:.82rem;color:var(--accent-gold);letter-spacing:.04em}.technique-accordion__romaji--solo{font-size:1.05rem;color:var(--text-light)}.technique-accordion__meta{display:flex;align-items:center;gap:12px;flex-shrink:0}.technique-accordion__count{font-size:.8rem;color:var(--text-dim);min-width:2ch;text-align:right}.technique-accordion__chevron{font-size:.65rem;color:var(--accent-red);width:1.5rem;text-align:center}.technique-accordion__panel{border-top:1px solid var(--border-subtle);padding:8px 12px 16px;background:rgba(0,0,0,.2)}.technique-accordion__panel[hidden]{display:none}.technique-accordion__grid{padding-top:8px}