:root{--ink:#193b36;--green:#214e47;--muted:#65746d;--line:#dce3dc;--paper:#f7f8f3;--white:#fff;--soft:#e8eee3}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 'Segoe UI',Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #7c9c68;outline-offset:4px}input,textarea{width:100%;border:1px solid #cbd6ca;border-radius:6px;padding:13px 14px;background:#fff;color:var(--ink);margin-top:7px}input[type=file]{font-size:14px}textarea{resize:vertical}label{display:block;font-size:14px;font-weight:600}small{display:block;color:var(--muted);font-size:12px;font-weight:400;margin-top:6px}form label+label{margin-top:20px}h1,h2,p{margin:0}h1,h2{font-family:Georgia,serif;font-weight:400;letter-spacing:-.035em;line-height:1.1}h1{font-size:clamp(38px,4vw,62px)}h2{font-size:30px}.topbar{height:100px;max-width:1440px;padding:20px 5%;margin:auto;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;font-size:28px;letter-spacing:-1px;font-weight:600;line-height:1.1}.brand-icon{border:1px solid #92a698;width:47px;height:49px;display:grid;place-items:center;font:34px Georgia,serif}.brand small{font-size:9px;letter-spacing:1.3px;margin-top:8px}.topbar nav{display:flex;align-items:center;gap:24px;font-size:13px}.private-tag,.role{border:1px solid #cbd8c9;border-radius:30px;padding:7px 14px;font-size:12px}.text-button{background:none;border:0;color:var(--ink);padding:7px 0;font-size:13px;text-decoration:underline;text-underline-offset:4px}.primary{display:inline-flex;align-items:center;justify-content:center;gap:28px;background:var(--green);color:#fff;border:0;border-radius:6px;min-height:49px;padding:12px 22px;font-weight:600;font-size:14px;transition:background .18s}.primary:hover{background:#143c35}.primary span{font-size:20px}.eyebrow,.step{font-size:10px;letter-spacing:2px;font-weight:600;display:block;margin-bottom:20px}.entry{max-width:1280px;padding:75px 6%;margin:auto;display:grid;grid-template-columns:1.2fr 1fr;gap:90px;align-items:center;min-height:calc(100vh - 180px)}.entry-copy h1{font-size:clamp(40px,4.2vw,64px)}.entry-copy p{max-width:430px;color:var(--muted);margin-top:24px;font-size:16px}.entry-image{margin-top:50px;color:#7d967b;max-width:470px}.entry-image span{font-size:9px;letter-spacing:2px}.entry-image svg{width:100%;margin-top:15px}.login-card{background:#fff;padding:38px 36px;border:1px solid var(--line);border-radius:12px;box-shadow:0 15px 55px #213e3510}.login-card p{color:var(--muted);font-size:14px;margin:18px 0 26px;overflow-wrap:anywhere}.login-card .primary{width:100%;margin-top:26px;justify-content:space-between}.secondary-link{font-size:13px;text-decoration:underline;text-underline-offset:4px}.login-card>.secondary-link{display:block;text-align:center;margin-top:25px}.dashboard{max-width:1280px;padding:58px 5% 80px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:30px}.page-heading h1{font-size:48px}.page-heading p{color:var(--muted);margin-top:15px}.collection-bar{margin:42px 0 24px;border-top:1px solid var(--line);padding-top:24px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:13px}.collection-bar b{font-size:16px;margin-right:5px}.search{width:280px;font-weight:400}.search span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.search input{margin:0;padding:10px 14px;font-size:13px;background:transparent}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.project-card{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.project-card[hidden]{display:none}.cover{display:block;position:relative;background:#e4eadf;aspect-ratio:1.55;overflow:hidden}.cover img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.cover:hover img{transform:scale(1.035)}.cover-placeholder{height:100%;display:grid;place-items:center;font:64px Georgia,serif;color:#819b81;background:linear-gradient(135deg,#d9e3d3,#f4f6ef)}.project-badge{position:absolute;bottom:14px;left:16px;background:#fffE;padding:5px 9px;border-radius:3px;font-size:8px;letter-spacing:1px;font-weight:600}.card-body{padding:23px}.card-category{font-size:8px;letter-spacing:1.5px;color:var(--muted)}.card-body h2{font-size:29px;margin-top:12px}.card-body p{font-size:13px;color:var(--muted);margin-top:14px;min-height:42px;overflow-wrap:anywhere}.open-link{display:flex;align-items:center;justify-content:space-between;padding-top:22px;margin-top:23px;border-top:1px solid var(--line);font-size:13px;font-weight:600}.open-link span{font-size:20px}.admin-actions{display:flex;justify-content:flex-end;gap:20px;align-items:center;margin-top:16px;font-size:13px}.admin-actions>a{text-decoration:underline;text-underline-offset:4px}.settings{margin-top:46px;border-top:1px solid var(--line);padding-top:22px;font-size:14px}.settings summary{cursor:pointer}.settings form{max-width:400px;margin-top:24px}.settings p{font-size:13px;color:var(--muted);margin:12px 0 20px}.admin-entry{display:block;margin-top:38px;color:var(--muted)}.form-page{max-width:730px;margin:auto;padding:40px 30px 80px}.form-page>.secondary-link{display:inline-block;margin-bottom:35px}.form-page h1{font-size:46px}.form-page>p{color:var(--muted);margin:20px 0 30px}.editor{background:#fff;border:1px solid var(--line);padding:30px;border-radius:10px}.editor>.primary{margin-top:30px}.empty{padding:50px 25px;border:1px dashed #a7bba2;border-radius:8px}.empty p{color:var(--muted);margin-top:16px}.message{max-width:1140px;margin:20px auto 0;padding:14px 22px;border-radius:6px;font-size:14px}.error{background:#ffede7;border:1px solid #e6b6a4;color:#7f2c19}.success{background:#e7efdd;border:1px solid #abc396}footer{max-width:1280px;margin:auto;padding:22px 5%;border-top:1px solid var(--line);font-size:10px;letter-spacing:2px;display:flex;justify-content:space-between;color:var(--muted)}footer span{letter-spacing:0;font-size:12px}.viewer-bar{height:52px;padding:0 22px;display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--line);background:var(--paper);font-size:13px}.viewer-bar strong{font-weight:500}.viewer-bar>span{margin-left:auto;color:var(--muted)}.back{padding:8px 0}.viewer{position:absolute;top:52px;left:0;width:100%;height:calc(100dvh - 52px);border:0;background:#e5ebe1}@media(min-width:1100px){.project-grid:has(.project-card:only-child){grid-template-columns:repeat(2,minmax(0,1fr));max-width:850px}.project-card:only-child .cover{aspect-ratio:1.65}}@media(max-width:900px){.entry{gap:35px;padding-top:50px}.entry-copy h1{font-size:42px}.login-card{padding:30px 25px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-heading h1{font-size:40px}}@media(max-width:620px){.topbar{height:85px;padding:18px 22px}.brand{font-size:23px}.brand small{font-size:7px;letter-spacing:.7px}.brand-icon{width:36px;height:40px;font-size:29px}.private-tag{font-size:10px;padding:5px 9px}.topbar nav{gap:12px}.role{display:none}.entry{display:block;padding:40px 22px;min-height:0}.entry-copy h1{font-size:38px}.entry-copy p{font-size:14px}.entry-image{display:none}.login-card{margin-top:35px}.dashboard{padding:35px 22px 55px}.page-heading{display:block}.page-heading h1{font-size:37px}.page-heading p{font-size:14px}.page-heading>.primary{margin-top:25px}.collection-bar{margin-top:30px;gap:16px}.search{width:190px}.project-grid{grid-template-columns:1fr}.form-page{padding:30px 22px 55px}.editor{padding:22px}.form-page h1{font-size:38px}footer{margin:0 22px;padding:20px 0}footer span{max-width:170px;text-align:right;font-size:10px}.viewer-bar{padding:0 14px;gap:18px}.viewer-bar>span{display:none}.message{margin:15px 22px 0}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.viewer-bar .back{display:inline-flex;align-items:center;min-height:36px;padding:7px 13px;border:1px solid #b3c5b2;border-radius:5px;background:#fff;color:#214e47;font-weight:600;white-space:nowrap}.viewer-bar .back:hover{background:#e8eee3}@media(max-width:620px){.viewer-bar strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-bar{gap:12px}.viewer-bar .back{font-size:12px;padding:7px 10px}}

/* FRLV · blue technology palette */
:root{--ink:#edf4ff;--green:#1764e8;--muted:#a8b9d3;--line:#293b5e;--paper:#071124;--white:#0e1d36;--soft:#152a4c}
body{background:radial-gradient(ellipse at 95% 0,#0c2c63 0,transparent 52%),#071124;color:var(--ink)}
h1,h2{font-family:'Segoe UI',Arial,sans-serif;font-weight:600;letter-spacing:-.045em}
.topbar{border-color:#213557}.brand-icon{font-family:'Segoe UI',Arial,sans-serif;font-weight:600;color:#75bcff;border-color:#3c6aa5;background:#102342}.brand small{color:#9bb2d2}.private-tag,.role{border-color:#35527a;color:#bbd4fa;background:#10223e}.eyebrow,.step{color:#7db9ff}.primary{background:#1764e8;box-shadow:0 4px 18px #0759ec25}.primary:hover{background:#2877fc}.primary:focus-visible{outline-color:#8acbff}input,textarea{background:#09182d;border-color:#334e78;color:#f2f6ff}input::placeholder,textarea::placeholder{color:#92a9ca}input:focus,textarea:focus{border-color:#60a5ff}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline-color:#7bc1ff}.login-card,.editor{background:#0d1b34;border-color:#30486e}.project-card{background:#0d1c34;border-color:#293f62;box-shadow:0 8px 28px #0002}.project-badge{background:#0a1a33ee;color:#b5d8ff;border:1px solid #5073a1}.cover{background:#12294b}.cover-placeholder{color:#7ebaff;background:linear-gradient(135deg,#12366a,#0b1932)}.search input{background:#0b1a31;border-color:#30496c}.card-category{color:#7fb9fa}.open-link{color:#a4ceff}.admin-actions{color:#abcfff}.error{background:#361c27;border-color:#b35b6a;color:#ffd5d9}.success{background:#102d3b;border-color:#35728a;color:#c1ecff}.viewer-bar{background:#08172e;border-color:#2b4267}.viewer-bar .back{background:#113b79;border-color:#467fc4;color:#e5f2ff}.viewer-bar .back:hover{background:#1b519b}.empty{border-color:#416293}.settings{color:#c4d9fa}footer{color:#8da6c9}
.auth-page{min-height:100dvh;background:#020c23 url('assets/login-background.jpg') center center/cover fixed no-repeat;position:relative;isolation:isolate}
.auth-page:before{content:'';position:fixed;inset:0;z-index:-1;background:linear-gradient(180deg,#020b2040,#020b2066)}
.auth-page .entry{display:flex;justify-content:center;align-items:center;min-height:100dvh;max-width:none;padding:35px 22px;margin:0}
.auth-page .entry-copy,.auth-page>footer{display:none}
.auth-page .login-card{width:100%;max-width:425px;margin:0;padding:40px;border:1px solid #507bc077;border-radius:20px;background:linear-gradient(150deg,#0d2142e8,#06142bea);backdrop-filter:blur(18px);box-shadow:0 25px 90px #0008,0 0 50px #0969ed16}
.auth-page .login-card:before{content:'FRLV';display:block;color:#eef6ff;font-size:30px;font-weight:650;letter-spacing:-1px;margin-bottom:36px}
.auth-page .step{font-size:10px;letter-spacing:2.1px;color:#77baff;margin-bottom:12px}
.auth-page .login-card h2{font-size:29px;line-height:1.2;color:#f6f9ff}
.auth-page .login-card p{color:#abc0df;margin:15px 0 27px;font-size:14px;line-height:1.7}
.auth-page .login-card label{color:#dbe9ff;font-size:13px;font-weight:500}
.auth-page input{background:#03112a99;border-color:#3b5682;min-height:52px;border-radius:8px}
.auth-page .login-card .primary{background:linear-gradient(100deg,#1969f1,#0751d7);border:1px solid #3d8aff;min-height:52px;margin-top:25px;border-radius:8px;box-shadow:0 7px 24px #0053e12e}
.auth-page .login-card .primary:hover{background:#2b78f8}
.auth-page .secondary-link{color:#a8c9f5;font-size:12px;text-decoration:none}.auth-page .secondary-link:hover{text-decoration:underline}
.auth-page .message{position:fixed;left:50%;top:20px;transform:translateX(-50%);width:min(90%,540px);margin:0;z-index:5;box-shadow:0 8px 30px #0005}
@media(max-width:620px){.auth-page .entry{padding:24px 20px}.auth-page .login-card{padding:32px 26px;border-radius:16px}.auth-page .login-card:before{font-size:27px;margin-bottom:30px}.auth-page .login-card h2{font-size:26px}.page-heading h1{font-size:36px}}

/* Official FRLV brand asset */
.auth-page .login-card:before{content:none}.login-logo{display:block;width:154px;height:auto;margin:0 auto 36px}.frlv-brand{display:block;width:112px;height:auto}.brand-description{font-size:13px;letter-spacing:2px;font-weight:500;padding-left:19px;border-left:1px solid #375276;line-height:1.2}.brand-description small{font-size:8px;letter-spacing:1.3px}.viewer-logo{display:block;width:63px;height:auto}@media(max-width:620px){.login-logo{width:140px;margin-bottom:32px}.frlv-brand{width:82px}.brand-description{font-size:10px;padding-left:12px;letter-spacing:1px}.brand-description small{font-size:7px;letter-spacing:.5px}.brand{gap:12px}}

.project-preview{position:absolute;top:0;left:0;width:300%;height:300%;border:0;transform:scale(.333333);transform-origin:top left;pointer-events:none;background:#e5ebe1}.project-badge{pointer-events:none}
