
.reading-title-row { display:flex; align-items:flex-start; gap:12px; margin:.2rem 0 .4rem; }
.reading-title-row .abs-title { flex:1; min-width:0; margin:0; overflow-wrap:anywhere; }
.ai-app-actions { flex:none; margin:0; }
.ai-app-buttons { display:flex; gap:0; }
.ai-app-button { display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; width:44px; height:44px; padding:10px; border:1px solid transparent; border-radius:6px; color:var(--muted); background:transparent; }
.ai-app-button:visited { color:var(--muted); }
.ai-app-button:hover { background:var(--brand-soft); text-decoration:none; }
.ai-app-button:focus-visible { outline:3px solid var(--brand-line); outline-offset:2px; }
.ai-app-logo { width:20px; height:20px; fill:currentColor; flex:none; }
.ai-app-help { font-size:.88rem; margin-top:8px; max-width:36rem; }
.ai-app-help summary { cursor:pointer; color:var(--muted); }
.ai-app-help textarea { display:block; box-sizing:border-box; width:100%; font:inherit; margin:6px 0; }
.ai-app-status:empty { display:none; }
@font-face{font-family:"STIX Two Text";src:url("/assets/reader-fonts/v2.13b171/STIXTwoText-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"STIX Two Text";src:url("/assets/reader-fonts/v2.13b171/STIXTwoText-Italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"STIX Two Text";src:url("/assets/reader-fonts/v2.13b171/STIXTwoText-Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"STIX Two Text";src:url("/assets/reader-fonts/v2.13b171/STIXTwoText-BoldItalic.woff2") format("woff2");font-weight:700;font-style:italic;font-display:swap}
@font-face{font-family:"STIX Two Math";src:url("/assets/reader-fonts/v2.13b171/STIXTwoMath-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
.main-reader{margin-top:.25rem;min-width:0}
.main-reader-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:1rem;margin:0 0 .75rem;font-size:.82rem;min-height:2rem}
.main-reader-toolbar button{font-size:inherit;padding:.4rem .7rem}
.main-source-version{font-size:.72rem;color:var(--muted,#62606b)}
.main-reader-grid{display:grid;grid-template-columns:minmax(10rem,13rem) minmax(0,1fr);gap:2rem;align-items:start}
.main-reader-grid:has(>.main-reader-content:first-child){grid-template-columns:minmax(0,1fr)}
.main-reader-sidebar{position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow:auto;scrollbar-width:thin}
.main-contents>summary{font-weight:600;font-size:.86rem;cursor:pointer;padding:.4rem 0}
.main-contents ol{list-style:none;padding:0;margin:.3rem 0;font-size:.79rem;line-height:1.45}
.main-contents li{margin:.38rem 0;overflow-wrap:anywhere}
.main-contents .main-toc-level-2{padding-left:.8rem}
.main-contents .main-toc-level-3{padding-left:1.6rem;font-size:.75rem}
.main-contents a{color:var(--muted,#62606b);text-decoration:none;display:block;border-left:2px solid transparent;padding-left:.5rem}
.main-contents a:hover,.main-contents a[aria-current="location"]{color:var(--accent,#58288a);border-left-color:currentColor}
.main-reader-content{min-width:0;width:100%;max-width:49rem;line-height:1.75}
.paper-document{font-family:"STIX Two Text",Cambria,"Times New Roman",serif;font-size:1.06rem;font-synthesis:none;color:var(--text,#202024);min-width:0;max-width:100%;overflow-wrap:anywhere}
.main-math-scroll{display:block;min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden;margin:1rem 0;padding:.25rem 0}
.main-math-scroll>.ltx_equation,.main-math-scroll>.ltx_equationgroup{margin:0;padding:0;overflow:visible;max-width:none}
.main-inline-math{display:inline-block;max-width:100%;overflow-x:auto;overflow-y:hidden;vertical-align:middle;line-height:normal}
.main-footnote-marker{font-size:.7em;line-height:0;vertical-align:super;margin-left:.08em}
.main-paper-footnotes{border-top:1px solid var(--border,#dddbe2);margin-top:2rem;padding-top:1rem;font-size:.88em}
.main-paper-footnotes h2{font-size:1.15rem}
.main-paper-footnotes ol{padding-left:1.8rem}
.main-paper-footnotes li{margin:.65rem 0;padding-left:.2rem}
.main-footnote-back{margin-left:.5rem;text-decoration:none}
.paper-document .ltx_TOC{display:none}
.paper-document .ltx_title_document{font-size:1.9rem;line-height:1.25;text-align:center;margin:.25rem 0 .8rem}
.paper-document .ltx_authors,.paper-document .ltx_author,.paper-document .ltx_date{text-align:center}
.paper-document .ltx_title_document .ltx_pubnotes{display:block;font-size:.85rem;font-weight:normal;line-height:1.5;margin-top:1rem}
.paper-document .ltx_personname{font-size:1.1rem}
.paper-document .ltx_author_notes{display:block;font-size:.78em;line-height:1.45;margin:.5rem auto 1rem}
.paper-document .ltx_contact{display:block}
.paper-document .ltx_dates{display:none}
.paper-document .ltx_title{font-family:inherit;line-height:1.35}
.paper-document .ltx_title_section{font-size:1.5rem;margin:2.1rem 0 .8rem}
.paper-document .ltx_title_subsection{font-size:1.2rem;margin:1.6rem 0 .65rem}
.paper-document .ltx_title_subsubsection{font-size:1.05rem;margin:1.2rem 0 .5rem}
.paper-document .ltx_abstract{margin:1.5rem 0 2rem;font-size:.97em}
.paper-document .ltx_title_abstract{font-size:1rem;text-align:center;margin-bottom:.65rem}
.paper-document .ltx_para{margin:.8rem 0}
.paper-document .ltx_p{margin:.6rem 0}
.paper-document .ltx_theorem{margin:1.3rem 0}
.paper-document .ltx_theorem .ltx_title{font-size:1em;font-weight:700;display:inline;margin:0 .35em 0 0}
.paper-document .ltx_theorem>.ltx_para:first-of-type,.paper-document .ltx_theorem>.ltx_para:first-of-type>.ltx_p:first-of-type{display:inline}
.paper-document .ltx_proof{margin:1rem 0 1.4rem}
.paper-document .ltx_proof>.ltx_title{display:inline;font-size:1em;font-style:italic;font-weight:400;margin:0 .35em 0 0}
.paper-document .ltx_proof>.ltx_para:first-of-type,.paper-document .ltx_proof>.ltx_para:first-of-type>.ltx_p:first-of-type{display:inline}
.paper-document .ltx_QED{float:right}
.paper-document .ltx_emph{font-style:italic}
.paper-document .ltx_font_bold{font-weight:bold}
.paper-document .ltx_font_italic{font-style:italic}
.paper-document .ltx_font_smallcaps{font-variant:small-caps}
.paper-document .ltx_font_typewriter{font-family:monospace;font-size:.9em}
.paper-document .ltx_text{white-space:normal}
.paper-document .ltx_itemize,.paper-document .ltx_enumerate{padding-left:1.5rem}
.paper-document .ltx_item{margin:.45rem 0}
.paper-document .ltx_item:has(>.ltx_tag){list-style:none}
.paper-document .ltx_item>.ltx_tag{display:inline;white-space:nowrap;margin-right:.45em}
.paper-document .ltx_item>.ltx_para:first-of-type,.paper-document .ltx_item>.ltx_para:first-of-type>.ltx_p:first-child{display:inline;margin-top:0}
.paper-document .ltx_tag{margin-right:.25em}
.paper-document .ltx_equation,.paper-document .ltx_equationgroup{margin:1rem 0;max-width:100%;overflow-x:auto;overflow-y:hidden;padding:.25rem 0}
.paper-document math{font-family:"STIX Two Math","Cambria Math",math;font-style:normal;font-weight:400;line-height:normal}
.paper-document math[display="block"]{display:block;max-width:100%;overflow-x:auto;overflow-y:hidden;padding:.2rem 0}
.paper-document .ltx_eqn_table{border-collapse:collapse;width:100%;margin:auto}
.paper-document .ltx_eqn_cell{padding:.15rem .2rem;vertical-align:middle}
.paper-document .ltx_eqn_eqno{width:1%;white-space:nowrap;font-size:.88em;padding-left:.6rem}
.paper-document .ltx_align_center{text-align:center}
.paper-document .ltx_align_left{text-align:left}
.paper-document .ltx_align_right{text-align:right}
.paper-document .ltx_tabular{border-collapse:collapse;margin:auto;max-width:100%}
.paper-document .ltx_tabular td{padding:.25rem .45rem}
.paper-document .ltx_figure{margin:1.4rem 0;text-align:center;max-width:100%;overflow-x:auto}
.paper-document .ltx_caption{font-size:.92em;text-align:center;margin:.6rem 0}
.paper-document .ltx_picture{max-width:100%;overflow:visible;vertical-align:middle}
.paper-document .paper-diagram{max-width:none;height:auto;vertical-align:middle}
.paper-document .ltx_picture foreignObject{overflow:visible}
.paper-document svg foreignObject>.ltx_foreignobject_container{width:var(--ltx-fo-width,100%);align-items:end;height:100%;display:flex}
.paper-document svg foreignObject>.ltx_foreignobject_container:has(>.ltx_foreignobject_content>math:only-child){align-items:center}
.paper-document .ltx_foreignobject_content{display:block;line-height:var(--ltx-fo-line-height,1)}
.paper-document foreignObject[style*="font-size"]{--ltx-fo-line-height:1.2}
.paper-document foreignObject[style*="font-size"] .ltx_foreignobject_content{font-size:1em}
.paper-document .ltx_biblist{list-style:none;padding-left:0;font-size:.92em}
.paper-document .ltx_bibitem{margin:.8rem 0;padding-left:2.4rem;text-indent:-2.4rem}
.paper-document .ltx_bibblock{display:inline}
.paper-document [id],.main-note[id]{scroll-margin-top:1rem}
.main-permalink{font:normal .8rem/1 sans-serif;margin-left:.5rem;text-decoration:none;opacity:0}
.paper-document .ltx_title:hover>.main-permalink,.paper-document .ltx_title:focus-within>.main-permalink,.main-note h2:hover>.main-permalink,.main-note h2:focus-within>.main-permalink,.main-permalink:focus{opacity:1}
.main-overview{margin:.5rem 0 2rem;font-size:1rem}
.main-add-material{margin-top:2rem}
.main-notes{margin-top:2rem}
.main-note{padding-top:1.5rem;margin-top:1.5rem;border-top:1px solid var(--border,#dddbe2)}
.main-note:first-child{margin-top:0}
.main-note h2{font-size:1.25rem;margin:.3rem 0 .7rem;line-height:1.4}
.main-note .main-heading-title{color:inherit;text-decoration:none}
.main-note-edit{font-size:.75rem;font-weight:400;margin-left:1rem}
.main-note-body{font-size:1rem}
.main-notes-compact .main-part-title{margin:2rem 0 .2rem}
.main-note-compact{padding-top:1rem;margin-top:1rem}
.main-note-compact h3{font-size:1.08rem;margin:.1rem 0 .3rem;line-height:1.45}
.main-note-compact .main-heading-title{color:var(--brand,#5b3a86);text-decoration:none}
.main-note-excerpt{margin:.3rem 0;color:var(--muted,#4a4852);font-size:.95rem;line-height:1.7}
.main-note-read{font-size:.9rem}
.main-note h3:hover>.main-permalink,.main-note h3:focus-within>.main-permalink{opacity:1}
.main-note .verification-marks:empty{display:none}
.main-print-view{max-width:68rem;margin:1rem auto}
.main-background,.main-references{margin-top:2.8rem}
.main-background[id],.main-references[id]{scroll-margin-top:1rem}
.main-part-title{font-size:1.3rem;margin:0 0 .4rem;line-height:1.4}
.main-background-entry{padding-top:1rem;margin-top:1rem;border-top:1px dashed var(--border,#dddbe2)}
.main-background-entry:first-of-type{border-top:0;margin-top:0;padding-top:.3rem}
.main-background-entry h3{font-size:1.06rem;margin:.2rem 0 .45rem;line-height:1.45}
.main-background-entry h3:hover>.main-permalink,.main-background-entry h3:focus-within>.main-permalink,.main-reference-head:hover>.main-permalink,.main-reference-head:focus-within>.main-permalink{opacity:1}
.main-reference-list{list-style:none;counter-reset:main-ref;padding:0;margin:.6rem 0 0}
.main-references .main-reference-entry{counter-increment:main-ref;position:relative;padding:0 0 0 2.6rem;margin:0 0 1.35rem;border-top:0}
.main-reference-entry::before{content:"[" counter(main-ref) "]";position:absolute;left:0;top:0;font-variant-numeric:tabular-nums;color:var(--muted,#62606b);line-height:1.6}
.main-reference-head{margin:0;line-height:1.6;overflow-wrap:anywhere}
.main-reference-head .main-heading-title{font-weight:600;color:inherit;text-decoration:none}
.main-reference-author{margin-left:.6rem;font-size:.86rem;color:var(--muted,#62606b)}
.main-reference-author .user-avatar{display:none}
.main-reference-sources{display:flex;flex-wrap:wrap;gap:.15rem .9rem;margin:.15rem 0 .25rem;font-size:.9rem;line-height:1.5}
.main-reference-sources a{font-weight:600;overflow-wrap:anywhere}
.main-reference-entry .main-note-body{color:var(--muted,#4a4852)}
.main-reference-entry .main-note-body .rich-text{font-size:.93rem;line-height:1.7}
.main-reference-entry .main-note-body p{margin:.35rem 0}
.main-reference-entry .main-note-body>:first-child{margin-top:.2rem}
.main-reference-entry .main-note-body>:last-child{margin-bottom:.2rem}
.main-used-in{margin:.35rem 0 0;font-size:.82rem;line-height:1.6;color:var(--muted,#62606b);overflow-wrap:anywhere}
.main-used-label{font-weight:600;margin-right:.25rem}
.main-used-page{font-size:.72rem;border:1px solid var(--border,#dddbe2);border-radius:999px;padding:0 .4rem;white-space:nowrap}
@media(max-width:800px){
 .main-reader-grid{grid-template-columns:minmax(0,1fr);gap:.8rem}
 .main-reader-sidebar{position:static;max-height:none;border-bottom:1px solid var(--border,#dddbe2);padding-bottom:.35rem}
 .main-contents nav{max-height:50vh;overflow:auto}
 .main-reader-toolbar{margin-bottom:.15rem;gap:.8rem}
 .paper-document{font-size:1rem}
 .paper-document .ltx_title_document{font-size:1.55rem;margin-top:.6rem}
 .paper-document .rieg-titleHead{font-size:1.25rem;line-height:1.35;text-wrap:balance}
 .paper-document .ltx_title_section{font-size:1.3rem}
 .paper-document .ltx_title_subsection{font-size:1.1rem}
 .main-permalink{opacity:.6}
 .main-references .main-reference-entry{padding-left:2.1rem}
 .main-reference-author{display:block;margin-left:0}
}
@media print{
 @page{size:A4;margin:18mm 17mm}
 body{background:#fff!important;color:#000!important}
 .masthead,.breadcrumb,.breadcrumbs,.footer,.main-reader-toolbar,.main-reader-sidebar,.main-note-edit,.main-permalink{display:none!important}
 .main-reader,.main-print-view,.main-reader-grid,.main-reader-content{display:block;width:auto;max-width:none;margin:0;padding:0}
 .paper-document{font-size:10.5pt;line-height:1.5;color:#000}
 .paper-document a,.main-note a{color:inherit;text-decoration:none}
 .paper-document .ltx_title_document{font-size:19pt}
 .paper-document .ltx_title_section{font-size:14pt;break-after:avoid}
 .paper-document .ltx_title_subsection{font-size:12pt;break-after:avoid}
 .paper-document .ltx_title_subsubsection{font-size:11pt;break-after:avoid}
 .paper-document .ltx_theorem>.ltx_title,.paper-document .ltx_proof>.ltx_title{break-after:avoid}
 .paper-document .ltx_figure,.paper-document .ltx_equation,.paper-document .ltx_equationgroup{break-inside:avoid;overflow:visible;max-width:none}
 .main-math-scroll,.main-inline-math{overflow:visible;max-width:none}
 .main-math-scroll{margin:1rem 0;padding:0;break-inside:avoid}
 .main-inline-math{display:inline}
 .main-paper-footnotes li{break-inside:avoid}
 .main-footnote-back{display:none}
 .paper-document math[display="block"]{overflow:visible;max-width:none}
 .paper-document .ltx_picture{max-width:100%;height:auto}
 .paper-document .ltx_figure .paper-diagram{max-width:100%;height:auto}
 .paper-document .ltx_bibitem{break-inside:avoid}
 .main-note{break-before:auto;font-size:10.5pt}
 .main-note h2{break-after:avoid}
 .main-reference-entry{break-inside:avoid}
 .main-background-entry h3,.main-part-title{break-after:avoid}
 .main-reference-sources a,.main-used-in a{color:inherit}
 .main-print-fit{font-size:var(--main-print-font,inherit)!important}
}

.landing-page .masthead { background:#ffffffed; color:var(--ink); border-bottom:1px solid #e8e4eb; }
.landing-page .brand { color:var(--brand); font:400 23px Charter,"Bitstream Charter","Iowan Old Style",Georgia,serif; letter-spacing:.045em; }
.landing-page .home-link { color:var(--link); }
.landing-page .site-menu > summary { border-color:var(--line); }
.landing-page .main { max-width:1120px; padding:68px 32px 80px; }
.landing-page .visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.home-intro { text-align:center; margin:0 auto 48px; }
.home-intro h1 { max-width:780px; margin:0 auto 22px; font:400 50px/1.12 Charter,"Bitstream Charter","Iowan Old Style",Georgia,serif; letter-spacing:-.025em; text-wrap:balance; overflow-wrap:normal; }
.home-description { max-width:610px; margin:0 auto 28px; font-size:17px; color:var(--muted); text-wrap:pretty; }
.home-actions { display:flex; align-items:flex-start; justify-content:center; flex-wrap:wrap; gap:12px; }
.home-start { position:relative; text-align:left; }
.home-start summary.button { display:flex; align-items:center; justify-content:center; gap:22px; min-height:48px; padding:12px 23px; list-style:none; cursor:pointer; font-weight:600; }
.home-start summary::-webkit-details-marker { display:none; }
.home-start summary:hover { background:var(--brand-dark); }
.home-start summary:focus-visible, .home-preview-tabs input:focus-visible + label { outline:3px solid var(--brand); outline-offset:4px; }
.home-secondary { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:48px; padding:11px 22px; border:1px solid #c7bbd1; border-radius:5px; background:#fff; font-weight:500; color:var(--brand-dark); }
.home-secondary:hover { background:var(--brand-soft); text-decoration:none; border-color:var(--brand); }
.home-apps { position:absolute; top:calc(100% + 10px); left:0; width:260px; z-index:10; padding:8px; border:1px solid var(--line); border-radius:9px; box-shadow:0 12px 30px #29163718; background:#fff; }
.home-apps p { margin:5px 10px 8px; font-size:12px; color:var(--muted); }
.home-apps a { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:13px 10px; border-radius:5px; color:var(--ink); }
.home-apps a:hover { background:var(--brand-soft); text-decoration:none; }
.home-app-brand { display:flex; align-items:center; gap:12px; }
.home-app-brand .ai-app-logo { width:25px; height:25px; fill:#222; }
.home-apps a[data-home-claude-state] .ai-app-logo { fill:#d97757; }
.home-apps strong { font-size:15px; font-weight:550; }
.home-apps a > span:not(.home-app-brand) { font-size:11px; color:var(--muted); }
.home-preview { max-width:980px; margin:auto; background:white; border:1px solid #d5cedc; border-radius:12px; box-shadow:0 14px 48px #3d1a5e0d; overflow:hidden; }
.home-project-header { padding:29px 36px 21px; }
.home-example-label { display:block; color:var(--muted); font-size:12px; margin-bottom:7px; }
.home-project-header h2 { padding:0; margin:0; border:0; font:400 28px/1.25 Charter,"Bitstream Charter","Iowan Old Style",Georgia,serif; }
.home-project-sections { padding:0; margin:0; border:0; }
.home-preview-tabs { display:flex; gap:30px; padding:0 36px; border-bottom:1px solid #e7e1ec; }
.home-preview-tabs label { display:flex; align-items:center; min-height:49px; cursor:pointer; font-size:14px; color:var(--muted); border-bottom:2px solid transparent; }
.home-preview-tabs input:checked + label { color:var(--brand); border-color:var(--brand); font-weight:600; }
.home-preview-panel { display:none; padding:25px 36px 32px; min-height:243px; }
.home-project-sections:has(#home-goals:checked) #home-goals-panel,
.home-project-sections:has(#home-questions:checked) #home-questions-panel,
.home-project-sections:has(#home-main:checked) #home-main-panel { display:block; }
.home-preview-panel h3 { margin:0 0 19px; font-size:15px; font-weight:600; }
.home-question-list { list-style:none; padding:0; margin:0; }
.home-question-list li { display:flex; gap:16px; align-items:flex-start; padding:16px 0; border-top:1px solid #eeeaf1; }
.home-question-list li:first-child { padding-top:0; border:0; }
.home-note-number { padding-top:2px; color:#8e8499; font-size:12px; font-variant-numeric:tabular-nums; }
.home-question-list h4,.home-main-note h4 { margin:0 0 5px; font-size:16px; font-weight:500; }
.home-question-list p,.home-main-note p { margin:0; color:var(--muted); font-size:14px; }
.home-note-stage { margin-left:auto; flex:none; padding:3px 8px; border:1px solid #e2dbe8; border-radius:4px; color:var(--muted); font-size:11px; }
.home-goal-list { padding-left:20px; color:var(--muted); }
.home-goal-list li { margin-bottom:12px; }
.home-preview-footer { display:flex; justify-content:space-between; gap:20px; border-top:1px solid #e7e1ec; padding:14px 36px; font-size:12px; }
.home-preview-footer span { color:var(--muted); }
.landing-page .footer { background:#ffffffd9; }
@media(max-width:600px) {
  .landing-page { background-position:center 50px; background-size:auto 850px; }
  .landing-page .main { padding:40px 18px 48px; }
  .home-intro { margin-bottom:34px; }
  .home-intro h1 { font-size:36px; }
  .home-description { font-size:15px; margin-bottom:24px; }
  .home-actions { gap:10px; }
  .home-start { width:100%; }
  .home-start summary.button { width:100%; }
  .home-secondary { flex:1; padding:11px 12px; font-size:14px; gap:8px; }
  .home-apps { width:100%; }
  .home-project-header { padding:22px 20px 16px; }
  .home-project-header h2 { font-size:24px; }
  .home-preview-tabs { padding:0 20px; gap:23px; }
  .home-preview-tabs label { font-size:12px; }
  .home-preview-panel { padding:22px 20px; min-height:278px; }
  .home-question-list li { gap:10px; flex-wrap:wrap; }
  .home-question-list li > div { flex:1; }
  .home-question-list h4 { font-size:15px; }
  .home-question-list p { font-size:13px; }
  .home-note-stage { display:none; }
  .home-preview-footer { padding:14px 20px; }
  .home-preview-footer > span { display:none; }
}

:root {
  --brand: #55277f; --brand-dark: #3d1a5e; --brand-soft: #f4effa; --brand-line: #d9cce8;
  --ink: #1d1d1f; --muted: #5f5f66; --line: #dcdce0; --bg: #ffffff; --panel: #fafafa;
  --link: #4a32a6; --link-visited: #6b3fa0; --danger: #a4262c; --ok: #1e6b35;
  --idea: #9a5b00; --idea-bg: #fff3dc; --conjecture: #1d5aa6; --conjecture-bg: #e7effb;
  --proof: #22703a; --proof-bg: #e5f3e8; --formalized: #0d6464; --formalized-bg: #ddf1ef; --note: #555; --note-bg: #eeeeee;
  --sans: system-ui, -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Noto Sans JP", "Yu Gothic", Meiryo, sans-serif;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 15px/1.55 var(--sans); }
/* Let flex/grid children shrink; scroll wide research content locally. */
.main, .main * { min-width: 0; }
.main, .crumbs, .account { overflow-wrap: anywhere; }
a { color: var(--link); text-decoration: none; }
a:hover { text-decoration: underline; }
img { max-width: 100%; }
h1, h2, h3 { line-height: 1.3; }
h2 { font-size: 1.15rem; margin: 1.8rem 0 .6rem; padding-bottom: .25rem; border-bottom: 1px solid var(--line); }
h3 { font-size: 1rem; margin: 1.2rem 0 .4rem; }
code { font-size: .92em; }
.masthead { background: var(--brand); color: #fff; }
.masthead-inner, .subbar-inner, .notice-inner, .footer-inner { max-width: 1080px; margin: 0 auto; padding: 0 16px; }
.masthead-inner { display: flex; align-items: center; gap: 18px; min-height: 58px; flex-wrap: wrap; padding-top: 6px; padding-bottom: 6px; }
.brand { display: flex; align-items: center; gap: 10px; color: #fff; font-weight: 700; font-size: 1.35rem; letter-spacing: .06em; }
.brand:hover { text-decoration: none; }
.brand img { background: #fff; border-radius: 6px; padding: 2px; }
.primary-nav { display: flex; gap: 16px; }
.primary-nav a { color: #fff; opacity: .92; }
.home-link { color:white; margin-left:auto; display:flex; align-items:center; min-height:44px; padding:0 8px; }
.site-menu { position:relative; }
.site-menu > summary { display:flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:8px 12px; border:1px solid #ffffff80; border-radius:6px; cursor:pointer; list-style:none; }
.site-menu > summary::-webkit-details-marker { display:none; }
.site-menu-panel { position:absolute; top:calc(100% + 8px); right:0; width:min(420px,calc(100vw - 32px)); max-height:75vh; overflow:auto; background:var(--bg); color:var(--ink); padding:16px; border:1px solid var(--line); border-radius:8px; box-shadow:0 8px 24px #0002; z-index:10; }
.site-menu-panel .primary-nav { flex-wrap:wrap; gap:8px; }
.site-menu-panel .primary-nav a { color:var(--link); min-height:44px; padding:8px; display:flex; align-items:center; }
.site-menu-panel .search { margin:12px 0; width:100%; }
.site-menu-panel .search input { min-width:0; max-width:none; width:auto; flex:1; min-height:44px; font-size:16px; }
.site-menu-panel .search button { background:var(--brand); min-height:44px; }
.site-menu-panel .account { border-top:1px solid var(--line); padding-top:8px; gap:8px 12px; margin:0; }
.site-menu-panel .account > a, .site-menu-panel .account button { min-height:44px; display:inline-flex; align-items:center; padding:8px; }
summary:focus-visible, a:focus-visible, button:focus-visible { outline:3px solid var(--brand-line); outline-offset:2px; }
.search { margin-left: auto; display: flex; gap: 6px; }
.search input { width: 260px; max-width: 46vw; padding: 6px 8px; border: 1px solid var(--brand-dark); border-radius: 3px; font: inherit; }
.search button { padding: 6px 12px; border: 1px solid #fff; background: transparent; color: #fff; border-radius: 3px; font: inherit; cursor: pointer; }
.subbar { border-bottom: 1px solid var(--line); background: var(--panel); font-size: .9rem; }
.subbar-inner { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 36px; flex-wrap: wrap; }
.crumbs span[aria-hidden] { color: var(--muted); margin: 0 2px; }
.account { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-left: auto; }
.new-link { font-weight: 600; }
form.inline { display: inline; margin: 0; }
.linklike { background: none; border: 0; padding: 0; font: inherit; color: var(--link); cursor: pointer; }
.linklike:hover { text-decoration: underline; }
.notice { border-bottom: 1px solid var(--brand-line); background: var(--brand-soft); }
.notice.error { background: #fdecee; border-color: #f2c4c8; }
.notice-inner { padding-top: 8px; padding-bottom: 8px; }
.main { max-width: 1080px; margin: 0 auto; padding: 18px 16px 48px; }
.footer { border-top: 1px solid var(--line); background: var(--panel); font-size: .88rem; }
.footer-inner { display: flex; gap: 18px; flex-wrap: wrap; padding-top: 14px; padding-bottom: 20px; }
.muted { color: var(--muted); }
.small { font-size: .88rem; }
.lead { font-size: 1.05rem; }
.button, button.primary, button.secondary, button.danger { display: inline-block; padding: 7px 14px; border-radius: 4px; border: 1px solid var(--brand); font: inherit; cursor: pointer; line-height: 1.3; }
.button, button.primary { background: var(--brand); color: #fff; }
.button:hover { text-decoration: none; background: var(--brand-dark); }
.button.secondary, button.secondary { background: #fff; color: var(--brand); }
button.danger { background: #fff; color: var(--danger); border-color: var(--danger); }
.actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 12px 0; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.icon-action { display:inline-flex; align-items:center; justify-content:center; position:relative; width:40px; min-height:40px; border:1px solid var(--line); border-radius:4px; background:white; }
.inline-icon { width:1.15em; height:1.15em; vertical-align:-.2em; flex:none; stroke-linecap:round; stroke-linejoin:round; }
.action-icon { width:21px; height:21px; flex:none; stroke-linecap:round; stroke-linejoin:round; }
.more-actions { position:relative; margin-bottom:1rem; }
.more-actions > summary { display:flex; align-items:center; justify-content:center; width:44px; min-height:44px; border:1px solid var(--line); border-radius:6px; cursor:pointer; list-style:none; font-size:1.5rem; line-height:1; }
.more-actions > summary::-webkit-details-marker { display:none; }
.more-actions > summary:focus-visible { outline:3px solid var(--brand-line); outline-offset:2px; }
.more-actions[open] > summary { background:var(--brand-soft); }
.more-actions .side-box { margin-top:.75rem; }
.comment-compose { margin:1.5rem 0; }
.form.comment-compose textarea { min-height:4em; resize:vertical; }
.comment-compose .comment-options { display:none; }
.comment-compose:focus-within .comment-options, .comment-compose:has(textarea:not(:placeholder-shown)) .comment-options { display:block; }
.comment-compose .actions { margin-bottom:0; }
.note-related { margin-top:2rem; }
.reading-page { position:relative; max-width:900px; margin:0 auto; }
.more-panel { position:absolute; right:0; top:100%; width:min(340px,calc(100vw - 40px)); max-height:70vh; overflow:auto; background:var(--bg); border:1px solid var(--line); border-radius:8px; box-shadow:0 8px 24px #0002; padding:16px; z-index:5; font-size:.9rem; }
.more-panel ul { padding-left:1.2rem; }
.more-panel li { margin:.6rem 0; }
.more-panel .research-footer { margin-top:1rem; }
.reading-header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding-right:52px; }
.reading-header .research-toolbar { gap:.5rem; padding-right:52px; min-height:44px; }
.reading-overflow { position:absolute; top:0; right:0; }
.reading-page .reading-title-row { min-height:44px; padding-right:52px; }
.project-reading .reading-title-row { margin:0 0 .25rem; }
.project-reading .abs-tagline { margin:0 0 .3rem; }
.project-meta { display:flex; align-items:center; flex-wrap:wrap; gap:4px 10px; min-height:44px; }
.project-meta .abs-people { flex:1; min-width:0; margin:0; }
.project-visibility, .project-votes { flex:none; }
.project-meta .vote { min-width:44px; min-height:44px; }
.project-origin { margin:.2rem 0; }
.project-reading .project-tabs { margin:.5rem 0 0; }
.project-reading .project-tabs a { display:flex; align-items:center; min-height:44px; padding:.5rem .9rem; }
.project-reading .project-tab-panel { padding:.25rem 0 1.25rem; }
.project-reading .issue-toolbar { display:flex; align-items:flex-start; gap:8px; margin:0 0 4px; }
.project-reading .issue-search { flex:1; min-width:0; margin:0; }
.project-reading .issue-filters { margin:4px 0; }
.project-reading .issue-filters input:not([type=checkbox]), .project-reading .issue-filters select, .project-reading .issue-filters button { min-height:44px; }
.project-reading .problem-reorder-toggle { flex:none; min-height:44px; padding:8px 12px; border:1px solid var(--line); border-radius:4px; font:inherit; color:var(--brand); background:white; }
.project-reading .problem-reorder-toggle[aria-pressed="true"] { background:var(--brand-soft); border-color:var(--brand); }
.project-reading .issue-table { margin-top:0; }
.project-reading .issue-table .problem-updated { font-size:.8rem; font-weight:400; color:var(--muted); white-space:nowrap; }
.project-reading .issue-table .problem-handle-cell { width:44px; min-width:44px; padding:4px 0; }
.project-reading [data-order-grip] { display:flex; align-items:center; justify-content:center; width:44px; min-height:44px; border:0; border-radius:4px; background:var(--panel); color:var(--muted); cursor:grab; touch-action:none; }
.project-reading [data-order-grip]:active { cursor:grabbing; background:var(--brand-soft); }
.project-reading [data-order-grip]:disabled { opacity:.35; cursor:default; }
.project-reading [data-order-grip] svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:2.5; stroke-linecap:round; }
.project-reading .problem-order-cell { width:1%; white-space:nowrap; }
.project-reading .problem-order-controls { display:flex; gap:4px; }
.project-reading .problem-order-controls button { width:44px; min-height:44px; }
.project-reading .problem-order-controls select { max-width:7rem; min-height:44px; padding:4px; font:inherit; color:var(--ink); background:white; border:1px solid var(--line); border-radius:4px; }
.project-reading .problem-order-controls select[hidden] { display:none; }
.project-reading .issue-table[data-problem-order]:not([data-reordering="true"]) .problem-handle-cell,
.project-reading .issue-table[data-problem-order]:not([data-reordering="true"]) .problem-order-cell { display:none; }
@media(max-width:600px) {
  .reading-page .reading-title-row { gap:4px; padding-right:48px; }
  .project-meta { gap:4px 8px; }
  .project-reading .project-tabs a { padding:.5rem; }
  .project-reading .problem-order-cell { width:auto; }
  .project-reading .problem-order-controls { display:flex; }
  .project-reading .issue-table[data-reordering="true"] tr { grid-template-columns:44px minmax(0,1fr) auto; }
  .project-reading .issue-table[data-reordering="true"] .problem-handle-cell { grid-column:1; grid-row:1 / span 2; align-self:start; }
  .project-reading .issue-table[data-reordering="true"] .problem-title { grid-column:2; grid-row:1; }
  .project-reading .issue-table[data-reordering="true"] .problem-order-cell { grid-column:3; grid-row:1; }
  .project-reading .issue-table[data-reordering="true"] .problem-state { grid-column:2; grid-row:2; }
  .project-reading .issue-table[data-reordering="true"] .problem-updated { grid-column:3; grid-row:2; }
  .project-reading .issue-table .problem-updated { display:block; grid-column:2; grid-row:2; justify-self:end; }
  .project-reading .issue-table .problem-state { grid-column:1; grid-row:2; }
}

.icon-tooltip { display:none; position:absolute; top:100%; right:0; background:var(--ink); color:white; padding:4px 8px; border-radius:3px; font-size:.85rem; white-space:nowrap; z-index:4; }
.icon-action:hover .icon-tooltip,.icon-action:focus-visible .icon-tooltip { display:block; }
.icon-action:focus-visible { outline:3px solid var(--brand-line); outline-offset:2px; }
@media (hover:none) { .icon-action { width:auto; max-width:100%; gap:6px; padding:8px; min-height:44px; } .icon-action .icon-tooltip { display:block; position:static; background:none; color:inherit; padding:0; white-space:normal; overflow-wrap:anywhere; } }
.more-panel .icon-action { display:flex; justify-content:flex-start; width:100%; min-height:44px; padding:8px; gap:8px; }
.more-panel .action-icon { flex:none; }
.more-panel .icon-tooltip { display:block; position:static; background:none; color:inherit; padding:0; white-space:normal; overflow-wrap:anywhere; }
/* arXiv の abstract ページ */
.abs-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 28px; }
.abs-title { font-size: 1.7rem; margin: .2rem 0 .4rem; font-weight: 700; }
.abs-tagline { font-family: var(--sans); font-size: 1.15rem; font-style: normal; color: #333; margin: 0 0 .7rem; }
.abs-people { margin: .2rem 0 .8rem; }
.abs-block { background: var(--brand-soft); border-left: 4px solid var(--brand-line); padding: 10px 14px; margin: 12px 0; font-family: var(--sans); font-size: 1.05rem; }
.abs-block .label { font-family: var(--sans); font-weight: 700; font-size: .92rem; margin-right: .3em; }
.meta-table { border-collapse: collapse; font-size: .92rem; margin: 10px 0; width: 100%; table-layout: fixed; }
.meta-table td { padding: 3px 10px 3px 0; vertical-align: top; }
.meta-table td:first-child { color: var(--muted); width: 45%; }
.meta-table td + td { overflow-wrap: anywhere; padding-right: 0; }
.nowrap { white-space: nowrap; }
.side-box { border: 1px solid var(--line); border-radius: 4px; padding: 10px 12px; margin-bottom: 14px; font-size: .92rem; background: #fff; }
.side-box h3 { margin: 0 0 6px; font-size: .95rem; }
.side-box ul { margin: 0; padding-left: 18px; }
.rich-text { font-family: var(--sans); font-size: 1.05rem; line-height: 1.85; overflow-wrap: anywhere; }
.rich-text p { margin: .5em 0; }
.rich-text pre { overflow-x: auto; background: #f5f5f7; padding: 8px; font-size: .88rem; }
.rich-text .katex-display { overflow-x: auto; overflow-y: hidden; padding: 2px 0; }
.rich-text .katex { max-width:100%; }
.rich-text > table { display:block; max-width:100%; overflow-x:auto; }
[data-math] { max-width:100%; }
[data-math] .katex, .rich-text .katex:not(.katex-display .katex) { display:inline-block; max-width:100%; overflow-x:auto; overflow-y:hidden; vertical-align:middle; padding:.25em .15em; }
.reading-nav { display:flex; flex-wrap:wrap; gap:8px; margin:1rem 0; }
.note-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:1rem 0; }
.note-actions > .reading-nav, .note-actions > .actions { margin:0; }
.reading-nav a, .note-pagination a { display:flex; align-items:center; min-height:44px; padding:8px 10px; border:1px solid var(--line); border-radius:6px; }
.note-pagination { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); gap:8px; margin:1.5rem 0; }
.access-description { margin:.4rem 0; color:var(--muted); font-size:.88rem; }
/* ノートの題の下は1行: 著者 · 版と日付 · 公開範囲、票は右端 */
.note-byline { display:flex; flex-wrap:wrap; align-items:center; gap:4px 0; margin:.5rem 0 1rem; font-size:.9rem; color:var(--muted); }
.note-byline .abs-people { margin:0; }
.note-byline .user-avatar { width:24px; height:24px; font-size:12px; }
.note-byline-item::before { content:"·"; margin:0 .5em; color:var(--muted); }
.note-byline-votes { margin-left:auto; }
.note-provenance { margin:-.6rem 0 1rem; }
.ai-report-of { margin:.25rem 0 0; font-size:.92rem; color:var(--muted); }
.ai-reports { margin:1.5rem 0 0; padding:0 12px; border:1px solid var(--line); border-radius:6px; background:var(--panel); font-size:.92rem; }
.ai-reports > summary { cursor:pointer; padding:11px 0; color:var(--muted); }
.ai-reports ul { margin:0 0 .7rem; padding-left:1.2rem; }
.note-connections dl { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:.35rem 1rem; margin:.4rem 0 0; }
.note-connections dt { color:var(--muted); font-size:.9rem; }
.note-connections dd { margin:0; }
.note-connections a.link-proposed { text-decoration:underline dotted; text-underline-offset:3px; }
.connection-status { display:inline-block; padding:0 .45em; border:1px solid var(--line); border-radius:1rem; color:var(--muted); font-size:.78rem; white-space:nowrap; }
.connection-sep { color:var(--muted); }
.shelf-group { margin:1.5rem 0 .25rem; font-size:1rem; }
.shelf-count { display:inline-block; min-width:1.4em; padding:0 .45em; border-radius:1rem; background:var(--panel); color:var(--muted); font-size:.8rem; font-weight:600; text-align:center; }
.shelf-archive { margin:2rem 0 0; }
.shelf-archive > summary { cursor:pointer; padding:10px 0; color:var(--muted); font-weight:600; }
.badge.archived { color:var(--muted); background:var(--panel); }
.records-group { margin:1.5rem 0 .25rem; font-size:1.05rem; }
details.records-group > summary { cursor:pointer; padding:10px 0; font-weight:600; }
.records-list { list-style:none; margin:0; padding:0; }
.records-list li { padding:.45rem 0; border-bottom:1px solid var(--line); }
.records-edit { margin-left:.6em; font-size:.85rem; }
.rich-text .wikilink-missing { color: var(--muted); font-family: var(--sans); font-size: .9em; }
.lang-block { margin: 0; }
/* 一覧(arXiv の listing) */
.listing { list-style: none; margin: 0; padding: 0; counter-reset: item; }
.listing > li { padding: 12px 0; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px 10px; }
.listing > li::before { counter-increment: item; content: none; color: var(--muted); font-size: .9rem; padding-top: 2px; }
.listing.plain > li { grid-template-columns: minmax(0, 1fr); }
.listing.plain > li::before { content: none; }
.list-id { font-size: .88rem; color: var(--muted); }
.list-title { font-size: 1.08rem; font-weight: 700; margin: 2px 0; }
.list-meta { font-size: .9rem; color: var(--muted); }
.list-private { margin:0 0 0 auto; }
.list-private button.secondary { min-height:44px; padding:6px 10px; font-size:.88rem; }
.list-visibility { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.list-goal { font-family: var(--sans); font-size: 1rem; margin: 3px 0; }
.tabs { display: flex; gap: 6px; border-bottom: 1px solid var(--line); margin: 6px 0 4px; flex-wrap: wrap; }
.tabs a { padding: 6px 12px; border: 1px solid transparent; border-bottom: 0; border-radius: 4px 4px 0 0; color: var(--muted); }
.tabs a[aria-current="page"] { border-color: var(--line); background: #fff; color: var(--ink); font-weight: 600; margin-bottom: -1px; }
.badge { display: inline-block; font-size: .78rem; padding: 1px 7px; border-radius: 10px; border: 1px solid transparent; white-space: nowrap; font-weight: 600; vertical-align: 1px; }
.stage-idea { color: var(--idea); background: var(--idea-bg); }
.stage-conjecture { color: var(--conjecture); background: var(--conjecture-bg); }
.stage-proof { color: var(--proof); background: var(--proof-bg); }
.stage-formalized { color: var(--formalized); background: var(--formalized-bg); }
.stage-note { color: var(--note); background: var(--note-bg); }
.badge.private { color: #6b4d00; background: #fff6d6; border-color: #eedc9a; }
.badge.public { color: var(--ok); background: #e6f4ea; }
.badge.ai { color: #4b3a8f; background: #efeafc; }
.votes { display: inline-flex; gap: 6px; align-items: center; }
.votes form { display: inline; margin: 0; }
.vote { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-width:40px; min-height:40px; border:1px solid var(--line); background:#fff; color:var(--brand); border-radius:4px; padding:6px 9px; font:inherit; cursor:pointer; }
.vote-count { display:inline-flex; align-items:center; gap:4px; }
.vote[aria-pressed="true"] { border-color: var(--brand); background: var(--brand-soft); font-weight: 700; }
.vote:disabled { cursor: default; opacity: .75; }
/* 本棚(Kindle の本棚のように、やったことが目に見える) */
.shelf { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 18px; margin: 12px 0 8px; }
.book { position: relative; display: flex; flex-direction: column; justify-content: space-between; aspect-ratio: 5 / 7; border-radius: 3px 8px 8px 3px;
  padding: 14px 12px 10px 16px; color: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.18), 0 6px 14px rgba(40,10,70,.18); overflow: hidden; }
.book::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 7px; background: rgba(0,0,0,.22); }
.book:hover { text-decoration: none; transform: translateY(-2px); box-shadow: 0 2px 4px rgba(0,0,0,.2), 0 10px 22px rgba(40,10,70,.25); }
.project-icon { display:inline-block; margin-right:.35em; font-style:normal; line-height:1; vertical-align:baseline; }
.book-title { background:rgba(20,10,35,.55); padding:6px; border-radius:3px; text-shadow:0 1px 2px #000; font-family: var(--sans); font-weight: 700; font-size: 1.02rem; line-height: 1.25; overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.book-owner { display:block; background:rgba(20,10,35,.55); padding:2px 5px; font-size: .78rem; opacity: .92; }
.book-count { background:rgba(20,10,35,.55); padding:2px 5px; font-size: .75rem; opacity: .9; display: flex; justify-content: space-between; gap: 4px; }
.book-lock { position: absolute; top: 8px; right: 9px; font-size: .75rem; opacity: .9; }
.book-lock + .book-title { background:rgba(20,10,35,.55); padding:6px; border-radius:3px; text-shadow:0 1px 2px #000; padding-right: 16px; }
.book-bar { display: flex; height: 5px; border-radius: 3px; overflow: hidden; margin-top: 6px; background: rgba(255,255,255,.2); }
.bar-idea { background: #ffc766; } .bar-conjecture { background: #9cc0ff; } .bar-proof { background: #95e3a9; } .bar-formalized { background: #86e6de; } .bar-note { background: #dddddd; }
.book.new { background: #fff; color: var(--brand); border: 2px dashed var(--brand-line); box-shadow: none; align-items: center; justify-content: center; text-align: center; font-weight: 600; }
.book.new::before { content: none; }
.book.new .book-title { background:none; text-shadow:none; }
/* フォーム */
.form { max-width: 760px; }
.form label { display: block; font-weight: 600; margin: 14px 0 4px; }
.form .hint { font-weight: 400; color: var(--muted); font-size: .88rem; }
.form input[type=text], .form input[type=email], .form input[type=url], .form input[type=search], .form select, .form textarea {
  width: 100%; padding: 7px 9px; border: 1px solid #b9b9c0; border-radius: 4px; font: inherit; background: #fff; }
.form textarea { min-height: 7em; font-family: var(--sans); font-size: 1rem; line-height: 1.75; }
.form textarea.tall { min-height: 18em; }
.form fieldset { border: 1px solid var(--line); border-radius: 4px; margin: 14px 0; padding: 6px 14px 12px; }
.form legend { font-weight: 600; padding: 0 4px; }
.radio-row { display: flex; flex-wrap: wrap; gap: 10px 18px; margin: 6px 0; }
.owner-choice:has(input[value="me"]:checked) .owner-other { display: none; }
.form .actions > input[type=text], .form .actions > input[type=email], .form .actions > input[type=search] { width: auto; flex: 1 1 220px; max-width: 320px; }
.form .actions > input.who-for { flex-basis: 300px; max-width: 420px; } /* 案内文が切れない幅。スマホではボタンが次の行へ回る */
.form .actions > select { width: auto; flex: 0 0 auto; }
.radio-row label { font-weight: 400; margin: 0; display: flex; align-items: center; gap: 6px; }
.error-text { color: var(--danger); }
details.ai-context { border: 1px dashed var(--brand-line); border-radius: 4px; padding: 6px 12px; margin: 14px 0; background: #fcfbfe; }
details.ai-context summary { cursor: pointer; font-weight: 600; }
.comments { list-style: none; padding: 0; margin: 0; }
.comments li { border-top: 1px solid var(--line); padding: 10px 0; }
h2 + .comments > li:first-child { border-top: 0; }
.comment-meta { font-size: .88rem; color: var(--muted); margin-bottom: 4px; }
.person-link { display:inline-flex; align-items:center; gap:.4em; max-width:100%; }
.user-avatar { display:inline-grid; position:relative; width:32px; height:32px; flex:none; vertical-align:middle; place-items:center; overflow:hidden; border-radius:50%; background:var(--line); color:var(--brand); font:600 16px var(--sans); }
.user-avatar img { position:absolute; width:100%; height:100%; object-fit:cover; }
.user-avatar-large { width:72px; height:72px; font-size:32px; }
.profile-heading { display:flex; align-items:center; gap:.5em; }
.book-owner .user-avatar { width:24px; height:24px; font-size:12px; margin-right:.3em; }
.credits { columns: 2 220px; list-style: none; padding: 0; margin: 0; }
.credits li { break-inside: avoid; padding: 2px 0; }
.share-url { font-family: ui-monospace, Menlo, monospace; font-size: .88rem; width: 100%; padding: 6px 8px; border: 1px solid var(--line); border-radius: 4px; background: #fafafa; }
.actions > .share-url { flex: 1 1 260px; width: auto; min-width: 0; }
.table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.table th, .table td { text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--line); vertical-align: top; }
.empty { color: var(--muted); padding: 14px 0; }
.notice-inline { background: var(--brand-soft); border: 1px solid var(--brand-line); padding: 8px 12px; border-radius: 6px; }
.hero { padding: 18px 0 8px; }
.hero h1 { font-size: 1.8rem; margin: 0 0 .4rem; }
.hero p { max-width: 720px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.graph-wrap { border: 1px solid var(--line); border-radius: 6px; background: #fff; height: 320px; min-height: 180px; position: relative; }
.graph-wrap svg { width: 100%; height: 100%; display: block; }
.graph-legend { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }
.orcid-mark { display: inline-block; width: 16px; height: 16px; border-radius: 50%; background: #a6ce39; color: #fff; font: 700 9px/16px var(--sans); text-align: center; vertical-align: -2px; }
.button .orcid-mark { vertical-align: middle; margin-top: -2px; }
@media (max-width: 820px) {
  .abs-layout { grid-template-columns: minmax(0, 1fr); }
  .grid-3 { grid-template-columns: minmax(0, 1fr); }
  .search { margin-left: 0; width: 100%; }
  .search input { flex: 1; width: auto; min-width:0; max-width: none; }
  .abs-title { font-size: 1.4rem; }
  .shelf { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 12px; }
}
@media (max-width: 600px) {
  .masthead-inner { gap:8px 16px; }
  .brand { font-size:1.1rem; gap:6px; }
  .home-link { font-size:.88rem; }
  .primary-nav { width:100%; flex-wrap:wrap; gap:0 16px; }
  .primary-nav a, .account > a, .account button, .footer a { display:inline-flex; align-items:center; min-height:44px; }
  .search input, .search button { min-height:44px; font-size:16px; }
  .account { width:100%; margin:0; gap:4px 12px; }
  .account .new-link { margin-right:auto; }
  .reading-header { flex-direction:column; gap:8px; padding-right:48px; }
  .reading-header .research-toolbar { padding-right:0; width:100%; }
  .reading-header .icon-action { width:auto; max-width:100%; gap:6px; padding:8px; min-height:44px; }
  .reading-header .icon-tooltip { display:block; position:static; background:none; color:inherit; padding:0; white-space:normal; }
  .icon-action { min-height:44px; }
  .more-panel a, .more-panel summary, .comment-compose > summary, .form summary { min-height:44px; padding-top:10px; padding-bottom:10px; }
  .more-panel a { display:inline-block; }
  .research-nav a, .research-note h3 a { display:block; min-height:44px; }
  .research-note h3 a { padding:8px 0; }
  .form input:not([type=hidden]):not([type=radio]):not([type=checkbox]), .form select, .form textarea { font-size:16px; max-width:100%; }
  .form input:not([type=radio]):not([type=checkbox]), .form select { min-height:44px; }
  /* WebKit's native select can ignore min-height; keep its touch area explicit. */
  .form select:not([multiple]) { appearance:none; height:44px; padding-right:32px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%235f5f66' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 10px center; background-size:12px 8px; }
  .form button { min-height:44px; }
  .form fieldset { min-inline-size:0; }
  .form legend { max-width:100%; }
  .form .radio-row label { min-height:44px; }
  .form .actions > button, .form .actions > a { display:flex; align-items:center; justify-content:center; min-height:44px; padding:10px 14px; }
  .form .actions > select { flex:1 1 100%; }
  .note-connections, .note-connections tbody, .note-connections tr, .note-connections td { display:block; width:100%; }
  .note-connections td { border:0; padding:6px 0; }
  .note-connections tr { border-bottom:1px solid var(--line); padding:8px 0; }
  .note-connections select + select { margin-top:8px; }
}
@media (max-width: 480px) {
  .account { gap: 10px; font-size: .82rem; }
}
/* スマホとアプリ内: 上部を詰め、研究の本文を早く見せる。現在地は1行にし、省略するのは長い題だけにする(全文はページの題にある)。
   先頭の「SUMIRE」はロゴ(アプリではアプリの見出し)と重なるので出さない */
@media (max-width: 600px) {
  .masthead-inner { min-height:48px; padding-top:2px; padding-bottom:2px; gap:4px 8px; flex-wrap:nowrap; }
  .brand { flex:none; }
  .brand img { width:28px; height:28px; }
  .home-link { padding:0 6px; white-space:nowrap; }
  .site-menu > summary { padding:6px 10px; white-space:nowrap; }
  .subbar-inner { min-height:36px; flex-wrap:nowrap; }
  .crumbs { display:flex; align-items:center; gap:4px; flex:1; white-space:nowrap; overflow:hidden; }
  .crumbs > * { flex:none; overflow:hidden; text-overflow:ellipsis; line-height:36px; }
  .crumbs > .crumb-long { flex:0 1 auto; min-width:3em; }
  .crumbs > a:first-child, .crumbs > a:first-child + span[aria-hidden] { display:none; }
  .main { padding-top:10px; }
  .abs-title { font-size:1.25rem; }
  .reading-nav { margin:.6rem 0; }
  /* ノートの題の下: 公開範囲を1行、操作を1行、著者・版・検証を1行にまとめる */
  .note-access { display:flex; flex-wrap:wrap; align-items:center; gap:2px 6px; margin:.15rem 0; }
  .note-access .access-description { margin:0; font-size:.8rem; }
  .note-actions { margin:.4rem 0; }
  .note-actions .vote { min-width:44px; min-height:44px; }
  .note-meta { margin:.2rem 0 .4rem; font-size:.85rem; line-height:1.6; color:var(--muted); }
  .note-meta > * { display:inline; margin:0; font-size:inherit; }
  .note-meta > * + *::before { content:"·"; margin:0 .45em; color:var(--muted); }
  .note-meta .user-avatar { width:24px; height:24px; font-size:12px; }
  .note-state-controls > summary { padding:11px 0; margin:-7px 0; cursor:pointer; }
}
.in-app .masthead { background:var(--panel); color:var(--ink); border-bottom:1px solid var(--line); }
.in-app .masthead-inner { min-height:44px; padding-top:0; padding-bottom:0; gap:4px 8px; flex-wrap:nowrap; }
.in-app .crumbs { display:flex; align-items:center; gap:4px; flex:1; white-space:nowrap; overflow:hidden; font-size:.9rem; }
.in-app .crumbs > * { flex:none; overflow:hidden; text-overflow:ellipsis; line-height:44px; }
.in-app .crumbs > .crumb-long { flex:0 1 auto; min-width:3em; }
.in-app .crumbs > a:first-child, .in-app .crumbs > a:first-child + span[aria-hidden] { display:none; }
.in-app .crumbs span[aria-hidden] { color:var(--muted); }
.in-app .site-menu { margin-left:auto; flex:none; }
.in-app .site-menu > summary { border-color:var(--line); color:var(--brand); }

@media screen {
  :root { --serif:Charter,"Bitstream Charter","Iowan Old Style",Georgia,serif; --line:#e4dfea; --panel:#faf8fc; --brand-soft:#f6f1fa; }
  html { background:#fff; }
  body { background:transparent; line-height:1.65; }
  body::before { content:""; position:fixed; top:0; left:0; width:100%; height:100vh; height:100lvh; z-index:-1; pointer-events:none; background:url('/assets/home-watercolor.webp') center / cover no-repeat; }
  .masthead { background:#ffffffed; color:var(--ink); border-bottom:1px solid var(--line); }
  .masthead-inner,.subbar-inner,.notice-inner,.footer-inner { max-width:1120px; padding-left:24px; padding-right:24px; }
  .masthead-inner { min-height:64px; }
  .brand { color:var(--brand); font:400 23px var(--serif); letter-spacing:.045em; }
  .brand img { background:transparent; padding:0; }
  .home-link,.primary-nav a { color:var(--link); }
  .site-menu > summary { border-color:var(--line); background:white; }
  .site-menu-panel { border-radius:10px; padding:20px; box-shadow:0 12px 36px #29163715; }
  .subbar { background:#ffffffdb; font-size:.82rem; }
  .subbar-inner { min-height:40px; }
  body:not(.landing-page) > .main { max-width:1120px; margin:32px auto 64px; padding:36px 44px 48px; border:1px solid var(--line); border-radius:12px; background:white; box-shadow:0 12px 40px #3d1a5e08; min-height:360px; }
  body:not(.landing-page) > .main.wide { max-width:1440px; }
  body:not(.landing-page) > .main:has(> .form) { max-width:880px; }
  .main > h1,.main > div > h1,.form > h1,.hero > h1 { margin:0 0 22px; font:400 clamp(1.8rem,2.6vw,2.3rem)/1.2 var(--serif); letter-spacing:-.02em; text-wrap:balance; }
  .main > h2 { margin:32px 0 16px; padding-bottom:10px; font:400 1.45rem/1.3 var(--serif); }
  .abs-title { font-family:var(--serif); font-weight:400; font-size:2rem; line-height:1.25; letter-spacing:-.015em; }
  .reading-page { max-width:980px; }
  .project-meta { margin:12px 0; }
  .project-reading .project-tabs,.tabs { gap:20px; background:transparent; border-radius:0; border-bottom:1px solid var(--line); margin:22px 0 18px; }
  body .project-tabs a,.tabs a { border:0; border-bottom:2px solid transparent; border-radius:0; padding:10px 0; margin:0; color:var(--muted); }
  body .project-tabs a[aria-current="page"],.tabs a[aria-current="page"] { border:0; border-bottom:2px solid var(--brand); background:transparent; color:var(--brand); font-weight:600; margin:0; }
  body .research-nav a[aria-current="page"] { background:var(--brand); border-color:var(--brand); }
  body .research-goal { border-left-color:var(--brand-line); padding:8px 20px; }
  body .research-resolution { border-left-color:var(--brand); background:var(--brand-soft); }
  body .issue-table thead { background:var(--panel); }
  body .issue-table tbody tr:nth-child(even) { background:#fdfcfe; }
  body .issue-table tbody tr:hover { background:var(--brand-soft); }
  .listing > li { padding:22px 0; gap:7px 12px; }
  .listing > li:last-child { border-bottom:0; }
  .list-title { font-size:1.13rem; font-weight:600; }
  .list-meta { font-size:.85rem; }
  .list-goal { margin:4px 0 0; }
  .side-box { padding:18px 20px; border-radius:9px; }
  .side-box h3 { margin-bottom:12px; }
  .button,button.primary,button.secondary,button.danger { padding:11px 18px; min-height:44px; border-radius:6px; font-weight:500; }
  .button.secondary,button.secondary { border-color:#c7bbd1; }
  .form button:not(.linklike):not(.icon-action) { min-height:44px; padding:10px 16px; font:inherit; border:1px solid #c7bbd1; border-radius:6px; color:var(--brand); background:white; cursor:pointer; }
  .form button[type=submit]:not(.secondary):not(.danger):not([name=reset]):not(.linklike) { color:white; background:var(--brand); border-color:var(--brand); }
  .form button.danger { color:var(--danger); border-color:var(--danger); }
  .actions { gap:12px; margin:18px 0; }
  .form label { margin-top:22px; margin-bottom:8px; font-weight:500; }
  .form input[type=text],.form input[type=email],.form input[type=url],.form input[type=search],.form select,.form textarea { padding:11px 12px; border-radius:6px; border-color:#c7c0cf; }
  .form input:focus-visible,.form textarea:focus-visible,.form select:focus-visible { outline:2px solid var(--brand); outline-offset:2px; }
  .form fieldset { padding:14px 18px 18px; border-radius:8px; margin:24px 0; }
  .form .radio-row label { margin:0; }
  .notice-inline { padding:12px 16px; border-radius:8px; }
  .table:not(.issue-table) th,.table:not(.issue-table) td { padding:11px 10px; }
  .footer { background:#ffffffed; }
  .footer-inner { padding-top:20px; padding-bottom:24px; gap:22px; }
  .ai-app-button { border:1px solid var(--line); border-radius:6px; margin-left:6px; background:white; }
  [data-ai-app="claude"] .ai-app-logo { fill:#d97757; }
  [data-ai-app="chatgpt"] .ai-app-logo { fill:#222; }
  .connection-app-heading { display:flex; align-items:center; gap:10px; }
  .connection-app-heading .ai-app-logo { width:26px; height:26px; }
  .in-app body > .main { margin-top:16px; }
}
@media screen and (max-width:1184px) {
  body:not(.landing-page) > .main { margin-left:24px; margin-right:24px; }
}
@media screen and (max-width:600px) {
  .masthead-inner,.subbar-inner,.notice-inner,.footer-inner { padding-left:18px; padding-right:18px; }
  .masthead-inner { min-height:52px; }
  body:not(.landing-page) > .main { margin:16px 10px 32px; padding:24px 18px 32px; border-radius:10px; min-height:300px; background:#ffffffd9; }
  .main > h1,.main > div > h1,.form > h1,.hero > h1 { font-size:1.8rem; margin-bottom:20px; }
  .abs-title { font-size:1.55rem; }
  .project-reading .project-tabs,.tabs { gap:18px; margin-top:18px; }
  body .project-tabs a,.project-reading .project-tabs a,.tabs a { padding:10px 0; }
  .listing > li { padding:18px 0; }
  .side-box { padding:16px; }
  .footer-inner { gap:14px 18px; }
  .in-app body > .main { border:0; border-radius:0; box-shadow:none; margin:0; padding:18px 16px 32px; }
}
@media screen and (orientation:portrait) {
  body::before { background-image:url('/assets/home-watercolor-portrait.webp'); }
}
