
html.framio-portal{
  --v2-blue:#2563eb;
  --v2-blue-2:#60a5fa;
  --v2-cyan:#22d3ee;
  --v2-green:#22c55e;
  --v2-panel:color-mix(in srgb,var(--ui-surface) 94%,transparent);
  --v2-ink:#09111f;
}
html.framio-portal body{background:var(--bg);}
html.framio-portal .container{max-width:1180px;}
html.framio-portal section{position:relative;}
html.framio-portal nav{
  height:72px;
  padding:0 max(32px,calc((100vw - 1280px)/2));
  background:color-mix(in srgb,var(--nav-bg) 88%,transparent);
}
html.framio-portal .nav-links{gap:4px;}
html.framio-portal .nav-link{font-size:13px;padding:9px 12px;}
html.framio-portal .nav-link[data-current]{color:var(--t1);background:var(--ui-hover);}
html.framio-portal .nav-demo{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:38px;padding:0 16px;border:1px solid var(--border2);border-radius:8px;
  color:var(--t1);background:var(--ui-surface);font-size:13px;font-weight:700;text-decoration:none;
  transition:border-color .2s,background .2s,transform .2s;
}
html.framio-portal .nav-demo:hover{border-color:var(--ui-link);background:var(--ui-hover);transform:translateY(-1px);}
html.framio-portal .nav-btn{min-height:38px;display:inline-flex;align-items:center;padding:0 17px;}
html.framio-portal .mobile-nav-demo{background:var(--ui-surface);color:var(--ui-link);border:1px solid var(--border2);}
html.framio-portal .hero{
  min-height:760px;
  overflow:hidden;
  border-bottom:1px solid var(--border);
}
html.framio-portal .hero::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(90deg,color-mix(in srgb,var(--bg) 35%,transparent) 1px,transparent 1px) 0 0/64px 64px,
    linear-gradient(color-mix(in srgb,var(--bg) 35%,transparent) 1px,transparent 1px) 0 0/64px 64px;
  opacity:.42;
}
html.framio-portal .hero-bg video{opacity:.62;filter:saturate(.84) contrast(1.04) brightness(.78);}
html.framio-portal .hero-bg::after{
  background:linear-gradient(95deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 88%,transparent) 38%,color-mix(in srgb,var(--bg) 42%,transparent) 72%,color-mix(in srgb,var(--bg) 72%,transparent) 100%);
}
[data-theme=light] html.framio-portal .hero-bg::after,
html.framio-portal[data-theme=light] .hero-bg::after{
  background:linear-gradient(95deg,rgba(238,242,250,.97) 0%,rgba(238,242,250,.88) 40%,rgba(238,242,250,.48) 70%,rgba(238,242,250,.78) 100%);
}
html.framio-portal .hero-wrap{
  position:relative;z-index:2;min-height:760px;
  max-width:1380px;padding:132px 48px 76px;
  grid-template-columns:minmax(420px,.86fr) minmax(500px,1.14fr);gap:36px;align-items:center;
}
html.framio-portal .hero-content{max-width:620px;}
html.framio-portal .hero-kicker{
  display:flex;align-items:center;gap:10px;margin-bottom:22px;
  font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--t2);
}
html.framio-portal .hero-kicker span{width:28px;height:2px;background:var(--ui-link);box-shadow:9px 0 0 color-mix(in srgb,var(--ui-link) 38%,transparent);}
html.framio-portal .hero h1{font-size:clamp(52px,5.4vw,78px);line-height:.98;letter-spacing:-.055em;margin-bottom:28px;}
html.framio-portal .hero h1 em{color:var(--ui-link);-webkit-text-fill-color:var(--ui-link);}
html.framio-portal .hero-messages{max-width:590px;min-height:92px;margin-bottom:24px;}
html.framio-portal .hero-sub{font-size:clamp(17px,1.55vw,21px);line-height:1.55;color:var(--t2);}
html.framio-portal .hero-actions{gap:10px;}
html.framio-portal .btn-primary,html.framio-portal .btn-secondary{
  min-height:50px;padding:0 20px;border-radius:9px;font-size:14px;font-weight:700;
}
html.framio-portal .hero-note{margin-top:14px;font-size:12px;color:var(--t3);}
html.framio-portal .hero-stats{margin-top:34px;padding-top:22px;border-top-color:var(--border2);}
html.framio-portal .stat-val{font-size:21px;}
html.framio-portal .stat-lbl{max-width:150px;}
html.framio-portal .hero-cad{
  position:relative;min-height:480px;padding:54px 28px 48px;
  border:1px solid color-mix(in srgb,var(--border2) 75%,transparent);border-radius:18px;
  background:linear-gradient(145deg,color-mix(in srgb,var(--ui-surface) 82%,transparent),color-mix(in srgb,var(--bg) 74%,transparent));
  box-shadow:0 28px 70px rgba(5,15,35,.20),inset 0 1px 0 rgba(255,255,255,.08);
  overflow:hidden;
}
html.framio-portal .hero-cad::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,var(--border) 1px,transparent 1px) 0 0/32px 32px,linear-gradient(var(--border) 1px,transparent 1px) 0 0/32px 32px;
  opacity:.35;
}
html.framio-portal .hero-cad-head{position:absolute;z-index:2;top:18px;left:22px;right:22px;display:flex;justify-content:space-between;gap:16px;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--t3);}
html.framio-portal .hero-cad-head strong{color:var(--t1);font-weight:600;}
html.framio-portal .hero-cad svg{position:relative;z-index:1;filter:drop-shadow(0 14px 24px rgba(15,45,90,.18));}
html.framio-portal .hero-cad :is(.fp-deck,.fp-ref,.fp-sig,.fp-aux,.fp-beam,.fp-col,.fp-lbl,.fp-pan,.fp-fpost,.fp-frail,.fp-stair,.fp-spost,.fp-srail,.fp-dim){opacity:0;transform-box:fill-box;transform-origin:center;will-change:opacity,transform;}
html.framio-portal .hero-progress{
  position:absolute;left:22px;right:22px;bottom:18px;z-index:2;
  display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;
  font-family:var(--mono);font-size:10px;color:var(--t3);
}
html.framio-portal .hero-progress span{position:relative;height:2px;background:color-mix(in srgb,var(--ui-link) 18%,transparent);overflow:hidden;}
html.framio-portal .hero-progress span::after{content:"";position:absolute;inset:0;background:var(--ui-link);transform-origin:left;transform:scaleX(0);}
html.framio-portal .hero-progress i{font-style:normal;color:var(--v2-green);}
html.framio-portal .hero-progress b{padding:5px 7px;border:1px solid var(--border2);border-radius:5px;color:var(--t1);}
html.framio-portal .proof-rail{padding:0 32px;background:var(--bg2);border-bottom:1px solid var(--border);}
html.framio-portal .proof-rail-inner{max-width:1180px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);}
html.framio-portal .proof-rail-inner>div{min-height:116px;padding:25px 28px;border-left:1px solid var(--border);display:flex;flex-direction:column;justify-content:center;gap:6px;}
html.framio-portal .proof-rail-inner>div:last-child{border-right:1px solid var(--border);}
html.framio-portal .proof-rail strong{font-size:15px;color:var(--t1);}
html.framio-portal .proof-rail span{font-size:12px;line-height:1.5;color:var(--t3);}
html.framio-portal .section-label{font-family:var(--mono);font-size:10px;letter-spacing:.14em;}
html.framio-portal .section-title{max-width:780px;font-size:clamp(34px,4vw,54px);line-height:1.08;letter-spacing:-.045em;}
html.framio-portal .section-sub{max-width:690px;font-size:17px;line-height:1.72;}
html.framio-portal .features-bg{background:var(--bg);}
html.framio-portal :is(.features-structure,.journey-structure,.products-structure,.pricing-compare){
  --structure-main:#92400e;--structure-aux:#1e40af;--structure-column:#b45309;--structure-outline:rgba(10,16,28,.4);
  --structure-main-line:3px;--structure-aux-line:2px;--structure-main-half:1.5px;--structure-aux-half:1px;
}
html.framio-portal[data-theme=dark] :is(.features-structure,.journey-structure,.products-structure,.pricing-compare),
[data-theme=dark] html.framio-portal :is(.features-structure,.journey-structure,.products-structure,.pricing-compare){
  --structure-main:#b45309;--structure-aux:#60a5fa;--structure-column:#d97706;--structure-outline:rgba(237,244,252,.28);
}
html.framio-portal .features-header{display:block;margin-bottom:50px;}
html.framio-portal .features-header .section-title{max-width:820px;}
html.framio-portal .features-header .section-sub{position:relative;max-width:760px;margin:24px 0 0;padding-left:22px;}
html.framio-portal .features-header .section-sub::before{content:"";position:absolute;left:0;top:.34em;bottom:.34em;width:2px;background:var(--ui-link);border-radius:2px;}
html.framio-portal .features-structure{position:relative;padding-top:48px;margin:0 20px;}
html.framio-portal .features-axis-row{position:absolute;left:var(--structure-aux-half);right:var(--structure-aux-half);top:27px;display:flex;justify-content:space-between;font-family:var(--mono);font-size:9px;color:var(--structure-aux);}
html.framio-portal .features-levels{position:absolute;left:-23px;top:48px;bottom:0;display:flex;flex-direction:column;justify-content:space-between;font-family:var(--mono);font-size:9px;color:var(--structure-aux);}
html.framio-portal .features-levels span:nth-child(4){display:none;}
html.framio-portal .features-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-block:var(--structure-main-line) solid var(--structure-main);border-inline:var(--structure-aux-line) solid var(--structure-aux);position:relative;background:color-mix(in srgb,var(--ui-surface) 72%,transparent);}
html.framio-portal .feat-card{
  position:relative;min-height:360px;padding:34px 30px 28px;border:0;border-right:var(--structure-aux-line) solid var(--structure-aux);border-bottom:var(--structure-main-line) solid var(--structure-main);border-radius:0;
  display:flex;flex-direction:column;background:transparent;overflow:visible;
}
html.framio-portal .feat-card:nth-child(3n){border-right:0;}
html.framio-portal .feat-card:nth-child(n+4){border-bottom:0;}
html.framio-portal .feat-card::before{display:none;}
html.framio-portal .feat-card,html.framio-portal .journey-step,html.framio-portal .prod-card,html.framio-portal .demo-stage,html.framio-portal .demo3d-visual{opacity:0;transform:translateY(18px);transition:opacity .6s var(--ui-ease),transform .6s var(--ui-ease),border-color .2s;}
html.framio-portal :is(.feat-card,.journey-step,.prod-card,.demo-stage,.demo3d-visual).is-visible{opacity:1;transform:translateY(0);}
html.framio-portal .feat-card::after{display:none;}
html.framio-portal .feat-card:hover{background:color-mix(in srgb,var(--ui-link) 4%,transparent);}
html.framio-portal .feat-icon{margin-bottom:28px;}
html.framio-portal .feat-index{position:absolute;right:24px;top:24px;font-family:var(--mono);font-size:11px;color:var(--t3);}
html.framio-portal .feat-title{font-size:23px;line-height:1.22;margin-bottom:14px;letter-spacing:-.025em;}
html.framio-portal .feat-text{font-size:15px;line-height:1.7;}
html.framio-portal .feat-result{margin-top:auto;padding-top:22px;border-top:1px solid var(--border);font-family:var(--mono);font-size:10px;line-height:1.5;color:var(--ui-link);text-transform:uppercase;letter-spacing:.05em;}
html.framio-portal .feat-card.feat-compact{min-height:0;padding:24px 26px;display:grid;grid-template-columns:40px 1fr;column-gap:16px;align-items:center;background:transparent;}
html.framio-portal .feat-card.feat-compact .feat-icon{grid-row:1/3;margin:0;}
html.framio-portal .feat-card.feat-compact .feat-title{font-size:15px;margin:0 0 3px;}
html.framio-portal .feat-card.feat-compact .feat-text{font-size:13px;line-height:1.5;}
html.framio-portal .features-nodes{position:absolute;z-index:5;inset:0;pointer-events:none;}
html.framio-portal .features-nodes i{position:absolute;width:11px;height:11px;border:1px solid var(--structure-outline);background:var(--structure-column);box-shadow:0 0 0 1px color-mix(in srgb,var(--structure-column) 30%,transparent);transform:translate(-50%,-50%);}
html.framio-portal .features-nodes .feature-node-top{top:calc(-1 * var(--structure-main-half))}
html.framio-portal .features-nodes .feature-node-mid1{top:calc(360px - var(--structure-main-half))}
html.framio-portal .features-nodes .feature-node-mid2{display:none;}
html.framio-portal .features-nodes .feature-node-bottom{bottom:calc(-1 * var(--structure-main-half));transform:translate(-50%,50%)}
html.framio-portal .features-nodes .feature-node-a{left:calc(-1 * var(--structure-aux-half))}
html.framio-portal .features-nodes .feature-node-b{left:33.333%}
html.framio-portal .features-nodes .feature-node-c{left:66.667%}
html.framio-portal .features-nodes .feature-node-d{left:calc(100% + var(--structure-aux-half))}
html.framio-portal #how{background:var(--bg2);border-block:1px solid var(--border);}
html.framio-portal .journey-head{display:grid;grid-template-columns:1fr .72fr;gap:60px;align-items:end;margin-bottom:48px;}
html.framio-portal .journey-head .section-sub{margin:0;}
html.framio-portal .journey-structure{position:relative;padding:48px 0 32px;margin:0 20px;}
html.framio-portal .journey-axis-row{position:absolute;left:var(--structure-aux-half);right:var(--structure-aux-half);top:27px;display:flex;justify-content:space-between;font-family:var(--mono);font-size:9px;color:var(--structure-aux);}
html.framio-portal .journey-levels{position:absolute;left:-23px;top:48px;bottom:32px;display:flex;flex-direction:column;justify-content:space-between;font-family:var(--mono);font-size:9px;color:var(--structure-aux);}
html.framio-portal .journey-levels span:nth-child(3){display:none;}
html.framio-portal .journey-grid{position:relative;display:grid;grid-template-columns:repeat(4,1fr);border-block:var(--structure-main-line) solid var(--structure-main);border-inline:var(--structure-aux-line) solid var(--structure-aux);background:linear-gradient(90deg,color-mix(in srgb,var(--structure-aux) 4%,transparent) 1px,transparent 1px),linear-gradient(color-mix(in srgb,var(--structure-aux) 4%,transparent) 1px,transparent 1px);background-size:24px 24px;}
html.framio-portal .journey-step{position:relative;min-height:410px;padding:25px 24px 27px;border-right:var(--structure-aux-line) solid var(--structure-aux);background:color-mix(in srgb,var(--ui-surface) 82%,transparent);}
html.framio-portal .journey-step:last-of-type{border-right:0;}
html.framio-portal .journey-step::after{content:attr(data-product);position:absolute;right:18px;top:20px;font-family:var(--mono);font-size:9px;letter-spacing:.12em;color:var(--ui-link);}
html.framio-portal .journey-num{font-family:var(--mono);font-size:11px;color:var(--t3);}
html.framio-portal .journey-visual{height:150px;margin:30px 0 24px;border:1px solid var(--border2);border-radius:0;background:color-mix(in srgb,var(--bg) 75%,transparent);position:relative;overflow:hidden;}
html.framio-portal .journey-step h3{font-size:19px;margin-bottom:10px;letter-spacing:-.02em;}
html.framio-portal .journey-step p{font-size:13px;line-height:1.65;color:var(--t2);}
html.framio-portal .journey-product-shot{background:#eaf1f8;}
html.framio-portal .journey-product-shot img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .65s var(--ui-ease);}
html.framio-portal .journey-step:hover .journey-product-shot img{transform:scale(1.035);}
html.framio-portal .journey-sketch-shot img{object-position:50% 45%;}
html.framio-portal .journey-3d-shot img{object-position:0 50%;transform:scale(1.68);transform-origin:left center;}
html.framio-portal .journey-step:hover .journey-3d-shot img{transform:scale(1.74);}
html.framio-portal .journey-shot-label{position:absolute;left:10px;bottom:10px;padding:6px 8px;border:1px solid rgba(255,255,255,.42);border-radius:6px;background:rgba(5,18,40,.78);color:#f7faff;font-family:var(--mono);font-size:8px;letter-spacing:.04em;backdrop-filter:blur(8px);}
html.framio-portal .journey-report{padding:10px 13px;background:var(--ui-surface);font-family:var(--mono);}
html.framio-portal .journey-report-head{display:flex;justify-content:space-between;gap:10px;align-items:center;padding-bottom:8px;border-bottom:1px solid var(--border2);font-size:9px;color:var(--t1);}
html.framio-portal .journey-report-head b{font-size:7px;font-weight:600;color:var(--ui-link);letter-spacing:.05em;}
html.framio-portal .journey-report-row{display:grid;grid-template-columns:1.3fr .9fr .7fr;gap:6px;padding:7px 0 5px;border-bottom:1px solid var(--border);font-size:7px;color:var(--t2);}
html.framio-portal .journey-report-row span:last-child{text-align:right;}
html.framio-portal .journey-report-caption{padding:6px 0 4px;font-size:6px;text-transform:uppercase;letter-spacing:.07em;color:var(--t3);}
html.framio-portal .journey-report-total{display:flex;justify-content:space-between;align-items:center;padding-top:9px;font-size:7px;color:var(--t3);}
html.framio-portal .journey-report-total strong{font-size:11px;color:var(--ui-link);}
html.framio-portal .journey-drawing{background:var(--ui-surface);font-family:var(--mono);}
html.framio-portal .journey-nodes{position:absolute;z-index:5;inset:0;pointer-events:none;}
html.framio-portal .journey-nodes i{position:absolute;width:11px;height:11px;border:1px solid var(--structure-outline);background:var(--structure-column);box-shadow:0 0 0 1px color-mix(in srgb,var(--structure-column) 30%,transparent);transform:translate(-50%,-50%);}
html.framio-portal .journey-nodes .node-top{top:calc(-1 * var(--structure-main-half))}
html.framio-portal .journey-nodes .node-bottom{bottom:calc(-1 * var(--structure-main-half));transform:translate(-50%,50%)}
html.framio-portal .journey-nodes .node-mid{display:none;top:calc(50% - var(--structure-main-half));}
html.framio-portal .journey-nodes .node-a{left:calc(-1 * var(--structure-aux-half))}.journey-nodes .node-b{left:25%}.journey-nodes .node-c{left:50%}.journey-nodes .node-d{left:75%}.journey-nodes .node-e{left:calc(100% + var(--structure-aux-half))}
html.framio-portal .journey-dimensions{position:absolute;left:0;right:0;bottom:3px;display:grid;grid-template-columns:repeat(4,1fr);font-family:var(--mono);font-size:7px;letter-spacing:.1em;color:var(--t3);text-align:center;}
html.framio-portal .journey-dimensions span{position:relative;}
html.framio-portal .journey-dimensions span::before{content:"";position:absolute;left:6px;right:6px;top:-7px;height:1px;background:var(--border2);}
html.framio-portal .preview-section{background:var(--bg);overflow:hidden;}
html.framio-portal .demo-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:64px;align-items:center;}
html.framio-portal .demo-copy .section-title{font-size:clamp(34px,3.5vw,50px);margin-bottom:20px;}
html.framio-portal .demo-facts{margin:30px 0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border);}
html.framio-portal .demo-facts div{padding:16px 8px 14px 0;border-bottom:1px solid var(--border);}
html.framio-portal .demo-facts dt{font-size:11px;color:var(--t3);margin-bottom:5px;}
html.framio-portal .demo-facts dd{font-family:var(--mono);font-size:13px;color:var(--t1);}
html.framio-portal .demo-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
html.framio-portal .text-link{font-size:13px;font-weight:700;color:var(--ui-link);text-decoration:none;}
html.framio-portal .demo-stage{position:relative;padding:34px 0;}
html.framio-portal .browser-frame{border-radius:14px;border:1px solid var(--border2);box-shadow:0 32px 70px rgba(5,15,35,.22);transform:perspective(1200px) rotateY(calc(-3deg + var(--demo-ry,0deg))) rotateX(calc(1deg + var(--demo-rx,0deg)));transition:transform .5s var(--ui-ease);}
html.framio-portal .demo-output{position:absolute;z-index:4;min-width:190px;padding:13px 16px;border:1px solid var(--border2);border-radius:10px;background:color-mix(in srgb,var(--ui-surface) 94%,transparent);box-shadow:var(--ui-shadow);backdrop-filter:blur(16px);display:flex;flex-direction:column;gap:4px;}
html.framio-portal .demo-output span{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--t3);}
html.framio-portal .demo-output strong{font-size:12px;color:var(--t1);}
html.framio-portal .demo-output-top{right:-22px;top:-52px;}
html.framio-portal .demo-output-bottom{left:-28px;bottom:2px;}
html.framio-portal .demo-output-bottom strong{color:var(--v2-green);}
html.framio-portal .products-bg{background:var(--bg2);border-block:1px solid var(--border);}
html.framio-portal .products-structure{position:relative;padding-top:48px;margin:44px 20px 0;}
html.framio-portal .products-axis-row{position:absolute;left:var(--structure-aux-half);right:var(--structure-aux-half);top:27px;display:flex;justify-content:space-between;font-family:var(--mono);font-size:9px;color:var(--structure-aux);}
html.framio-portal .products-levels{position:absolute;left:-23px;top:48px;bottom:0;display:flex;flex-direction:column;justify-content:space-between;font-family:var(--mono);font-size:9px;color:var(--structure-aux);}
html.framio-portal .products-levels span:nth-child(3){display:none;}
html.framio-portal .products-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0;border-block:var(--structure-main-line) solid var(--structure-main);border-inline:var(--structure-aux-line) solid var(--structure-aux);border-radius:0;overflow:visible;position:relative;background:color-mix(in srgb,var(--ui-surface) 72%,transparent);}
html.framio-portal .prod-card{position:relative;min-height:310px;padding:28px 24px;border:0;border-right:var(--structure-aux-line) solid var(--structure-aux);border-radius:0;background:transparent;}
html.framio-portal .prod-card::before{display:none;}
html.framio-portal .prod-card:nth-child(4){border-right:0;}
html.framio-portal .prod-code{font-family:var(--mono);font-size:9px;color:var(--t3);letter-spacing:.1em;margin-bottom:44px;}
html.framio-portal .prod-name{font-size:20px;letter-spacing:-.025em;}
html.framio-portal .prod-tag{font-size:9px;}
html.framio-portal .products-nodes{position:absolute;z-index:5;inset:0;pointer-events:none;}
html.framio-portal .products-nodes i{position:absolute;width:11px;height:11px;border:1px solid var(--structure-outline);background:var(--structure-column);box-shadow:0 0 0 1px color-mix(in srgb,var(--structure-column) 30%,transparent);transform:translate(-50%,-50%);}
html.framio-portal .products-nodes .product-node-top{top:calc(-1 * var(--structure-main-half))}
html.framio-portal .products-nodes .product-node-mid{display:none;top:calc(310px - var(--structure-main-half))}
html.framio-portal .products-nodes .product-node-bottom{bottom:calc(-1 * var(--structure-main-half));transform:translate(-50%,50%)}
html.framio-portal .products-nodes .product-node-a{left:calc(-1 * var(--structure-aux-half))}
html.framio-portal .products-nodes .product-node-b{left:25%}
html.framio-portal .products-nodes .product-node-c{left:50%}
html.framio-portal .products-nodes .product-node-d{left:75%}
html.framio-portal .products-nodes .product-node-e{left:calc(100% + var(--structure-aux-half))}
html.framio-portal .product-future{margin:24px 20px 0;padding:20px 24px;border-left:3px solid var(--ui-link);display:grid;grid-template-columns:120px 190px 1fr;gap:20px;align-items:center;background:color-mix(in srgb,var(--ui-link) 4%,transparent);}
html.framio-portal .product-future .prod-name,html.framio-portal .product-future .prod-desc,html.framio-portal .product-future .prod-tag{margin:0;}
html.framio-portal :is(.features-bg,#how,.preview-section,.products-bg){background-image:linear-gradient(90deg,color-mix(in srgb,var(--ui-link) 3.5%,transparent) 1px,transparent 1px),linear-gradient(color-mix(in srgb,var(--ui-link) 3.5%,transparent) 1px,transparent 1px);background-size:72px 72px;}
html.framio-portal .pricing-section{background:var(--bg);}
html.framio-portal .grid-explainer{max-width:1008px;margin:28px 0 0;padding:14px 16px;border:1px solid var(--border);border-radius:10px;display:flex;align-items:center;gap:16px;background:var(--ui-surface);}
html.framio-portal .grid-explainer p{font-size:13px;line-height:1.55;color:var(--t2);}
html.framio-portal .grid-explainer strong{color:var(--t1);}
html.framio-portal .grid-visual{width:58px;height:42px;display:grid;grid-template-columns:1fr 1fr;flex:none;border:1px solid var(--ui-link);}
html.framio-portal .grid-visual span{border:1px solid color-mix(in srgb,var(--ui-link) 45%,transparent);background:color-mix(in srgb,var(--ui-link) 8%,transparent);}
html.framio-portal .pricing-calculator{max-width:1008px;margin-top:38px;padding:0;border:1px solid var(--border2);border-radius:16px;overflow:hidden;background:var(--ui-surface);}
html.framio-portal .calculator-head{height:54px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);font-size:13px;font-weight:700;}
html.framio-portal .calculator-head b{font-family:var(--mono);font-size:10px;color:var(--t3);font-weight:500;}
html.framio-portal #pricingCalculator{padding:24px 24px 0;}
html.framio-portal .pricing-control label{min-height:0;font-size:13px;color:var(--t2);}
html.framio-portal .pricing-inputs input:not(.pricing-range){height:48px;background:var(--field-bg);}
html.framio-portal .pricing-live-hint{display:none;}
html.framio-portal .recommendation-shell{margin:22px 24px 0;padding:22px;border-radius:12px;background:linear-gradient(135deg,color-mix(in srgb,var(--ui-link) 12%,var(--ui-surface)),var(--ui-surface));border:1px solid color-mix(in srgb,var(--ui-link) 38%,var(--border));display:grid;grid-template-columns:1fr auto;column-gap:24px;align-items:end;}
html.framio-portal .recommendation-label{grid-column:1/-1;font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ui-link);margin-bottom:7px;}
html.framio-portal .pricing-result{margin:0;font-size:14px;}
html.framio-portal .pricing-result strong{font-size:20px;line-height:1.35;letter-spacing:-.02em;}
html.framio-portal .pricing-result p{font-family:var(--mono);font-size:11px;color:var(--t2);}
html.framio-portal .pricing-result span{font-size:12px;color:var(--t3);}
html.framio-portal .recommendation-cta{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border-radius:8px;background:var(--ui-link);color:#fff;font-size:13px;font-weight:700;text-decoration:none;}
html.framio-portal .pricing-calc-note{padding:18px 24px 22px;margin:0!important;}
html.framio-portal .pricing-compare{max-width:1008px;margin:16px auto 0;}
html.framio-portal .pricing-compare summary{list-style:none;min-height:48px;padding:0 18px;border:1px solid var(--border2);border-radius:10px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-size:13px;font-weight:700;color:var(--t1);background:var(--ui-surface);}
html.framio-portal .pricing-compare summary::-webkit-details-marker{display:none;}
html.framio-portal .pricing-compare[open] summary{border-radius:10px 10px 0 0;}
html.framio-portal .pricing-compare[open] summary span{transform:rotate(180deg);}
html.framio-portal .pricing-grid{margin-top:0;border:1px solid var(--border2);border-top:0;border-radius:0 0 12px 12px;overflow:hidden;gap:0;}
html.framio-portal .pricing-card{border:0;border-right:1px solid var(--border);border-radius:0;}
html.framio-portal .pricing-card:last-child{border-right:0;}
html.framio-portal .pricing-fineprint{max-width:1008px;margin:16px auto 0;font-size:11px;line-height:1.6;color:var(--t3);}
html.framio-portal .pricing-compare summary,
html.framio-portal .pricing-compare[open] summary{border:0;border-bottom:1px solid var(--border2);border-radius:0;background:transparent;padding:14px 0;}
html.framio-portal .pricing-compare summary:hover{color:var(--ui-link);}
html.framio-portal .pricing-grid{position:relative;counter-reset:tariff;gap:0;border-block:var(--structure-main-line) solid var(--structure-main);border-inline:var(--structure-aux-line) solid var(--structure-aux);border-radius:0;overflow:visible;margin-top:20px;}
html.framio-portal .pricing-grid .pricing-card{counter-increment:tariff;position:relative;border:0;border-right:var(--structure-aux-line) solid var(--structure-aux);border-radius:0;padding:22px 18px 20px;background:var(--ui-surface);box-shadow:none;}
html.framio-portal .pricing-grid .pricing-card:last-child{border-right:0;}
html.framio-portal .tariff-nodes{position:absolute;inset:0;pointer-events:none;z-index:3;}
html.framio-portal .tariff-nodes i{position:absolute;width:10px;height:10px;background:var(--structure-column);border:1px solid var(--structure-outline);}
html.framio-portal .tariff-nodes i:nth-child(odd){left:-1px;}
html.framio-portal .tariff-nodes i:nth-child(even){right:-1px;}
html.framio-portal .tariff-nodes i:nth-child(1){top:-1.5px;transform:translate(-50%,-50%);}
html.framio-portal .tariff-nodes i:nth-child(2){top:-1.5px;transform:translate(50%,-50%);}
html.framio-portal .tariff-nodes i:nth-child(3){bottom:-1.5px;transform:translate(-50%,50%);}
html.framio-portal .tariff-nodes i:nth-child(4){bottom:-1.5px;transform:translate(50%,50%);}
html.framio-portal .pricing-name{display:flex;justify-content:space-between;gap:8px;font-size:16px;margin-bottom:18px;}
html.framio-portal .pricing-name::after{content:"0" counter(tariff);font-family:var(--mono);font-size:10px;font-weight:400;color:var(--t3);}
html.framio-portal .pricing-price{font-size:26px;letter-spacing:-.04em;white-space:nowrap;}
html.framio-portal .pricing-price-sub{font-size:10px;min-height:30px;margin-bottom:0;}
html.framio-portal .pricing-match{min-height:36px;margin:14px 0 8px;font-size:11px;}
html.framio-portal .pricing-divider{margin:0;height:1px;}
html.framio-portal .pricing-features{gap:0;margin:0 0 18px;}
html.framio-portal .pricing-features li{min-height:42px;padding:10px 0;font-size:12px;}
html.framio-portal .pricing-features li:last-child{min-height:60px;}
html.framio-portal .pricing-features li strong{font-size:12px;}
html.framio-portal .pricing-grid .pricing-card.pricing-recommended{background:color-mix(in srgb,var(--ui-link) 7%,var(--ui-surface));box-shadow:none;}
html.framio-portal .pricing-cta{margin-top:auto;min-height:44px;display:flex;align-items:center;justify-content:center;padding:10px 12px;}
@media(min-width:701px) and (max-width:1000px){
 html.framio-portal .pricing-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
 html.framio-portal .pricing-grid .pricing-card:nth-child(2){border-right:0;}
 html.framio-portal .pricing-grid .pricing-card:nth-child(-n+2){border-bottom:var(--structure-main-line) solid var(--structure-main);}
}
@media(max-width:700px){
 html.framio-portal .pricing-grid .pricing-card{border-right:0;border-bottom:var(--structure-main-line) solid var(--structure-main);padding:20px;}
 html.framio-portal .pricing-grid .pricing-card:last-child{border-bottom:0;}
 html.framio-portal .pricing-price-sub,html.framio-portal .pricing-match{min-height:0;}
 html.framio-portal .pricing-features li:last-child{min-height:42px;}
}
html.framio-portal .auth-section{background:var(--bg2);border-top:1px solid var(--border);}
html.framio-portal .auth-card{border-radius:14px;box-shadow:0 24px 60px rgba(5,15,35,.16);}
html.framio-portal .faq-list{border-top:1px solid var(--border);}
html.framio-portal .faq-item{border-bottom:1px solid var(--border);border-radius:0;background:transparent;}
html.framio-portal .faq-item summary{padding-inline:0;}
html.framio-portal .about-section{background:var(--bg2);border-top:1px solid var(--border);}
@media(max-width:1180px){
  html.framio-portal nav{padding:0 24px;}
  html.framio-portal .nav-links .nav-link{display:none;}
  html.framio-portal .burger-btn{display:flex;}
}
@media(max-width:1000px){
  html.framio-portal .hero-wrap{grid-template-columns:1fr 1fr;padding:116px 28px 64px;}
  html.framio-portal .hero-cad{min-height:390px;padding-inline:16px;}
  html.framio-portal .proof-rail-inner{grid-template-columns:repeat(2,1fr);}
  html.framio-portal .proof-rail-inner>div:nth-child(2){border-right:1px solid var(--border);}
  html.framio-portal .proof-rail-inner>div:nth-child(n+3){border-top:1px solid var(--border);}
  html.framio-portal .journey-head{grid-template-columns:1fr;gap:20px;}
  html.framio-portal .features-grid{grid-template-columns:repeat(2,1fr);}
  html.framio-portal .features-grid .feat-card{border-right:0;border-bottom:0;}
  html.framio-portal .features-grid .feat-card:nth-child(odd){border-right:var(--structure-aux-line) solid var(--structure-aux);}
  html.framio-portal .features-grid .feat-card:nth-child(-n+4){border-bottom:var(--structure-main-line) solid var(--structure-main);}
  html.framio-portal .features-axis-row span:nth-child(4){display:none;}
  html.framio-portal .features-levels span:nth-child(4){display:block;}
  html.framio-portal .features-nodes .feature-node-b{display:none;}
  html.framio-portal .features-nodes .feature-node-c{left:50%;}
  html.framio-portal .features-nodes .feature-node-d{left:calc(100% + var(--structure-aux-half));}
  html.framio-portal .features-nodes .feature-node-mid1{top:calc(360px - var(--structure-main-half));}
  html.framio-portal .features-nodes .feature-node-mid2{display:block;top:calc(720px - var(--structure-main-half));}
  html.framio-portal .journey-grid{grid-template-columns:repeat(2,1fr);}
  html.framio-portal .journey-step:nth-child(2){border-right:0;}
  html.framio-portal .journey-step:nth-child(-n+2){border-bottom:var(--structure-main-line) solid var(--structure-main);}
  html.framio-portal .journey-axis-row span:nth-child(n+4){display:none;}
  html.framio-portal .journey-axis-row{right:0;}
  html.framio-portal .journey-levels span:nth-child(3){display:block;}
  html.framio-portal .journey-nodes .node-b,html.framio-portal .journey-nodes .node-d{display:none;}
  html.framio-portal .journey-nodes .node-c{left:50%;}
  html.framio-portal .journey-nodes .node-e{left:calc(100% + var(--structure-aux-half));}
  html.framio-portal .journey-nodes .node-mid{display:block;}
  html.framio-portal .journey-dimensions{grid-template-columns:repeat(2,1fr);}
  html.framio-portal .journey-dimensions span:nth-child(n+3){display:none;}
  html.framio-portal .demo-grid{grid-template-columns:1fr;gap:28px;}
  html.framio-portal .products-grid{grid-template-columns:repeat(2,1fr);}
  html.framio-portal .prod-card{border-right:var(--structure-aux-line) solid var(--structure-aux);}
  html.framio-portal .prod-card:nth-child(2),html.framio-portal .prod-card:nth-child(4){border-right:0;}
  html.framio-portal .prod-card:nth-child(-n+2){border-bottom:var(--structure-main-line) solid var(--structure-main);}
  html.framio-portal .products-axis-row span:nth-child(n+4){display:none;}
  html.framio-portal .products-levels span:nth-child(3){display:block;}
  html.framio-portal .products-nodes .product-node-b,html.framio-portal .products-nodes .product-node-d{display:none;}
  html.framio-portal .products-nodes .product-node-c{left:50%;}
  html.framio-portal .products-nodes .product-node-e{left:calc(100% + var(--structure-aux-half));}
  html.framio-portal .products-nodes .product-node-mid{display:block;}
}
@media(max-width:700px){
  html.framio-portal nav{height:64px;padding:0 16px;}
  html.framio-portal .nav-logo svg{width:30px;}
  html.framio-portal .nav-logo-text{font-size:14px;}
  html.framio-portal .nav-demo{display:none;}
  html.framio-portal .hero{min-height:0;}
  html.framio-portal .hero-wrap{min-height:0;grid-template-columns:1fr;padding:100px 20px 44px;gap:32px;}
  html.framio-portal .hero-content{display:flex;flex-direction:column;}
  html.framio-portal .hero-kicker{font-size:9px;margin-bottom:17px;}
  html.framio-portal .hero h1{font-size:46px;}
  html.framio-portal .hero-messages{min-height:104px;}
  html.framio-portal .hero-sub{font-size:17px;line-height:1.55;}
  html.framio-portal .hero-actions{display:grid;grid-template-columns:1fr;}
  html.framio-portal .hero-actions a{justify-content:center;}
  html.framio-portal .hero-note{text-align:center;line-height:1.5;}
  html.framio-portal .hero-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
  html.framio-portal .stat-val{font-size:16px;}
  html.framio-portal .stat-lbl{font-size:9px;}
  html.framio-portal .hero-cad{min-height:265px;padding:42px 10px 42px;border-radius:12px;}
  html.framio-portal .hero-cad-head{left:13px;right:13px;top:13px;font-size:8px;}
  html.framio-portal .hero-progress{left:13px;right:13px;bottom:12px;font-size:8px;}
  html.framio-portal .proof-rail{padding:0 14px;}
  html.framio-portal .proof-rail-inner{grid-template-columns:1fr 1fr;}
  html.framio-portal .proof-rail-inner>div{min-height:104px;padding:18px 14px;}
  html.framio-portal .proof-rail strong{font-size:13px;}
  html.framio-portal .proof-rail span{font-size:10px;}
  html.framio-portal .section-title{font-size:34px;}
  html.framio-portal .section-sub{font-size:15px;}
  html.framio-portal .features-structure{margin-left:18px;margin-right:0;padding-top:0;}
  html.framio-portal .features-axis-row,html.framio-portal .features-levels,html.framio-portal .features-nodes{display:none;}
  html.framio-portal .features-grid{grid-template-columns:1fr;}
  html.framio-portal .features-grid{border:0;border-left:var(--structure-aux-line) solid var(--structure-aux);}
  html.framio-portal .feat-card{min-height:320px;border-right:0!important;border-bottom:var(--structure-main-line) solid var(--structure-main)!important;}
  html.framio-portal .feat-card:nth-child(6){border-bottom:0!important;}
  html.framio-portal .feat-card.feat-compact{min-height:0;}
  html.framio-portal .feat-card::before{content:"";display:block;position:absolute;width:10px;height:10px;left:-6px;top:-6px;border:1px solid var(--structure-outline);background:var(--structure-column);}
  html.framio-portal .journey-structure{margin-left:18px;margin-right:0;padding-bottom:24px;}
  html.framio-portal .journey-axis-row,html.framio-portal .journey-levels,html.framio-portal .journey-nodes,html.framio-portal .journey-dimensions{display:none;}
  html.framio-portal .journey-grid{grid-template-columns:1fr;border:0;border-left:var(--structure-aux-line) solid var(--structure-aux);}
  html.framio-portal .journey-step{min-height:330px;border-left:0;border-right:0;border-bottom:var(--structure-main-line) solid var(--structure-main)!important;}
  html.framio-portal .journey-step::before{content:"";position:absolute;width:10px;height:10px;left:-6px;top:-6px;border:1px solid var(--structure-outline);background:var(--structure-column);}
  html.framio-portal .journey-step:last-of-type{border-bottom:0!important;}
  html.framio-portal .journey-visual{height:130px;}
  html.framio-portal .demo-facts{grid-template-columns:1fr 1fr;}
  html.framio-portal .demo-stage{padding:22px 0 54px;}
  html.framio-portal .browser-frame{transform:none;}
  html.framio-portal .demo-output{min-width:158px;padding:10px 12px;}
  html.framio-portal .demo-output-top{right:-4px;top:4px;}
  html.framio-portal .demo-output-bottom{left:8px;bottom:2px;}
  html.framio-portal .products-structure{margin-left:18px;margin-right:0;padding-top:0;}
  html.framio-portal .products-axis-row,html.framio-portal .products-levels,html.framio-portal .products-nodes{display:none;}
  html.framio-portal .products-grid{grid-template-columns:1fr;border:0;border-left:var(--structure-aux-line) solid var(--structure-aux);}
  html.framio-portal .prod-card{min-height:260px;border-right:0!important;border-bottom:var(--structure-main-line) solid var(--structure-main)!important;}
  html.framio-portal .prod-card:nth-child(4){border-bottom:0!important;}
  html.framio-portal .prod-card::before{content:"";display:block;position:absolute;width:10px;height:10px;left:-6px;top:-6px;border:1px solid var(--structure-outline);background:var(--structure-column);}
  html.framio-portal .prod-code{margin-bottom:28px;}
  html.framio-portal .product-future{margin-inline:18px 0;grid-template-columns:1fr;gap:8px;}
  html.framio-portal .recommendation-shell{grid-template-columns:1fr;margin-inline:16px;padding:18px;}
  html.framio-portal .recommendation-cta{margin-top:16px;}
  html.framio-portal #pricingCalculator{padding:20px 16px 0;}
  html.framio-portal .pricing-calc-note{padding-inline:16px;}
  html.framio-portal .pricing-compare,html.framio-portal .pricing-fineprint{margin-inline:20px;}
  html.framio-portal .pricing-grid{grid-template-columns:1fr;}
  html.framio-portal .pricing-card{border-right:0;border-bottom:1px solid var(--border);}
}
@media(prefers-reduced-motion:reduce){
  html.framio-portal .hero-progress span::after{animation:none;transform:scaleX(1);}
  html.framio-portal .hero-cad.is-built :is(.fp-deck,.fp-ref,.fp-sig,.fp-aux,.fp-beam,.fp-col,.fp-lbl,.fp-pan,.fp-fpost,.fp-frail,.fp-stair,.fp-spost,.fp-srail,.fp-dim){animation:none;opacity:1;transform:none;}
}
@keyframes v2-hero-in{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
html.framio-portal .hero-kicker,html.framio-portal .hero h1,html.framio-portal .hero-messages,html.framio-portal .hero-actions{animation:v2-hero-in .7s var(--ui-ease) both;}
html.framio-portal .hero h1{animation-delay:.08s;}
html.framio-portal .hero-messages{animation-delay:.18s;}
html.framio-portal .hero-actions{animation-delay:.3s;}
html.framio-portal :is(.btn-primary,.ui-button):active{transform:scale(.97);transition-duration:.1s;}
html.framio-portal .faq-body{animation:none;}
@media(prefers-reduced-motion:reduce){
  html.framio-portal :is(.hero-kicker,.hero h1,.hero-messages,.hero-actions){animation:none;}
  html.framio-portal :is(.btn-primary,.ui-button):active{transform:none;}
}
html.framio-portal .hero-progress b{transition:border-color .3s var(--ui-ease),color .3s var(--ui-ease),box-shadow .3s var(--ui-ease);}
html.framio-portal .hero-cad.is-done .hero-progress b{border-color:var(--v2-green);color:var(--v2-green);box-shadow:0 0 0 3px color-mix(in srgb,var(--v2-green) 18%,transparent);}
html.framio-portal .hero-cad{--fp-col:#C85A12;--fp-col-corner:#8B3A0A;--fp-col-edge:#B05010;--fp-beam:#8B5E2A;--fp-aux:#2F6FBF;--fp-pan-f:rgba(224,130,30,.28);--fp-pan-s:rgba(224,130,30,.75);--fp-fence:#F06010;--fp-hole:#B06828;}
html.framio-portal[data-theme=dark] .hero-cad{--fp-col:#F07030;--fp-col-corner:#D06030;--fp-col-edge:#C05020;--fp-beam:#B07840;--fp-aux:#60A5FA;--fp-pan-f:rgba(245,158,60,.26);--fp-pan-s:rgba(245,158,60,.75);--fp-fence:#F06010;--fp-hole:#E89050;}
html.framio-portal .fp-col[data-z=corner]{fill:var(--fp-col-corner);}
html.framio-portal .fp-col[data-z=edge]{fill:var(--fp-col-edge);}
html.framio-portal .fp-col[data-z]:hover{fill:#F97316;}
html.framio-portal .fp-pan{fill:var(--fp-pan-f);stroke:var(--fp-pan-s);stroke-width:1.2;}
html.framio-portal .fp-fpost{fill:var(--fp-fence);stroke:#fff;stroke-width:1.2;transform-box:fill-box;transform-origin:center;}
html.framio-portal .fp-spost{fill:var(--fp-hole);stroke:#fff;stroke-width:1.2;transform-box:fill-box;transform-origin:center;}
html.framio-portal .fp-frail{fill:none;stroke:var(--fp-fence);stroke-width:3;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;}
html.framio-portal .fp-srail{fill:none;stroke:var(--fp-hole);stroke-width:3;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;}
html.framio-portal .fp-stair{transform-box:fill-box;transform-origin:center;}
html.framio-portal .fp-stair rect{fill:color-mix(in srgb,var(--t3) 14%,transparent);stroke:var(--t3);stroke-width:1.2;}
html.framio-portal .fp-stair line{stroke:var(--t3);stroke-width:.8;}
html.framio-portal .fp-dim{pointer-events:none;}
html.framio-portal .fp-dim path{fill:none;stroke:var(--t3);stroke-width:1.2;}
html.framio-portal .fp-dim-t{font:500 14px var(--mono);fill:var(--t2);text-anchor:middle;}
html.framio-portal :is(.fp-pan,.fp-frail,.fp-srail){pointer-events:none;}
html.framio-portal .journey-drawing{--dw-fence:#F06010;--dw-hole:#B06828;}
html.framio-portal[data-theme=dark] .journey-drawing{--dw-hole:#E89050;}
html.framio-portal .dw{position:absolute;inset:0;width:100%;height:100%;font-family:var(--mono);}
html.framio-portal .dw-sheet{fill:none;stroke:var(--border2);stroke-width:.5;}
html.framio-portal .dw-frame{fill:none;stroke:var(--t3);stroke-width:.7;}
html.framio-portal .dw-tag{font-size:3.6px;letter-spacing:.08em;fill:var(--ui-link);}
html.framio-portal .dw-aux line{stroke:var(--structure-aux);stroke-width:1;}
html.framio-portal .dw-main line{stroke:var(--structure-main);stroke-width:1.8;}
html.framio-portal .dw-col rect{fill:var(--structure-column);stroke:var(--structure-outline);stroke-width:.4;}
html.framio-portal .dw-stair rect{fill:color-mix(in srgb,var(--t3) 14%,transparent);stroke:var(--t3);stroke-width:.5;}
html.framio-portal .dw-stair line{stroke:var(--t3);stroke-width:.3;}
html.framio-portal .dw-rail{fill:none;stroke:var(--dw-fence);stroke-width:.6;stroke-linejoin:round;}
html.framio-portal .dw-srail{fill:none;stroke:var(--dw-hole);stroke-width:.6;stroke-linejoin:round;}
html.framio-portal .dw-post rect{fill:var(--dw-fence);}
html.framio-portal .dw-spost rect{fill:var(--dw-hole);}
html.framio-portal .dw-lbl text{font-size:4px;fill:var(--ui-link);text-anchor:middle;}
html.framio-portal .dw-lbl .dw-lbl-l{text-anchor:end;}
html.framio-portal .dw-dim path{fill:none;stroke:var(--t3);stroke-width:.4;}
html.framio-portal .dw-dim text{font-size:3.6px;fill:var(--t2);text-anchor:middle;}
html.framio-portal .dw-tb{fill:none;stroke:var(--border2);stroke-width:.5;}
html.framio-portal .dw-tb-t{font-size:3.8px;fill:var(--t2);}
html.framio-portal .dw-tb-s{font-size:3.8px;fill:var(--t1);text-anchor:end;font-weight:500;}
html.framio-portal :is(.dw,.journey-report){transition:transform .9s var(--ui-ease);}
html.framio-portal .journey-step:hover .dw{transform:scale(1.05);}
html.framio-portal .journey-step:hover .journey-report{transform:scale(1.03);}
@media(prefers-reduced-motion:reduce){
  html.framio-portal :is(.dw,.journey-report){transition:none;}
  html.framio-portal .journey-step:hover :is(.dw,.journey-report){transform:none;}
}
html.framio-portal .demo-output{opacity:0;transform:translateY(12px) scale(.96);transition:opacity .6s var(--ui-ease),transform .6s var(--ui-ease);}
html.framio-portal .demo-stage.is-visible .demo-output{opacity:1;transform:none;}
html.framio-portal .demo-stage.is-visible .demo-output-top{transition-delay:.7s;}
html.framio-portal .demo-stage.is-visible .demo-output-bottom{transition-delay:1.3s;}
@media(prefers-reduced-motion:reduce){
  html.framio-portal .demo-output{opacity:1;transform:none;transition:none;}
  html.framio-portal .browser-frame{transition:none;}
}
html.framio-portal .auth-section .section-title{margin-inline:auto;text-align:center;}
html.framio-portal .auth-spot{position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:inherit;opacity:0;transition:opacity .4s var(--ui-ease);background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--ui-link) 14%,transparent),transparent 65%);}
html.framio-portal .auth-card.is-hover .auth-spot{opacity:1;}
@media(prefers-reduced-motion:reduce){
  html.framio-portal .auth-spot{display:none;}
}
html.framio-portal .pricing-calculator{margin-left:0;margin-right:0;}
html.framio-portal .pricing-compare{margin-left:0;margin-right:0;}
html.framio-portal .pricing-fineprint{margin-left:0;margin-right:0;}
html.framio-portal .pricing-result i{font:inherit;font-style:normal;color:inherit;}
html.framio-portal .pricing-result .rc-name{display:inline-block;}
html.framio-portal .pricing-control{position:relative;}
html.framio-portal .pricing-bubble{position:absolute;z-index:3;padding:3px 8px;border-radius:6px;background:var(--ui-link);color:#fff;font:600 11px var(--mono);white-space:nowrap;pointer-events:none;opacity:0;transform:translate(-50%,4px) scale(.92);transition:opacity .15s var(--ui-ease),transform .15s var(--ui-ease);}
html.framio-portal .pricing-bubble.is-on{opacity:1;transform:translate(-50%,0) scale(1);}
@keyframes rc-flash{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ui-link) 55%,transparent);}100%{box-shadow:0 0 0 10px transparent;}}
html.framio-portal .recommendation-shell.rc-flash{animation:rc-flash .7s var(--ui-ease);}
html.framio-portal .pricing-grid .pricing-card{transition:background .45s var(--ui-ease),opacity .45s var(--ui-ease),box-shadow .45s var(--ui-ease);}
html.framio-portal .pricing-grid .pricing-card.pricing-unsuitable{opacity:.55;}
html.framio-portal .pricing-grid .pricing-card.pricing-recommended{box-shadow:inset 0 0 0 1px var(--ui-link);}
html.framio-portal .recommendation-cta{background-image:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%);background-size:250% 100%;background-position:150% 0;background-repeat:no-repeat;transition:background-position .7s var(--ui-ease);}
html.framio-portal .recommendation-cta:hover{background-position:-50% 0;}
@media(prefers-reduced-motion:reduce){
  html.framio-portal .pricing-bubble,html.framio-portal .pricing-grid .pricing-card,html.framio-portal .recommendation-cta{transition:none;}
  html.framio-portal .recommendation-shell.rc-flash{animation:none;}
}
html.framio-portal :is(.features-structure,.journey-structure,.products-structure) :is(.features-grid,.journey-grid,.products-grid){transition:clip-path 1.2s var(--ui-ease);}
html.framio-portal .draw-pending:not(.is-drawn) :is(.features-grid,.journey-grid,.products-grid){clip-path:inset(-24px 100% -24px -24px);}
html.framio-portal .draw-pending.is-drawn :is(.features-grid,.journey-grid,.products-grid){clip-path:inset(-24px -24px -24px -24px);}
html.framio-portal .draw-pending :is(.features-axis-row,.features-levels,.journey-axis-row,.journey-levels,.products-axis-row,.products-levels) span{transition:opacity .5s var(--ui-ease);}
html.framio-portal .draw-pending:not(.is-drawn) :is(.features-axis-row,.features-levels,.journey-axis-row,.journey-levels,.products-axis-row,.products-levels) span{opacity:0;}
html.framio-portal .draw-pending.is-drawn :is(.features-axis-row,.features-levels,.journey-axis-row,.journey-levels,.products-axis-row,.products-levels) span:nth-child(1){transition-delay:0.3s;}
html.framio-portal .draw-pending.is-drawn :is(.features-axis-row,.features-levels,.journey-axis-row,.journey-levels,.products-axis-row,.products-levels) span:nth-child(2){transition-delay:0.4s;}
html.framio-portal .draw-pending.is-drawn :is(.features-axis-row,.features-levels,.journey-axis-row,.journey-levels,.products-axis-row,.products-levels) span:nth-child(3){transition-delay:0.5s;}
html.framio-portal .draw-pending.is-drawn :is(.features-axis-row,.features-levels,.journey-axis-row,.journey-levels,.products-axis-row,.products-levels) span:nth-child(4){transition-delay:0.6s;}
html.framio-portal .draw-pending.is-drawn :is(.features-axis-row,.features-levels,.journey-axis-row,.journey-levels,.products-axis-row,.products-levels) span:nth-child(5){transition-delay:0.8s;}
html.framio-portal nav{transition:box-shadow .3s var(--ui-ease);}
html.framio-portal nav.is-scrolled{box-shadow:0 10px 30px rgba(5,15,35,.22);}
html.framio-portal .prod-card{transition:opacity .6s var(--ui-ease),transform .6s var(--ui-ease),border-color .2s,background-color .3s var(--ui-ease);}
html.framio-portal .prod-card:hover{background-color:color-mix(in srgb,var(--ui-link) 4%,transparent);}
html.framio-portal .prod-name{transition:transform .3s var(--ui-ease);}
html.framio-portal .prod-card:hover .prod-name{transform:translateX(3px);}
html.framio-portal .pricing-grid .pricing-card:not(.pricing-recommended):hover{background:color-mix(in srgb,var(--ui-link) 4%,var(--ui-surface));}
html.framio-portal .hero-cad{padding-bottom:78px;}
html.framio-portal .hero-stages{position:absolute;z-index:3;left:22px;right:22px;bottom:44px;display:flex;flex-wrap:wrap;gap:6px;}
html.framio-portal .hero-chip{padding:4px 9px;border:1px solid var(--border2);border-radius:999px;background:transparent;color:var(--t3);font:500 9px var(--mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:color .25s var(--ui-ease),border-color .25s var(--ui-ease),background-color .25s var(--ui-ease);}
html.framio-portal .hero-chip.is-past{color:var(--t2);}
html.framio-portal .hero-chip.is-active{color:var(--ui-link);border-color:var(--ui-link);background:color-mix(in srgb,var(--ui-link) 12%,transparent);}
html.framio-portal .hero-chip:hover{color:var(--t1);}
html.framio-portal .browser-screen{overflow:hidden;}
html.framio-portal .browser-screen::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;background:linear-gradient(180deg,transparent 0,transparent 42%,color-mix(in srgb,var(--ui-link) 30%,transparent) 50%,transparent 58%,transparent 100%);background-size:100% 300%;background-position:0 100%;}
html.framio-portal .demo-stage.is-visible .browser-screen::after{animation:demo-scan 1.8s var(--ui-ease) .5s 1 both;}
@keyframes demo-scan{0%{opacity:1;background-position:0 100%;}100%{opacity:0;background-position:0 0;}}
html.framio-portal .auth-pane :is(h2,.af,.auth-submit,.auth-msg,.auth-pane-foot,.auth-pane-h,.auth-pane-sub){transition:opacity .55s var(--ui-ease),transform .55s var(--ui-ease);}
html.framio-portal .auth-card.is-pre .auth-pane :is(h2,.af,.auth-submit,.auth-msg,.auth-pane-foot){opacity:0;transform:translateY(12px);}
html.framio-portal .auth-card.is-in .auth-pane h2{transition-delay:.05s;}
html.framio-portal .auth-card.is-in .auth-pane .af:nth-of-type(1){transition-delay:.15s;}
html.framio-portal .auth-card.is-in .auth-pane .af:nth-of-type(2){transition-delay:.25s;}
html.framio-portal .auth-card.is-in .auth-pane .auth-submit{transition-delay:.35s;}
html.framio-portal .auth-card.is-in .auth-pane .auth-pane-foot{transition-delay:.45s;}
html.framio-portal .af input{transition:border-color .25s var(--ui-ease),box-shadow .25s var(--ui-ease);}
html.framio-portal .af input:focus{box-shadow:0 0 0 4px color-mix(in srgb,var(--ui-link) 22%,transparent);}
html.framio-portal .auth-submit{background-image:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.26) 50%,transparent 70%);background-size:250% 100%;background-position:150% 0;background-repeat:no-repeat;}
html.framio-portal .auth-submit:hover{background-position:-50% 0;transition:background-position .7s var(--ui-ease),background-color .2s,box-shadow .2s;}
@media(max-width:600px){
  html.framio-portal .hero-stages{display:none;}
  html.framio-portal .hero-cad{padding-bottom:42px;}
}
@media(prefers-reduced-motion:reduce){
  html.framio-portal .browser-screen::after{display:none;}
  html.framio-portal :is(.features-grid,.journey-grid,.products-grid){transition:none;}
  html.framio-portal .auth-pane :is(h2,.af,.auth-submit,.auth-msg,.auth-pane-foot){transition:none;}
  html.framio-portal .auth-submit,html.framio-portal .auth-submit:hover{transition:none;}
}
html.framio-portal .browser-screen img:last-of-type{position:relative;}
html.framio-portal .journey-sketch-shot .shot-dark{display:none;}
html.framio-portal[data-theme=dark] .journey-sketch-shot{background:#0b1220;}
html.framio-portal[data-theme=dark] .journey-sketch-shot .shot-light{display:none;}
html.framio-portal[data-theme=dark] .journey-sketch-shot .shot-dark{display:block;}
html.framio-portal .hero-stats .stat-val{display:inline-block;min-width:8ch;font-variant-numeric:tabular-nums;transition:color .4s var(--ui-ease);}
html.framio-portal .hero-stats .stat-val.is-done{color:var(--ui-link);animation:stat-pop .7s var(--ui-ease);}
@keyframes stat-pop{0%{transform:scale(1);text-shadow:0 0 0 transparent;}35%{transform:scale(1.12);text-shadow:0 0 18px color-mix(in srgb,var(--ui-link) 55%,transparent);}100%{transform:scale(1);text-shadow:0 0 0 transparent;}}
@media(prefers-reduced-motion:reduce){
  html.framio-portal .hero-stats .stat-val.is-done{animation:none;}
}
html.framio-portal .fp-fpost,html.framio-portal .fp-spost{stroke-width:.6;}
html.framio-portal .fp-frail,html.framio-portal .fp-srail{stroke-width:1.6;}
html.framio-portal .fp-pan{stroke-width:.6;}
html.framio-portal .fp-stair rect{stroke-width:.8;}
html.framio-portal .fp-stair line{stroke-width:.5;}
html.framio-portal .fp-dim-t{font-size:11px;}
html.framio-portal .fp-dim path{stroke-width:1;}
html.framio-portal :is(.fp-aux,.fp-sig,.fp-pan){filter:none;}
html.framio-portal .dw-deck{fill:color-mix(in srgb,var(--structure-main) 8%,transparent);stroke:none;}
html.framio-portal .dw-aux line{stroke-width:.35;}
html.framio-portal .dw-main line{stroke-width:.9;}
html.framio-portal .dw-col rect{stroke-width:.3;}
html.framio-portal .dw-rail{stroke-width:.4;}
html.framio-portal .dw-srail{stroke-width:.4;}
html.framio-portal .dw-lbl text{font-size:3px;}
html.framio-portal .dw-dim text{font-size:2.6px;}
html.framio-portal .dw-dim path{stroke-width:.3;}
html.framio-portal .dw-stair rect{stroke-width:.3;}
html.framio-portal .dw-stair line{stroke-width:.2;}
html.framio-portal .demo3d-section{background:var(--bg);border-top:1px solid var(--border);}
html.framio-portal .demo3d-grid{grid-template-columns:1.28fr .72fr;}
html.framio-portal .demo3d-visual{position:relative;display:block;aspect-ratio:1200/630;border:1px solid var(--border2);border-radius:14px;overflow:hidden;background:#0b1220;box-shadow:0 24px 60px rgba(5,15,35,.2);}
html.framio-portal .demo3d-visual img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ui-ease);}
html.framio-portal .demo3d-visual:hover img{transform:scale(1.04);}
@media(max-width:820px){
  html.framio-portal .demo3d-grid{grid-template-columns:1fr;}
}
@media(prefers-reduced-motion:reduce){
}
html.framio-portal .hero-cad{min-height:640px;}
html.framio-portal #heroSvg{width:100%;height:540px;}
html.framio-portal .fp-dim-t{font-size:10px;}
html.framio-portal .fp-lbl{font-size:9px;}
html.framio-portal .dw-tbl text{font-size:3.4px;fill:var(--t2);}
html.framio-portal .dw-tbl .dw-tbl-h{font-size:3.6px;fill:var(--t1);font-weight:600;}
html.framio-portal .dw-tbl .dw-tbl-v{text-anchor:end;fill:var(--t1);}
html.framio-portal .dw-tbl line{stroke:var(--border2);stroke-width:.3;}
html.framio-portal .journey-3d-shot .shot-dark,html.framio-portal .demo3d-visual .shot-dark{display:none;}
html.framio-portal[data-theme=dark] .journey-3d-shot .shot-light,html.framio-portal[data-theme=dark] .demo3d-visual .shot-light{display:none;}
html.framio-portal[data-theme=dark] .journey-3d-shot .shot-dark,html.framio-portal[data-theme=dark] .demo3d-visual .shot-dark{display:block;}
html.framio-portal[data-theme=dark] .journey-3d-shot{background:#0b1220;}
html.framio-portal .journey-3d-shot img{object-position:50% 38%;transform:none;transform-origin:center;}
html.framio-portal .journey-step:hover .journey-3d-shot img{transform:scale(1.05);}
html.framio-portal a.journey-3d-shot{display:block;}
html.framio-portal .hero-cad .fp-aux{transform-origin:50% 0;}
html.framio-portal .hero-cad :is(.fp-beam,.fp-sig){transform-origin:0 50%;}
html.framio-portal .demo3d-visual{aspect-ratio:auto;border:0;border-radius:0;overflow:visible;background:transparent;box-shadow:none;padding:34px 0;}
html.framio-portal .demo3d-frame{display:block;transform:perspective(1200px) rotateY(3deg) rotateX(1deg);}
html.framio-portal .demo3d-frame .browser-screen img{position:relative;}
html.framio-portal .demo3d-frame:hover .browser-screen img{transform:none;}
html.framio-portal .demo3d-section .section-sub{margin-bottom:28px;}
@media(max-width:820px){
  html.framio-portal .demo3d-frame{transform:none;}
}
html.framio-portal .demo3d-frame,html.framio-portal .demo3d-frame .browser-url{text-decoration:none;}
html.framio-portal .hero-cad{min-height:560px;}
html.framio-portal #heroSvg{height:430px;}
