/* Blog pages use the portfolio's existing graphite, typography and amber tokens. */
.blog-page #portfolio{min-height:100vh;overflow:hidden}
.blog-page #portfolio:after{position:fixed;inset:0;opacity:.18;z-index:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.15'/%3E%3C/svg%3E")}
.blog-page .site-header{position:relative;opacity:1;filter:none;transform:none;padding-bottom:18px;border-bottom:1px solid var(--line);transition:none}
.blog-page .site-header .brand{color:var(--text)}
.blog-page #navigation a[href="/#articles"]{color:var(--accent)}
.blog-page .blog-wrap,.blog-footer{position:relative;z-index:1;max-width:1350px;margin:auto;padding-inline:6%}
.blog-index-head{padding:110px 0 75px;border-bottom:1px solid var(--line)}
.blog-eyebrow,.blog-overline{font-size:13px;letter-spacing:.105em;color:var(--accent);font-weight:500}
.blog-index-head h1{font-size:clamp(43px,6.5vw,95px);font-weight:500;letter-spacing:-.055em;line-height:1.02;margin:23px 0}
.blog-index-head>p:last-child{font-size:19px;max-width:640px;line-height:1.6}
.blog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 28px;padding:52px 0 100px}
.blog-card{min-width:0;background:#202527;border:1px solid #394042}
.blog-card-cover{display:block;aspect-ratio:16/9;overflow:hidden;background:#252b2c}
.blog-card-cover img{display:block;width:100%;height:100%;object-fit:cover}
.blog-card-body{padding:27px 29px 31px}
.blog-card h2{font-size:clamp(24px,2.8vw,36px);font-weight:500;line-height:1.17;margin:16px 0 14px;letter-spacing:-.025em}
.blog-card h2 a:hover,.blog-read:hover,.blog-back:hover{color:var(--accent)}
.blog-card-body>p:not(.blog-overline){font-size:16px;line-height:1.6;max-width:580px}
.blog-read{display:inline-block;margin-top:25px;font-size:13px;letter-spacing:.075em;color:var(--accent)}
.blog-empty{grid-column:1/-1;padding:56px 0;border-bottom:1px solid var(--line);font-size:18px}
.blog-footer{display:flex;justify-content:space-between;gap:24px;padding-block:32px;border-top:1px solid var(--line);color:var(--muted);font-size:13px;letter-spacing:.06em}
.blog-footer a:hover{color:var(--accent)}
.blog-back{display:inline-block;margin:55px 0 45px;color:var(--accent);font-size:13px;letter-spacing:.07em}
.blog-article{max-width:850px;margin:auto}
.blog-article-head h1{font-size:clamp(42px,5.1vw,73px);font-weight:500;line-height:1.08;letter-spacing:-.04em;margin:20px 0}
.blog-subtitle{font-size:clamp(20px,2vw,26px);line-height:1.45;color:var(--muted)}
.blog-byline{font-size:13px;letter-spacing:.08em;color:var(--muted);margin:28px 0 38px}
.blog-byline span,.blog-overline span{padding-inline:10px;color:#777f7b}
.blog-cover{margin:0 0 55px}
.blog-cover img{display:block;width:100%;height:auto;max-height:560px;object-fit:cover}
.article-body{font-size:19px;line-height:1.82;color:var(--text);overflow-wrap:anywhere}
.article-body p{margin:0 0 1.3em;color:#e1e2de}
.article-body h1,.article-body h2,.article-body h3{font-weight:600;letter-spacing:-.025em;line-height:1.2;margin:1.8em 0 .7em}
.article-body h1{font-size:2em}.article-body h2{font-size:1.55em}.article-body h3{font-size:1.25em}
.article-body a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.article-body ul,.article-body ol{padding-inline-start:1.5em;margin:0 0 1.3em}
.article-body li{margin:.3em 0}
.article-body blockquote{border-inline-start:2px solid var(--accent);padding-inline-start:1.4em;margin:1.7em 0;color:#e1e2de;font-size:1.12em}
.article-body hr{border:0;border-top:1px solid #59615d;margin:2.5em auto;width:55%}
.article-body figure{margin:2em 0;text-align:center}
.article-body figure.align-left{text-align:start}.article-body figure.align-right{text-align:end}
.article-body img{max-width:100%;height:auto}
.article-body figcaption{font-size:14px;color:var(--muted);line-height:1.5;margin-top:9px}
.article-body iframe{display:block;width:100%;aspect-ratio:16/9;border:0;margin:2em auto}
.article-body video{display:block;width:100%;max-height:75vh;aspect-ratio:16/9;object-fit:contain;background:#0e1213;margin:2em auto}
.article-body .text-large{font-size:1.3em}.article-body .text-small{font-size:.85em}
.blog-related{border-top:1px solid var(--line);margin-top:95px}.blog-related h2{font-size:29px;margin-top:36px}.blog-related .blog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.blog-related .blog-card h2{font-size:22px}
.blog-preview-note{padding:13px 18px;background:#443a24;border:1px solid #9b793e;font-size:14px;margin-top:35px}
[dir="rtl"] .blog-index-head h1,[dir="rtl"] .blog-article-head h1{letter-spacing:0;line-height:1.25}
[dir="rtl"] .blog-back{direction:ltr}

/* Private authoring surface. None of these selectors affect the portfolio. */
.editor-page{background:#171b1d;color:var(--text)}
.editor-wrap{max-width:1460px;margin:auto;padding:0 5% 100px}
.editor-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:29px 0;border-bottom:1px solid var(--line);font-size:13px;letter-spacing:.08em;color:var(--muted)}
.editor-top a:hover,.editor-top button:hover{color:var(--accent)}
.editor-top button{border:0;background:none;color:inherit;font-size:inherit;letter-spacing:inherit}
.editor-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;padding:85px 0 45px}
.editor-heading h1,.editor-login h1{font-size:clamp(42px,6vw,76px);font-weight:500;letter-spacing:-.05em;margin:12px 0}
.editor-heading p:last-child{font-size:17px}
.editor-create-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.editor-create-actions #sample-article{border:1px solid var(--line);background:none;color:var(--muted);padding:12px 15px;font-size:13px;letter-spacing:.04em;min-height:46px}
.editor-create-actions #sample-article:hover{color:var(--accent);border-color:var(--accent)}
.editor-primary{border:1px solid var(--accent);background:var(--accent);color:#171b1d;padding:13px 19px;font-size:13px;font-weight:600;letter-spacing:.055em;min-height:46px}
.editor-primary:hover{background:#ffd078}
.editor-list{border-top:1px solid var(--line)}
.editor-row{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line)}
.editor-row:hover strong{color:var(--accent)}
.editor-row strong{display:block;font-size:22px;font-weight:500}.editor-row small{display:block;color:var(--muted);margin-top:7px;font-size:13px}
.status{font-style:normal;font-size:12px;letter-spacing:.08em;color:var(--muted)}.status.published{color:var(--accent)}
.editor-login{max-width:530px;padding:9vh 30px;margin:auto}.editor-login>p{margin:18px 0 32px}.editor-login form{display:grid;gap:22px}.editor-login label{display:grid;gap:8px}.editor-login input{background:#202527;color:var(--text);border:1px solid var(--line);padding:13px}
.editor-alert{padding:12px 15px;background:#4d302d;border:1px solid #9e665b;margin:20px 0}
.editor-actions{position:sticky;top:0;z-index:8;background:#171b1df7;border-bottom:1px solid var(--line);padding:14px 0;display:flex;align-items:center;justify-content:space-between;gap:16px}
.editor-actions>div{display:flex;gap:10px;flex-wrap:wrap}
.editor-actions button,.format-toolbar button,.compose-side button:not(.editor-primary){border:1px solid var(--line);background:#202527;color:var(--text);padding:8px 12px;font-size:13px}
.editor-actions .editor-primary{background:var(--accent);color:#171b1d;border-color:var(--accent)}
.editor-actions button:hover,.format-toolbar button:hover,.compose-side button:hover{border-color:var(--accent)}
#save-status{color:var(--muted);font-size:13px}
.compose-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:62px;padding-top:52px}
.compose-main{min-width:0}
.compose-title,.compose-subtitle{display:block;width:100%;padding:0;border:0;background:none;color:var(--text);outline:none}
.compose-title{font-size:clamp(38px,4vw,65px);font-weight:500;line-height:1.12;letter-spacing:-.04em;margin:23px 0 12px;height:auto}
.compose-title{min-height:100px;max-height:none;resize:none;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere}
.compose-main{max-width:850px;width:100%}
.compose-body{max-width:780px;line-height:1.85;overflow-wrap:anywhere}
.format-toolbar{max-width:850px}
.format-toolbar button,.format-toolbar select{white-space:nowrap;font-size:14px}
.compose-subtitle{font-size:23px;color:var(--muted);margin-bottom:38px}
.format-toolbar{position:sticky;top:74px;z-index:7;display:flex;flex-wrap:wrap;align-items:center;gap:5px;background:#222829;border:1px solid #454c48;padding:8px;margin-bottom:24px}
.format-toolbar select{width:auto;height:36px;min-height:36px;padding:4px 7px;font-size:13px}
.format-toolbar button{min-width:34px;height:36px;padding:4px 7px}
.compose-body{min-height:450px;padding:8px 0 80px;outline:none}
.compose-body:empty:before{content:attr(data-placeholder);color:#7f8884}
.compose-body:focus{box-shadow:none}
.compose-side{border-inline-start:1px solid var(--line);padding-inline-start:24px;display:flex;flex-direction:column;gap:20px}
.compose-side h2{font-size:16px;letter-spacing:.08em}
.compose-side label{display:grid;gap:8px;font-size:13px;color:var(--muted);font-weight:500}
.compose-side input,.compose-side textarea,.compose-side select{background:#202527;border:1px solid #48504c;color:var(--text);padding:10px 11px;min-height:43px;height:auto;font-size:14px;width:100%}
.compose-side details{border-top:1px solid var(--line);padding-top:18px}.compose-side details label{margin-top:15px}.compose-side summary{font-size:13px;letter-spacing:.08em;cursor:pointer}
.cover-field{border-top:1px solid var(--line);padding-top:20px;display:grid;gap:12px;font-size:13px;letter-spacing:.05em}.cover-field img{width:100%;aspect-ratio:16/9;object-fit:cover}.cover-field button{justify-self:start}
.compose-side .editor-danger{color:#dca8a0!important;margin-top:20px}
.editor-page [dir="rtl"] .compose-title{letter-spacing:0}
@media(max-width:1050px){.blog-page .site-header .nav-row{margin-top:18px}.blog-page #navigation{gap:13px}.blog-page #navigation a{font-size:11px;letter-spacing:.02em}.compose-grid{gap:35px;grid-template-columns:minmax(0,1fr) 270px}}
@media(max-width:800px){.blog-page .site-header .menu{display:block}.blog-page .site-header .nav-row{justify-content:flex-end}.blog-page .site-header #navigation{display:none;position:absolute;top:100%;inset-inline:6%;background:#202527;border:1px solid var(--line);padding:16px;flex-direction:column;align-items:flex-start;z-index:9}.blog-page .site-header #navigation.open{display:flex}.blog-page .site-header .language-switch{margin-inline-end:auto}.blog-grid,.blog-related .blog-grid{grid-template-columns:1fr 1fr}.compose-grid{grid-template-columns:1fr}.compose-side{border-inline-start:0;border-top:1px solid var(--line);padding:30px 0 0}}
@media(max-width:600px){.blog-page .site-header{padding:20px 6%}.blog-index-head{padding:66px 0 43px}.blog-index-head h1{font-size:43px}.blog-index-head>p:last-child{font-size:17px}.blog-grid,.blog-related .blog-grid{grid-template-columns:1fr;gap:20px;padding:35px 0 70px}.blog-card-body{padding:22px}.blog-card h2{font-size:26px}.blog-article-head h1{font-size:40px}.blog-subtitle{font-size:20px}.article-body{font-size:17px}.blog-cover{margin-bottom:32px}.blog-footer{font-size:11px}.editor-wrap{padding-inline:5%}.editor-heading{align-items:start;flex-direction:column;padding:50px 0 28px}.editor-actions{align-items:flex-start;flex-direction:column}.format-toolbar{top:113px}.editor-top span{display:none}.compose-title{font-size:37px}.compose-subtitle{font-size:20px}}
@media(max-width:600px){.editor-page{overflow-x:hidden}.format-toolbar{position:relative;top:auto;display:flex;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}.format-toolbar>*{flex:none}.compose-body{min-height:55vh}.compose-title{font-size:37px;min-height:88px}}
/* Private owner surfaces and insertion dialogs only. */
.editor-dialog{width:min(620px,calc(100% - 32px));max-height:88vh;overflow:auto;border:1px solid #58615d;background:#202627;color:var(--text);padding:30px;box-shadow:0 25px 90px #0009}
.editor-dialog::backdrop{background:#080a0bcc;backdrop-filter:blur(3px)}
.editor-dialog h2{font-size:21px;margin:0 0 24px}.editor-dialog p{color:var(--muted);line-height:1.5}
.editor-dialog label,.owner-compose label,.owner-upload label{display:grid;gap:7px;color:var(--muted);font-size:13px;margin:16px 0}
.editor-dialog input,.owner-compose input,.owner-compose textarea{background:#171b1d;border:1px solid #4b5450;color:var(--text);font:inherit;padding:12px;max-width:100%;min-width:0;box-sizing:border-box}
.editor-dialog input{width:100%}.editor-dialog button,.owner-compose button,.owner-media button{border:1px solid #626b65;background:#202627;color:var(--text);padding:11px 14px;cursor:pointer}
.editor-dialog button.editor-primary,.owner-compose button.editor-primary{background:var(--accent);color:#171b1d;border-color:var(--accent)}
.dialog-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.dialog-error{color:#f3b3a6!important;min-height:1em}.editor-dialog progress,.owner-upload progress,.owner-compose progress{width:100%;accent-color:var(--accent)}
.owner-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.owner-grid a{border:1px solid #434c48;background:#202627;padding:28px;font-size:23px}.owner-grid a:hover{border-color:var(--accent);color:var(--accent)}.owner-grid span{display:block;color:var(--muted);font-size:14px;margin-top:12px}
.owner-note{color:var(--muted);font-size:14px;line-height:1.6;margin-top:25px}.owner-compose{display:grid;grid-template-columns:minmax(230px,30%) minmax(0,1fr);gap:45px}.owner-list h2{font-size:16px}.owner-row{display:flex;width:100%;justify-content:space-between;gap:10px;padding:17px 0;border:0;border-bottom:1px solid #39413d;background:none;color:var(--text);text-align:start;cursor:pointer}.owner-row span{color:var(--muted)}.owner-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.owner-actions span{width:100%;color:var(--accent)}.owner-compose textarea{width:100%;resize:vertical}.owner-compose input:not([type=file]){width:100%}.owner-media-grid,.media-picker-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:15px}.owner-media,.owner-media-choice{min-width:0;border:1px solid #47514b;padding:12px;background:#202627;overflow-wrap:anywhere}.owner-media img,.owner-media video,.owner-media-choice img{width:100%;aspect-ratio:16/9;object-fit:cover}.owner-media p,.owner-media-choice span{display:block;font-size:12px;color:var(--muted);overflow-wrap:anywhere}.owner-media button{margin-top:12px}
@media(max-width:700px){.owner-grid,.owner-compose{grid-template-columns:1fr}.editor-dialog{padding:20px}.owner-grid a{font-size:19px}}
/* Structured private project editors. Public portfolio styling is untouched. */
.owner-projects-list .owner-list{max-width:1000px}
.owner-projects-list .owner-row{font-size:19px;text-decoration:none}
.owner-project-editor .editor-heading{padding-bottom:25px}
.owner-project-editor .owner-actions{position:sticky;top:0;z-index:8;background:#171b1df2;padding:15px 0;border-block:1px solid var(--line);margin-bottom:30px}
.owner-project-editor .owner-actions button{border:1px solid #626b65;background:#202627;color:var(--text);padding:12px 16px}
.owner-project-editor .owner-actions .editor-primary{background:var(--accent);color:#171b1d;border-color:var(--accent)}
.owner-structured{max-width:900px;margin:auto}
.owner-form-section{padding:32px 0;border-top:1px solid #454d49}
.owner-form-section h2{font-size:26px;margin-bottom:20px;font-weight:500}
.owner-form-section>p{font-size:15px;margin-bottom:15px}
.owner-form-section input,.owner-form-section textarea{width:100%;min-width:0;box-sizing:border-box}
.owner-form-section>button,.owner-repeat-actions button{border:1px solid #626b65;background:#202627;color:var(--text);padding:10px 14px;margin:8px 8px 8px 0}
.owner-form-section button:hover,.owner-project-editor .owner-actions button:hover{border-color:var(--accent)}
.owner-cover-area img{display:block;max-width:450px;width:100%;aspect-ratio:16/9;object-fit:cover;margin:18px 0}.owner-cover-area img[hidden]{display:none}
.owner-repeat-item{border:1px solid #46504a;background:#202627;padding:18px;margin:12px 0;display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end;position:relative}
.owner-repeat-item label{margin:0}.owner-repeat-item label:first-child{grid-column:1/-1}.owner-repeat-actions{display:flex;grid-column:1/-1;justify-content:flex-end}.owner-repeat-actions button{margin:0 0 0 7px;min-width:40px}
.owner-step-num{font-size:24px;color:var(--accent)}
.owner-mini-toolbar{display:flex;gap:6px;flex-wrap:wrap;margin:18px 0 8px}.owner-mini-toolbar button{border:1px solid #626b65;background:#202627;color:var(--text);padding:7px 12px}
.owner-rich{min-height:150px;border:1px solid #4b5450;background:#171b1d;padding:20px;outline:none}.owner-rich:empty:before{content:attr(data-placeholder);color:#858f89}.owner-rich:focus{border-color:var(--accent)}
@media(max-width:700px){.owner-project-editor .owner-actions{position:static}.owner-repeat-item{grid-template-columns:1fr}.owner-form-section h2{font-size:22px}}
/* Selection state and contextual controls are private to the article editor. */
.format-toolbar button[aria-pressed="true"],.editor-contextual button[aria-pressed="true"]{color:#171b1d;background:var(--accent);border-color:var(--accent)}
.editor-contextual{position:fixed;z-index:30;display:flex;gap:4px;padding:6px;background:#202627;border:1px solid #656e66;box-shadow:0 14px 35px #0009;border-radius:4px}
.editor-contextual[hidden]{display:none}
.editor-contextual button{border:0;background:none;color:var(--text);min-width:36px;min-height:36px;padding:5px 8px;font-size:13px;cursor:pointer}
.editor-contextual button:hover{color:var(--accent)}
.compose-body figure{position:relative;cursor:text}.compose-body figure img{cursor:pointer}
@media(max-width:600px){.editor-contextual{max-width:calc(100vw - 24px)}}
/* Match the approved mobile header arrangement on public blog pages. */
@media(max-width:800px){.blog-page .site-header .nav-row{direction:ltr;justify-content:space-between}.blog-page .site-header .menu{order:0;margin:0}.blog-page .site-header .language-switch{order:1;margin-left:auto;margin-inline-end:0}}
/* Owner-only content organization and media controls. */
.owner-grid .owner-visitor{grid-column:1/-1}
.owner-list{margin:30px 0 46px}.owner-list h2{font-size:17px;font-weight:600;letter-spacing:.055em;color:var(--accent);margin-bottom:14px}
.owner-project-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.owner-project-card{display:grid;grid-template-columns:140px minmax(0,1fr);min-width:0;gap:18px;padding:15px;background:#202627;border:1px solid #434c48}
.owner-project-card h3{font-size:19px;font-weight:500;line-height:1.3;overflow-wrap:anywhere}
.owner-project-card p{font-size:13px;margin:8px 0 15px}
.owner-project-cover{display:grid;place-items:center;background:#15191b;min-height:110px;color:var(--muted);font-size:12px}
.owner-project-cover img{display:block;width:100%;height:100%;min-height:110px;aspect-ratio:4/3;object-fit:cover}
.owner-card-actions{display:flex;flex-wrap:wrap;gap:12px}.owner-card-actions a{font-size:12px;color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.owner-card-actions button{border:0;background:none;color:var(--muted);font-size:12px;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.owner-card-actions button:hover{color:var(--accent)}
.owner-empty{padding:20px;border:1px solid #434c48;color:var(--muted)}
.owner-image-row{grid-template-columns:140px 1fr;align-items:center}
.owner-image-row .owner-image-thumb{width:140px;height:90px;object-fit:cover;grid-row:1/3}
.owner-image-row label:first-of-type{grid-column:2}
.owner-image-row .owner-repeat-actions{grid-column:1/-1;flex-wrap:wrap;gap:7px;justify-content:flex-start}
.owner-image-row .owner-repeat-actions button{margin:0;font-size:12px}
.editor-validation{padding:14px 18px;border:1px solid #e9ae75;color:#f3d1ae;background:#3d2923;margin-bottom:20px;line-height:1.45}
.editor-validation[hidden]{display:none}
.editor-compose [aria-invalid="true"]{border-color:#e9ae75!important;outline:1px solid #e9ae75}
.owner-media-delete:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:700px){.owner-project-card{grid-template-columns:108px minmax(0,1fr);gap:12px}.owner-project-cover img{min-height:108px}.owner-image-row{grid-template-columns:1fr}.owner-image-row .owner-image-thumb{grid-row:auto}.owner-image-row label:first-of-type{grid-column:auto}}
