:root{--border-radius-small:5px;--border-radius-medium:8px;--border-radius-card:12px;--shadow-light-soft:0 2px 8px #00000014;--shadow-light-strong:0 4px 12px #00000026;--shadow-dark-soft:0 4px 12px #0000004d;--shadow-dark-strong:0 6px 16px #0006;--transition-fast:.15s ease;--transition-normal:.25s ease;--transform-default:translateY(-2px);--border-default-light-theme:2px solid var(--color-light-theme-border);--border-thin-light-theme:1px solid var(--color-light-theme-border);--border-default-accent-light-theme:2px solid var(--color-light-theme-accent);--border-thin-accent-light-theme:1px solid var(--color-light-theme-accent);--border-default-dark-theme:2px solid var(--color-dark-theme-border);--border-thin-dark-theme:1px solid var(--color-dark-theme-border);--border-default-accent-dark-theme:2px solid var(--color-dark-theme-accent);--border-thin-accent-dark-theme:1px solid var(--color-dark-theme-accent);--color-light-theme-background-default:#f8f5ed;--color-light-theme-background-base:#fcf3df;--color-light-theme-surface:#faebc9;--color-light-theme-sunken:#ded0b6;--color-light-theme-border:#b29a70;--color-light-theme-accent:#7b542f;--color-light-theme-text-default:#433226;--color-light-theme-kanji-highlighting:#b62c2c;--color-dark-theme-background-default:#282a36;--color-dark-theme-background-base:#404258;--color-dark-theme-surface:#474e68;--color-dark-theme-sunken:#50577a;--color-dark-theme-border:#838cae;--color-dark-theme-accent:#86b6f6;--color-dark-theme-text-default:#dfd3c3;--color-dark-theme-text-muted:#b3c8cf;--color-dark-theme-kanji-highlighting:#86b6f6;--z-base:0;--z-controls:100;--z-navigation:200;--z-modal:300;--z-toast:400;--z-critical:500;--z-index-progress-bar:var(--z-critical);--z-index-floating-controls:var(--z-controls);--z-index-floating-controls-expanded:calc(var(--z-controls) + 1);--z-index-menu-overlay:var(--z-navigation);--z-index-menu-panel:calc(var(--z-navigation) + 1);--z-index-hamburger-button:calc(var(--z-navigation) + 2);--z-index-modal-overlay:var(--z-modal);--z-index-modal-overlay-stacked:calc(var(--z-index-modal-overlay) + 1);--z-index-writing-kanji-svg-layer:calc(var(--z-base) + 1);--z-index-writing-kanji-canvas-layer:calc(var(--z-base) + 2);--z-index-writing-kanji-dots-layer:calc(var(--z-base) + 3);--font-family-japanese-font-stack:"Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", yugothic, "Meiryo", "MS Gothic", sans-serif;--body-font-size:18px;--app-content-max-width:1200px;--app-content-gutter:16px;--landscape-safe-gutter:0px;--app-content-offset-top-base:3em;--app-search-stack-height:calc(var(--app-top-control-offset) + var(--app-top-control-size) + var(--top-controls-search-gap));--app-content-offset-top:var(--app-content-offset-top-base);--app-content-padding-bottom:2em;--app-top-control-offset:20px;--app-top-control-size:46px;--top-controls-search-gap:25px;--app-shell-inline-left:max(var(--app-content-gutter), var(--landscape-safe-gutter), env(safe-area-inset-left), calc((100vw - var(--app-content-max-width)) / 2));--app-shell-inline-right:max(var(--app-content-gutter), var(--landscape-safe-gutter), env(safe-area-inset-right), calc((100vw - var(--app-content-max-width)) / 2));--modal-overlay-bg:#0009;--modal-backdrop-blur:4px;--modal-padding:1.5em;--modal-border-radius:var(--border-radius-card);--modal-close-size:34px;--modal-close-font-size:.9rem;--modal-button-color-light:#555;--modal-button-color-dark:var(--color-dark-theme-text-default)}html{overscroll-behavior-y:none;text-size-adjust:100%;max-width:100%;position:relative;overflow-x:hidden}body{font-family:var(--font-family-japanese-font-stack);font-size:var(--body-font-size);background-color:var(--color-light-theme-background-base);color:var(--color-light-theme-text-default);overscroll-behavior-y:none;-webkit-text-size-adjust:100%;text-size-adjust:100%;max-width:100%;margin:0;padding:0;line-height:2.2;position:relative;overflow-x:hidden}*,:before,:after{box-sizing:border-box}.main-container{height:100dvh;min-height:0;display:flex}.main-container>.content-wrapper{min-height:0;padding:var(--app-content-offset-top) var(--app-shell-inline-right) var(--app-content-padding-bottom) var(--app-shell-inline-left);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:auto;overflow-y:auto}html,body,.content-wrapper{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar,body::-webkit-scrollbar,.content-wrapper::-webkit-scrollbar{display:none}.dark-mode{background-color:var(--color-dark-theme-background-default);color:var(--color-dark-theme-text-default)}#progress-bar-container{width:100%;height:6px;z-index:var(--z-index-progress-bar);background-color:#0000;position:fixed;top:0;left:0;transform:translateZ(0)}#progress-bar{background-color:var(--color-light-theme-accent);width:0;height:100%;transition:width .25s ease-out}.dark-mode #progress-bar{background-color:var(--color-dark-theme-accent)}.control-btn{border-radius:var(--border-radius-medium);border:var(--border-default-light-theme);color:var(--color-light-theme-text-default);background-color:var(--color-light-theme-surface);box-shadow:var(--shadow-light-soft);transition:all var(--transition-normal);cursor:pointer;-webkit-touch-callout:none;appearance:none;user-select:none;touch-action:manipulation;justify-content:center;align-items:center;display:flex}.inline-svg-host,.inline-svg-host svg{width:100%;height:100%;display:block}.modal-overlay{background:var(--modal-overlay-bg);backdrop-filter:blur(var(--modal-backdrop-blur));z-index:var(--z-index-modal-overlay);opacity:0;visibility:hidden;transition:opacity var(--transition-normal), visibility var(--transition-normal);justify-content:center;align-items:center;padding:1em;display:flex;position:fixed;inset:0}.modal-overlay.open{opacity:1;visibility:visible}.modal-panel{background:var(--color-light-theme-surface);border:var(--border-default-light-theme);border-radius:var(--modal-border-radius);box-shadow:var(--shadow-light-strong);position:relative}.dark-mode .modal-panel{background:var(--color-dark-theme-background-base);border:var(--border-default-dark-theme);box-shadow:var(--shadow-dark-strong)}.modal-close{width:var(--modal-close-size);height:var(--modal-close-size);min-width:var(--modal-close-size);min-height:var(--modal-close-size);aspect-ratio:1;line-height:1;font-size:var(--modal-close-font-size);background-color:var(--color-light-theme-surface);border:var(--border-default-light-theme);border-radius:var(--border-radius-medium);cursor:pointer;color:var(--color-light-theme-border);box-shadow:var(--shadow-light-soft);transition:all var(--transition-normal);appearance:none;-webkit-touch-callout:none;user-select:none;z-index:1;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:.8em;right:.8em}.modal-close-icon{pointer-events:none;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex}.modal-close-icon svg{stroke:currentColor;opacity:1;width:100%;height:100%;display:block}.dark-mode .modal-close{background-color:var(--color-dark-theme-background-base);border:var(--border-default-dark-theme);color:var(--color-dark-theme-border);box-shadow:var(--shadow-dark-soft)}.modal-close:active{transform:var(--transform-default);box-shadow:var(--shadow-light-strong);background-color:var(--color-light-theme-sunken);border-color:var(--color-light-theme-border)}.dark-mode .modal-close:active{box-shadow:var(--shadow-dark-strong);background-color:var(--color-dark-theme-surface);border-color:var(--color-dark-theme-border)}.modal-action-btn{width:fit-content;color:var(--color-light-theme-accent);border:var(--border-thin-accent-light-theme);border-radius:var(--border-radius-medium);cursor:pointer;transition:background var(--transition-fast);touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;padding:.45em 1em;font-family:inherit;font-size:.9rem;display:block}.dark-mode .modal-action-btn{border-radius:var(--border-radius-medium);color:var(--modal-button-color-dark);border:var(--border-thin-dark-theme)}.modal-action-btn:active{background:#0000000f}.dark-mode .modal-action-btn:active{background:#ffffff14}.modal-close .mnemonic-close{opacity:.82}.modal-action-btn:focus-visible,.modal-close:focus-visible{outline:2px solid var(--color-light-theme-accent);outline-offset:2px}.dark-mode .modal-action-btn:focus-visible,.dark-mode .modal-close:focus-visible{outline-color:var(--color-dark-theme-accent)}@media (hover:hover){.modal-action-btn:hover,.modal-close:hover{transform:var(--transform-default)}.modal-action-btn:hover{background:#0000000d}.dark-mode .modal-action-btn:hover{background:#ffffff0f}.modal-close:hover{border-color:var(--color-light-theme-border);box-shadow:var(--shadow-light-strong);background-color:var(--color-light-theme-sunken)}.dark-mode .modal-close:hover{border-color:var(--color-dark-theme-border);box-shadow:var(--shadow-dark-strong);background-color:var(--color-dark-theme-surface)}}@media (width<=768px){:root{--app-content-gutter:24px;--app-top-control-offset:14px;--app-top-control-size:43px;--top-controls-search-gap:25px;--app-content-offset-top-base:4em;--app-content-padding-bottom:1em;--go-up-icon-size:28px}.main-container{flex-direction:column}}@media (width<=768px) and (orientation:landscape){:root{--app-content-gutter:24px;--app-content-offset-top-base:4em;--app-content-padding-bottom:1em;--go-up-icon-size:28px;--landscape-safe-gutter:9vw}}@media (width>=769px) and (width<=1024px){:root{--body-font-size:20px;--app-content-gutter:24px;--app-top-control-offset:14px;--app-top-control-size:46px;--top-controls-search-gap:25px;--app-content-offset-top-base:4em;--app-content-padding-bottom:1.5em}}@media (width>=769px) and (width<=1024px) and (orientation:landscape){:root{--body-font-size:18px;--app-content-gutter:24px;--app-content-offset-top-base:3em;--app-content-padding-bottom:1em;--landscape-safe-gutter:9vw}}@media (width>=1025px) and (width<=1366px) and (orientation:landscape){:root{--app-content-gutter:24px;--app-content-offset-top-base:3em;--app-content-padding-bottom:1em;--landscape-safe-gutter:9vw}}@media (width>=1025px){:root{--app-top-control-offset:25px;--app-top-control-size:50px;--top-controls-search-gap:25px;--app-content-offset-top-base:4em;--app-content-padding-bottom:2em}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}